WordPressを管理画面から更新しようとした際に、
次のようなメッセージが表示されて更新できないことはありませんか?
「更新のためにFTP情報を入力してください」
「FTPサーバー、ユーザー名、パスワードを入力してください」
この現象は、サーバー上のファイルの所有権とWordPressを実行しているユーザーが一致していないことが原因で発生します。
今回はその仕組みと、実際の解決手順を解説します。
🧩 現象の概要
WordPressの管理画面から更新を実行すると、
システム内部で「PHPがWordPressのファイルに書き込み」を行います。
ところが、サーバー上で以下のような状態になるとエラーが起きます。
WordPressのファイル所有者が「admin」や「root」など別のユーザー
PHPが「apache」や「nginx」ユーザーとして動作している
この場合、PHPがファイルを直接変更できず、
WordPressはFTP経由で更新するモード(FTPモード)に自動切り替えされます。
その結果、FTP接続情報の入力を求められます。
✅ 解決方法(推奨)
① ファイル所有者をPHP実行ユーザー(例:apache)に変更
SSHでサーバーにログインし、以下のコマンドを実行します。
1 | sudo chown -R apache:apache /var/www/html/wp |
/var/www/html/wp
はWordPressを設置しているパスに置き換えてください。
VPSやCentOS系サーバーでは、PHP実行ユーザーが「apache」の場合が多いです。
② パーミッションの整理
続けて、ディレクトリとファイルのアクセス権を整理します。
1 2 3 | sudo find /var/www/html/wp -type d -exec chmod 755 {} \; sudo find /var/www/html/wp -type f -exec chmod 644 {} \; sudo chmod 640 /var/www/html/wp/wp-config.php |
これにより、WordPressが安全にファイルを扱えるようになります。
③ wp-config.php に追記(必要に応じて)
一時的な対応として、FTPモードを強制解除するにはwp-config.php
に以下を追記します。
1 | define('FS_METHOD', 'direct'); |
ただし、権限の不一致が解消されていないと効果がない場合があります。
根本解決は「所有者の修正」です。
🧪 テスト結果(VMware上での検証)
弊社のVMwareテスト環境で検証を行いました。
ファイル所有者を apache:apache
に統一したところ、
WordPress本体の更新が管理画面から正常に実行できる ことを確認しました。
これにより、FTP情報の入力は不要となり、
管理画面から直接アップデートを実行できる状態となりました。
🔄 自動アップデート(マイナー更新)について
マイナーアップデート(セキュリティ更新)も同じ書き込み権限を使用するため、wp-cron.php
が正常に実行されていれば、自動更新も動作する見込みです。
※ サーバーのcron設定や、外部アクセスによるトリガーが有効であることを確認しておくと安心です。
📋 まとめ
項目 | 内容 |
---|---|
原因 | ファイルの所有者とPHP実行ユーザーが異なるため |
解決方法 | 所有者を apache:apache に変更し、パーミッションを整理 |
補足 | wp-config.php に FS_METHOD を追記してもOK(暫定対応) |
検証結果 | VMwareテスト環境で正常動作を確認済み |
注意点 | 自動更新は wp-cron.php が有効であることが前提 |