WordPressを構築し、ブラウザからログインしてテーマ編集をしようとしたが編集出来ない、もしくは画像アップロードしようとしたが、アップロード出来ない。
そういった場合には権限設定・パーミッション(Permission)が必要でした。
テーマ編集の場合
以下のディレクトリに対して権限設定が必要でした。
1 |
cd [wordpressディレクトリ]/wp-content/themes/ |
セキュリティポリシーによって何番でchmodするかを決める必要がありますが、とあるレンタルサーバと同等にする場合、以下の設定です。
1 2 |
# chmod 755 [該当テーマディレクトリ配下の各ディレクトリ] # chmod 644 [該当テーマディレクトリ配下の各ファイル] |
1件ずつの設定は大変なので、ディレクトリ配下のディレクトリのみorファイルのみを一括で変更する場合は以下です。
1 2 |
# find . -type d -print | xargs chmod 755 </span># find . -type f -print | xargs chmod 644 |
findでディレクトリorファイル検索してxargsでその結果を引数としてchmodに渡しています。
画像アップロードの場合
以下のディレクトリに対して権限設定が必要でした。
1 |
cd [wordpressディレクトリ]/wp-content/uploads/ |
セキュリティポリシーによって何番でchmodするかを決める必要がありますが、とあるレンタルサーバと同等にする場合、以下の設定です。
1 2 |
# chmod 755 [uploadsディレクトリ配下の各ディレクトリ] # chmod 644 [uploadsディレクトリ配下の各ファイル] |
1件ずつの設定は大変なので、ディレクトリ配下のディレクトリのみorファイルのみを一括で変更する場合は以下です。
1 2 |
# find . -type d -print | xargs chmod 755 </span># find . -type f -print | xargs chmod 644 |
findでディレクトリorファイル検索してxargsでその結果を引数としてchmodに渡しています。
それでも駄目な場合
パーミッション設定の番号3桁は左から、所有者・所有グループ・その他になるのですが、今のWordPress所有者が、lsで見た際の所有者とあっていない事があります。
所有グループに合わせる場合
1 2 |
# find . -type d -print | xargs chmod 775 </span># find . -type f -print | xargs chmod 664 |
その他の場合
1 2 |
# find . -type d -print | xargs chmod 757 </span># find . -type f -print | xargs chmod 646 |
何番でchmodするか
今回の例ではとあるレンタルサーバでの番号を記載しましたが、ローカル開発環境でとりあえずという場合は全部777でも良いと思いますが、本番環境や外部からアクセス出来る場合は環境によって変えた方が良いです。
参考 公式ドキュメント