WordPressの更新でFTPの画面が出る場合の対処

WordPressの更新でFTPの画面が出てしまう場合にチェックするべき項目。

1.Wordpressディレクトリの権限が適切に設定されているか
2.Webサーバーが Apache の場合の実行ユーザーの確認
3.Webサーバーが Nginx の場合の実行ユーザーの確認
4.PHP-FPMの実行ユーザーの確認 ← 私はここに該当

各チェック項目の詳細に行く前に、そもそもなぜ FTP の画面が出てきてしまうのかについて理解をしておきましょう。
Wordpress や Plugin の更新は当然ながらファイルを書き換える必要が出てきます。ファイルの書き換えを行う場所がどこかというと、Wordpressディレクトリのファイル群が対象となります。
そこで WordPress はまずWordpress ディレクトリのアクセス権限を確認し、ファイルの書き換えが可能かどうかをチェックします。
具体的にどういう方法でチェックをしているかというと、その仕組みは至って単純です。
まずWordpressディレクトリに一時的なファイルを作成します。
次に作成したファイルのオーナー(uid)と、Wordpress のファイルのオーナー(uid)が一致するかチェックします。
ここで一致すれば FTP の画面は出ずに更新が開始されるようになります。
なので FTP の画面が出るということは、現在更新をしようとしているユーザーと WordPress を作成したユーザーが一致していないということになります。

以上のことを踏まえた上で各項目について詳細に見ていきましょう。

1.Wordpressディレクトリの権限が適切に設定されているか

これは ls -l コマンドで確認することができます。
Wordpressのディレクトリまで移動して ls -l コマンドを実行し、ディレクトリの権限を確認してみましょう。

※Wordpressのディレクトリにアクセスできるなら WinSCP などのソフトでも所有者で確認ができます

私の環境では Web サーバーは nginx を使用しており、nginxを実行するユーザーはnginxです。
そのため wordpress のディレクトリも nginx が所有者となっています。
アクセス権限は所有者(nginx)のみ書き換え可能となっています。

なのでnginxユーザーが wordpress を更新しようとすれば ftp の画面が出ずに更新できることになります。
ここの所有者が誰になっているかを確認するのは、ここから先の項目の確認を行う上で前提となるので、きちんと確認しておきましょう。

2.Webサーバーが Apache の場合の実行ユーザーの確認

Apache の実行ユーザーを設定する場合は httpd.conf のUserディレクティブとGroupディレクティブを設定します。

3.Webサーバーが Nginx の場合の実行ユーザーの確認

nginxの実行ユーザーを設定する場合は nginx.conf のuserディレクティブで設定を行います。

4.PHP-FPMの実行ユーザーの確認

PHP-FPMを使用している場合は、PHP-FPMの実行ユーザーを確認する必要があります。
私の場合はここが初期値のままだったので、1,3の項目が設定されていても FTP の画面が出てしまっていました。
PHP-FPMの実行ユーザーを設定する場合は、php-fpm.conf のuserディレクティブとgroupディレクティブで設定を行います。

あなたが管理者でない場合は上の4つの項目を管理者に確認してもらうとすぐに原因が判明するかもしれません。

ちなみにアクセス権を下記のようにするのはセキュリティ的に危険なのでしないようにして下さい。

こうすると所有者じゃなくてもだれでも書き込み可能になるので、FTPの画面も出なくなると思いますが、危険ですのでしないように。

後、この手の問題を解決する時にwp-config.phpに

みたいな定義を記述すればいいよと書いてあるとこがありますが、これはうまくいかない気がします。
そもそも上記の条件で書き込めないから direct にできない状況になっているので、無理やり direct にした所で更新自体に失敗すると思います。
何も考えずに行動をするより、きちんと原因を究明してから行動するようにした方がいいでしょう。

———————————広告———————————

———————————広告———————————

コメントを残す

メールアドレスが公開されることはありません。