はじめに
Webサーバーをあれこれいじっていたっら、ファイルのパーミッションがおかしくなっていました。
WordPressのデータ(ファイルやディレクトリ)の所有者とパーミッションは、セキュリティと運用の安定性に直結する重要な設定です。
自分でWEBサーバーを構築していろいろ弄っていると、ときどきおかしくなっていることがあります。
設定を確認してみましょう。
所有者(Owner)
WordPressのファイル群は、Webサーバーの実行ユーザーが読み書きできるように設定する必要があります。
環境 | 推奨所有者 |
---|---|
Synology NAS(Web Station) | http または nginx (DSMのバージョンによる) |
Docker(公式WordPressイメージ) | コンテナ内では www-data (UID: 33) |
Debian/Ubuntu(Apache) | www-data |
CentOS/RHEL(Apache) | apache |
Dockerでホスト側とコンテナ側のUID/GIDが一致しない場合は、bind mount時にUID/GIDを調整するか、chownで合わせる必要があります。
パーミッション(Permissions)
WordPressのパーミッション設定は以下の通りです
ディレクトリ(Folders)
- 755:所有者が読み・書き・実行、その他は読み・実行のみ
- 理由:実行権限がないとPHPファイルが読み込まれない
設定コマンド
Bash
sudo find /var/www/wordpress/ -type d -exec chmod 755 {} \;
ファイル(Files)
- 644:所有者が読み・書き、その他は読みのみ
- 理由:書き込み権限を制限することで改ざんリスクを低減
設定コマンド
Bash
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} \;
特に注意すべきファイル
ファイル | 推奨パーミッション | 備考 |
---|---|---|
wp-config.php | 600 または 640 | DB情報を含むため厳しく制限 |
.htaccess | 644 | Apache環境でURLリライトなどに使用 |
設定コマンドまとめ(CLI)
Bash
# 所有者/パーミッション確認
ls -al /var/www/wordpress/
# 所有者変更(例: www-data に変更)
sudo chown -R www-data:www-data /var/www/wordpress/
# パーミッション一括変更
sudo find /var/www/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} \;
sudo find /var/www/wordpress/ -name "wp-config.php" -exec chmod 640 {} \;
Synology NAS + Dockerでは、ホスト側のUID/GIDとコンテナ側のwww-dataが一致しているかが鍵になります。もし一致していない場合、docker run
時に--user
指定やvolumes
のUID調整が必要です。
コメント