LoginSignup
6
5

More than 5 years have passed since last update.

WordpressのメディアライブラリでHTTPエラーの原因は意外な場所にあった

Posted at

原因はパーミッションだったけど意外な場所のパーミッションだった話

メディアライブラリから画像をアップロードすると 10KB以下のファイルはできるのに、それ以上のファイルは全て「HTTPエラー」が表示されてしまいました。

「メディアライブラリ HTTPエラー」で検索すると皆さん苦労されているので情報はたくさんあったのですが、どれも自分の事例には当てはまらなかったのでメモしておきます。

環境

  • OSX El Capitan
  • Nginx 1.8.0
  • PHP 5.6.14
  • Wordpress 4.3.1

試してみたこと

ファイルサイズが 0byte になっていないか

プラグイン、パーミッション、php.ini

全てのプラグインを無効にし、
wp-content/upload/のパーミッションを確認し、
php.ini でメモリやファイルサイズ上限をあげましたがダメでした。

Nginxのアップロード上限を増やす

Wordpressのメモリ上限を増やす

How to Fix HTTP Error When Uploading Images?
wp-config.php に define('WP_MEMORY_LIMIT', '64MB'); を追加してみましたがダメでした。

意外(?)な場所のパーミッションが原因だった

他の事例をあてにするのは諦めて、素直にNginxのログを見てみることにしました(最初からそうしろ)。
すると下記のようなエラーが検出されていました。

2015/11/16 10:05:54 [crit] 1191#0: *231 open() "/usr/local/var/run/nginx/client_body_temp/0000000027" failed (13: Permission denied), client: 127.0.0.1, server: localhost, request: "POST /xxx/system/wp-admin/async-upload.php HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/xxx/system/wp-admin/upload.php"

問題となるのはここです。

/usr/local/var/run/nginx/client_body_temp/0000000027" failed (13: Permission denied)

Nginxがファイルアップロードを受け入れる時の一時的な保管場所だと思うのですが、ここをパーミッション 777 にしたら問題なくアップ出来るようになりました。

El Capitanで権限関係が厳しくなったらしいですが、その辺が原因でしょうか?

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5