くろねこの栞

tera911が思ったことを書いていくだけ

drupalで画像がアップロード出来ない

Drupal7で記事を書こうとした時、画像のアップロードが出来ない問題が発生しました。 原因の特定方法と原因、解決策についてまとめておきます。

画像がアップロード出来ない

記事の作成時、画像のアップロードを行おうとするとエラー文が出て処理ができませんでした。
f:id:tera911:20160224232852p:plain

原因特定のためログを見る

/var/log/httpd/error_logを見たのですが、エラー内容が一切書き込まれなかった。
[base url]/admin/reports/dblog こちらにアクセスするとログを見ることができた。

原因と思われるログは以下のとおり。

f:id:tera911:20160224232857p:plain

ファイルフィールド field_image 用のアップロードディレクトリー public://field/image/blog_post が作成できないかアクセスできません。その結果、新しくアップロードされたファイルがこのディレクトリーに保存できないため、アップロードがキャンセルされました。

保存できないということは書き込み権限がないと予想。

public:// ディレクトリがどこかわからないので調べる。

public:// ディレクトリは以下のページで確認できます。
[base url]/admin/config/media/file-system
私の環境では、sites/default/filespublic://ディレクトリでした。

ls -l sites/default/files/field/image で権限確認。 書き込み権限がありませんでした。

原因は書き込み権限が無かったこと

対象のディレクトリに対して書き込み権限を与えて完了。
chmod o+w -R sites/default/files/field/image
今回はその他のユーザに対して書き込み権限を与えましたが場合によってはグループやユーザに与えることになると思います。

今回はこれで問題解決できました。