Column

WordPressのメディアアップロードでエラーが出る場合

Web制作

2014.10.01

wordpress

WordPressで画像ファイルのアップロード時にエラーが発生した際の対処についての備忘録です。

現象

新規投稿画面上で「メディアを追加」を利用して画像を挿入しようとしたところ、
「アップロードしたファイルをwp-content/uploads/2014/10に移動できませんでした。」
というエラーメッセージが出てしまう現象が発生しました。
比較的長い期間運用しているサイトでの現象で、今までは特に問題なくアップロードできていたのが突然のエラー。

発生したのが月初だったこともあり、uploads内にフォルダが正常に生成されていないのかも、とFTPにて確認したところ、該当フォルダは生成されており、FTPでのファイルアップロードも問題なくできることを確認。
パーミッションも書き込み可能な設定になっていました。
うーん、ここは問題なさそうだ。

次に疑ったのは、バックアップファイルなどによるサーバの空き容量の不足。
サーバ管理システム上で確認してみましたが、残容量は十分あり、こちらも問題はなさそう。
ムムムムム。

原因

同じ問題に陥っているケースはないかとWebで検索してみたところ、こちらの記事を発見しました。

WordPressでファイルがアップロードできない場合の対策

上記の記事中で、”XREAサーバではPHPのセーフモードが有効になっているためにWordPressのアップローダーが上手く機能しない”と解説されています。
現象が発生したサイトはまさにXREAサーバ……これかも!
簡単に書くと、XREAサーバはディレクトリ権限のミスマッチが発生してしまう環境、ということのようです。

PHPのセーフモードによるWordpressの機能の制限については、WordPress Codexでも解説されていました。

セーフモードによる制限と対処方法

WordPress CodexでもXREAとCORESERVERは別途対応が必要な旨が明記されてますね orz

対策

以下のように記述した.htaccessファイルを、Wordpressインストールディレクトリ内のwp-adminディレクトリに設置することで解決できました。

<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>

phpをcgiモードで動かすことでアップローダを正常に機能させる、という対応です。
これでアップロードが正常にできるようになりました。

今後、XREAサーバで同様の現象が発生した際の参考として、記録した次第です。
参照サイト様、ありがとうございました!

  • Wordpress
  • XREA