kusanagiでpluginsディレクトリのプラグインやプラグイン翻訳ファイルの更新ができない時の対処方法
kusanagiで、上記の様に/wp-content/languages と/wp-content/plugins と/wp-content/upgrade のパーミッションを777に変えると、プラグインやプラグイン翻訳ファイルの更新が出来ますがセキュリティ的には好ましくないです。改ざん防止のため、更新作業が終わったら必ず755に戻しましょう。めんどくさいので何かいい方法を知っている方は教えてください。※wp-config.phpにftpアカウントをdefineする方法は除きます。セキュアな方法を模索しています。
ワードプレス更新作業は真っ白画面エラーの危険性を常にはらんでいますので、開発環境で検証してから本番環境の更新を行うようにしてください。2環境運営は非常に大事です。
開発環境のお金がもったいない!と言って理解してもらえないエンドクライアント発注者でどうしようもないという場合、本番環境単体運営の場合は、git logで最後のコミットIDを確認しておいて、更新が失敗したら以下のコマンドで直前コミットにロールバックするのもおすすめです。
git reset --hard 最後のコミットID
775に変えるコマンド
chmod 775 plugins upgrade languages
※wp-content ディレクトリ内でコマンドを叩いてください。775は放置しないでください。必ず以下の755に戻してください。
755に変える(もどす)コマンド
chmod 755 plugins upgrade languages
※wp-content ディレクトリ内でコマンドを叩いてください
プラグインの中のroot:rootのファイルをkusanagi:kusanagiに変える
しかし、755に変えてからプラグイン更新してもupgradeディレクトリに残骸ファイルが残り、ワードプレスが真っ白エラー画面になってしまうことがありました。
原因を探るため、個別にプラグインのDirectoryに入り、ls -al コマンドで所有者とグループを確認するとroot:rootになっているファイルがありました。これが原因で「古いプラグインを削除できませんでした」となり、プラグイン更新がコケます。そのためwp-content/pluginsのDirectoryで以下のコマンドをたたき、プラグインの所有者とグループを再帰的にkusanagiに変えます。更新ボタンをクリックした時にkusanagiユーザーのFTP/FTPSパスワードを聞かれることに対して正しいアカウントで応答できる様にします。
chown kusanagi:kusanagi -R プラグインDirectory名
上記でもダメなら、wp-contentまるごと再帰的に所有者とユーザーをkusanagiに変えます。
chown kusanagi.kusanagi -R wp-content
ワードプレスのパーミッション設定の目安
以下を参照しながら、設定目安を考えました。
How to Fix WordPress File or Folder Permissions – Step by Step Procedure
Files/Folders | Permissions |
wp-content | 755 |
wp-includes | 644 |
All .php files | 644 |
All folders | 755 |
wp-config.php | 444 or 440 |
index.php | 444 |
,htaccess | 644 |