Raspberry Pi上のApache2でWordPressを運用していると、画像アップロード時に「ディレクトリ wp-content/uploads/2026/03 を作成できません」と表示されることがあります。この問題は権限設定やPHP設定が原因である場合が多く、正しい対処法を知ることが重要です。
原因の特定:ディレクトリ権限だけでは解決しない理由
WordPressのアップロードエラーは、wp-contentやuploadsディレクトリの所有者・権限だけでなく、親ディレクトリやPHPの実行権限も影響します。
例えば、www-dataに所有権を与え777に設定しても、ApacheやPHP-FPMが適切にディレクトリを作成できる設定になっていなければ、エラーが発生します。
PHP設定を確認する
WordPressはPHPの設定に従ってファイル操作を行います。特に重要なのはopen_basedirやfile_uploadsの設定です。
php.iniでupload_tmp_dirが存在して書き込み可能か、またopen_basedirでwp-content/uploads以下へのアクセスが制限されていないかを確認してください。
Apache2のユーザーとグループの確認
Apache2の実行ユーザーがwww-dataである場合、wp-contentやuploadsの所有者もwww-dataであることが推奨されます。コマンド例:
sudo chown -R www-data:www-data /var/www/html/wp-content
必要に応じてディレクトリの権限を755に設定し、セキュリティを確保しながら書き込みを許可します。
親ディレクトリの存在と権限確認
uploads/2026/03 のように年・月ごとのディレクトリはWordPressが自動生成します。親ディレクトリ uploads の権限が正しくないと作成できません。
uploadsディレクトリが存在しない場合は作成し、www-dataに所有権を与えることが必要です。例:
sudo mkdir -p /var/www/html/wp-content/uploads/2026/03 && sudo chown -R www-data:www-data /var/www/html/wp-content/uploads
まとめ:権限とPHP設定の両面から確認
WordPressの画像アップロードエラーは、ディレクトリ権限だけでなく、PHP設定や親ディレクトリの存在も確認する必要があります。Apacheのユーザー確認、uploadsディレクトリの所有権、PHPのupload_tmp_dirやopen_basedir設定を見直すことで、Raspberry Pi環境でも問題なく画像をアップロードできるようになります。


コメント