先日 WordPress を使用したサイト構築に携わったのですが。
もともと自動アップデートが出来ていたのに、サーバを移行したらアップデートを行う際に FTP 情報の入力を求められるようになってしまいました。
調べてみると「wp-config.php」に FTP 情報を設定するだとか、FTP を使用しないよう強制する設定だとか、何かしら設定を変更する記事ばかりが出てきます。
しかし、もともと設定をいじらなくてもできていたのですから、ここで設定をいじってしまうのは本末転倒。
頑張って色々検索してみました。
原因はファイルの所有者が違っていることだった
原因はファイルの所有者でした。
WordPress はアップデートを行う際に、対象ファイルの所有者が WEB サーバ(今回はApache)を動かしているユーザーと同じかどうかを判別する仕組みになっており、所有者が違うと FTP での更新に切り替わるため FTP 情報の入力が求めるようになるんだそうな。
確認してみたところ、確かにファイルの所有者が FTP 用のユーザーになっていました。
それを WEB サーバ用のユーザーに変更したところ、FTP 情報の入力を求められることなくアップデートが出来ました。
その他の解決方法
何かしらの制限で所有者を変更できない場合、先に述べた「FTP を使用しないよう強制する設定」を行うことで解決することが出来ます。
ただし、これは権限などを無視して作業を行うため、何かしら不具合が起きる可能性がありあまり推奨されないようです。
設定は簡単で「wp-config.php」に下記を追記するだけ。
define('FS_METHOD','direct');
ただし、下記コードのより上に記述する必要があります。
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
所有者や権限は設定を間違えるとセキュリティリスクが高まります。
適切に設定しましょう。