2026年7月11日
2026年7月11日
WordPressのパーミッションエラーを解決する方法
はじめに
WordPressの管理や更新作業を行う際、ファイルやディレクトリの権限が適切でない場合、様々な問題が発生します。例えば、「アップデートを開始できませんでした」といったエラーが表示されることがあります。これらの問題は通常、サーバー上のファイルやディレクトリの所有者やパーミッションが不適切であることが原因です。
症状・背景
このテーマが必要になる主な場面:
- WordPressの更新(アップデート)に失敗した場合
- テーマやプラグインをインストールまたは有効化できない場合
- ファイルエディタを使用してファイルを編集しようとしたが、変更を保存できなかった場合
手順・設定方法
ステップ1: パーミッションの確認と修正
# WordPressのルートディレクトリに移動します。
cd /var/www/html/your_wordpress_directory
# 現在のパーミッションを確認します。
ls -la
# Apacheユーザーがファイルやフォルダにアクセスできるようにパーミッションを変更します。通常は644と755です。
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
# wp-contentディレクトリの下のフォルダやファイルも同様に修正します。
cd wp-content
chmod 755 plugins themes uploads
# ウェブサーバーがwp-config.phpと.htaccessを読み取れるように権限を変更します。
chown www-data:www-data /var/www/html/your_wordpress_directory/wp-config.php
chmod 644 wp-config.php
ステップ2: ファイル所有者の設定
# WordPressのルートディレクトリに移動します。
cd /var/www/html/your_wordpress_directory
# ユーザーとグループを確認し、Apacheユーザーに変更します。具体的なユーザー名は環境によりますので注意が必要です。
chown -R www-data:www-data .
# wp-contentディレクトリの下のフォルダやファイルも同様に設定します。
cd wp-content
chown -R www-data:www-data plugins themes uploads
# サイトの所有者がwp-config.phpを読み書きできるように、ユーザーとグループを変更します。
chown user:user wp-config.php
chmod 644 wp-config.php
ステップ3: 高度なパーミッション設定(オプション)
# より詳細なアクセス制御が必要な場合、以下のようなACL(Access Control List)を使用できます。
setfacl -dRm u:www-data:rwx /var/www/html/your_wordpress_directory
# 上記コマンドは、ディレクトリとファイルの新規作成時にデフォルトでApacheユーザーに読み書き権限を与えることを意味します。
# 既存のファイルやディレクトリにもACLを適用できます。
setfacl -Rm u:www-data:rwx /var/www/html/your_wordpress_directory
ステップ4: パーミッション修正後の確認とテスト
# WordPressプラグインのインストールや更新が可能か確認します。
wp plugin install <plugin-name>
wp plugin update --all
# サイトを再起動し、問題が解決したことを確認します。通常、サーバーのリロードは必要ありませんが、念のために行うと良いでしょう。
service apache2 restart
注意事項
- パーミッションの変更は慎重に行い、適切なアクセス権限を確保するようにしてください。
- セキュリティ上、全てのファイルやディレクトリに対して過度にオープンなパーミッション(777など)を設定しないでください。
- 大規模サイトでは、複数ユーザーが同時に作業を行う場合があるため、共有フォルダの権限管理が必要です。
- パーミッション修正後も問題が解決しない場合は、プラグインやテーマによる制約も考えられます。それらを無効化してテストすることをお勧めします。
まとめ
1. パーミッションチェック: WordPressディレクトリの権限を定期的に確認し、適切な値に調整する。
2. 所有者設定: ディレクトリとファイルの所有者は通常Apacheユーザーです。ただしサイト管理者はwp-config.phpを管理できるようユーザーグループを変更します。
3. ACL適用: 詳細なアクセス制御が必要な場合は、ファイルやディレクトリにACLを設定する。
4. 再テスト: パーミッションの修正後、プラグインやテーマの操作が可能であることを確認します。
5. セキュリティとパフォーマンス: できるだけ制限的な権限を使用し、セキュリティとパフォーマンスを確保します。
関連記事: