とある Web サーバで運営している WordPress サイトで WP 本体やプラグインを管理画面から更新する際、毎回 FTP/SSH のユーザ情報を入力する必要がある。
こんな画面。毎回でると面倒くさい。他のサーバで運営している WordPress ではこのような画面は出ず、更新ボタンを押したら即座に更新が行われる。
調べているとこの現象が発生する原因が数点見つかった。
WordPress の更新時に FTP の情報入力が出る原因と対処方法
上記のように WordPress の更新時に毎回接続情報が表示される原因は主に以下のような事が考えられる。
- WordPress のファイルの所有者が httpd と違う、もしくは書き込む権限が無い
- PHP から直接書き込む設定になっていない
WordPress のファイルの所有者が httpd と違う、もしくは書き込む権限が無い
WordPress の設定の仕方によっては所有者が違うもしくは権限が無い為に httpd がファイルを更新できない場合がある。自分の場合もこれだった。
その場合は適切な権限、ユーザに変更すれば良い。
例えば Ubuntu + Apache で運用する場合、デフォルトの Apache の実行ユーザは www-data なので以下のようにファイルの所有者を変更する。
$ sudo chown -R www-data:www-data wp
書き込み権限を変更するには以下のようにパーミッションの権限を変更する。
$ find . -type d -exec chmod 755 {} +
$ find . -type f -exec chmod 644 {} +
httpd の実行ユーザと WordPress のファイルのユーザを分けたい場合はファイル、ディレクトリにさらに書き込み権限を追加すれば良い。
例えば httpd と WordPress の所有ユーザのグループを同じにした場合は以下のようにファイルの権限を変更する。
$ find . -type d -exec chmod 775 {} +
$ find . -type f -exec chmod 664 {} +
PHP から直接書き込む設定になっていない
WordPress と httpd のユーザが違う際にパーミッションの設定があってるにもかかわらず更新ができない場合は以下の一行を wp-config.php に追加すると良さそう。
define('FS_METHOD', 'direct');
コメント