クラウドサーバ(IDCFクラウド)でのWordPressのディレクトリ・ファイル設定メモ
IDCFクラウドサーバに設置したWordPressのディレクトリ・ファイル設定について、ダッシュボードからのインストールや各種更新が上手く行かなかったので、いろいろと調べてみた結果のメモです。
このサイトなどのようにレンタルサーバでのWordPress簡易インストールをしている場合などのパーミッション設定とは勝手が違うようでした。
環境
- IDCFクラウドでのVM(LInux)
- Cent OS 7
- apache 2.4.2
ユーザーをwheelグループとApacheグループに入れる
Linuxサーバを普段操作(FTPやSSH)するため、root以外のユーザーを設定していますが、必要に応じてそのユーザーがroot権限を持てるようにするために、ユーザーをwheelグループに入れます。
また、WordPressの所有者はApacheとなります。Apache以外の場合はダッシュボードからのインストールに不具合が生じます。そのため、WordPressの入っているディレクトリやファイルの所有者をapacheとしなくてはいけません。それらのディレクトリやファイルを操作するため、ユーザーをApacheグループに入れます。
# usermod -aG wheel,apache USER_NAME
sudoの権限を設定する
ユーザーにroot権限を与えるため、次のコマンドでsudoersファイルを編集し、sudoの権限を設定します。
# visudo
表示されたsudoersファイルで下記のようになっていることを確認します。#でコメントアウトされている場合には、#を外して有効化します。
%wheel ALL=(ALL) ALL
パスワードを入力しなくともroot権限を実行できるようにするには、#を外して有効化します。
# %wheel ALL=(ALL) NOPASSWD: ALL
ディレクトリの所有者変更
sudo chown -R apache:apache /var/www/html/wp
ユーザーでsshログインした後、ルート権限に変更します。
$ sudo su
WordPressの入っているディレクトリが /var/www/wp としたら、下記の通り /var/www/wp 以下のディレクトリを所有者:apache、グループ:apacheとしてディレクトリの権限を変更します。「-R」オプションは再帰的に指定ディレクトリ以下の権限をすべて変更します。
# sudo chown -R apache:apache /var/www/wp
次に上記WorrdPressの入っているファイルとディレクトリのパーミッションをそれぞれ変更していき、ApacheユーザーとApacheグループにwrite permissionを与えます。
すべてのファイルのパーミッションは664、ディレクトリのパーミッションは775とします。
# sudo find /var/www/wp -type f -exec chmod 664 {} \;
# sudo find /var/www/wp -type d -exec chmod 775 {} \;
上記で全てのファイルのパーミッションを664としましたが、セキュリティ上、wp-config.phpは404、.htaccessファイルは606の権限に設定し直します。
# chmod 404 /var/www/wp/wp-config.php
# chmod 606 /var/www/wp/.htaccess
WordPressの入っている頭のディレクトリ /var/www/wp のみ、所有者をルートもしくはユーザーにする方がよりセキュリティが高いという話もあるようですが、そうするとWordPressの自動更新が、「wp-config.sample.phpのコピーに失敗しました」となり、上手くいかなくなるのでapacheのまま、もしくは市所有者はユーザー、グループはapacheにするのが良いかもしれません。
# sudo chown USER_NAME:apache /var/www/wp/
とりあえず、この環境下でのWordPressの設定はこれでダッシュボードからのインストールや各種更新、FTP操作が上手く行くようになりました。