WordPress更新時にFTP情報入力画面が表示される場合の対処方法3つ

自分でサーバー構築してWordPressをインストールすると、プラグインのアップデートなどの際にFTP関連設定を入力しなければいけなくなる場合があります。

『要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。』と出てくるあの画面のことです。

FTPの接続情報を入力する画面

FTPの接続情報を入力する画面

私の場合は作業用Mac、いわゆるMAMP環境でそういったことが起こりました。(そういう方が多いらしいですね。)

それについての対処法を色々調べた結果、3つほど発見したので、それをご紹介。

chownでWordPressファイルのオーナーを変更する

問題の画面は、スクリプトの実行ユーザーとファイルやフォルダを作成した際のオーナーが異なることにあるそうです。

もう少し具体的には、『wp-admin/includes/file.php』の中で、まず仮のファイルを作成し、そのオーナー(つまりUID)をfileowner()で取得しています。そして、getmyuid()でスクリプト実行者のUIDを取得して、両者を比較します。

それらが同じならそのままダウンロードする、同じでなければFTP情報を入力する画面を表示する、という条件分岐を行なっています。

なので、スクリプト実行者をファイル作成者を合わせるために、以下のようにファイルオーナーを変更します。

chown -R apache:apache (WordPressを設置したディレクトリの名称)

などでしょうか。

と書いてはみたものの、実はこの方法は私の環境では使えませんでした。私の方法が間違っている可能性が高いですが、詳細な原因は現時点では判っていません。

あと、レンタルサーバーなどだとこの方法は使えないことの方が多そうですね。(経験上レンタルサーバーならこの問題自体起きることが少ないですが。)

wp-config.phpに1行加える

これが最も多く使われているようですね。

wp-config.phpに以下の1行を追加します。場所はファイル内のどこでも良いです。私は最下行に追加しました。

define('FS_METHOD','direct');

恐らくセキュリティ的には、前述した『ファイルオーナーを変更する』方法の方がより良いような・・・PHPソースを読む限りではそんなに問題無さそうかなと思いますが。(詳しい方いらっしゃいましたら教えてください。)

フィルターフック『filesystem_method』を使う

テーマのfunctions.phpに以下の記述を追加する方法もあります。

function set_fs_method($args) {
	return 'direct';
}
add_filter('filesystem_method','set_fs_method');

『wp-admin/includes/file.php』内では『filesystem_method』というフィルターフックを使って、この部分の条件分岐をしています。そこにフックして『direct』を入れてやることで、問題の画面が表示されなくなります。

処理的には、2番めのwp-config.phpに1行追加する方法とそれほど大差ないですね。(いや、あるんですけど。)

まとめ

問題が起こった時、「wp-config.phpに追加する方法」は比較的すぐに見つかりましたが、漠然と「セキュリティ的にどうなのかな?」という疑問がありました。

そこで、更に調べてファイルオーナーの変更の方法を発見し、これは良いなと思って実行してみまたしたが、私の環境ではうまく行かず。

なので、もう少し詳細に調べてみたところ、フィルターフック『filesystem_method』を使う方法を発見しました。

この方法に問題が無いかどうかは判ってませんが、今のところ問題は起きていません。折を見て調査してみたいと思います。

スポンサードリンク

WordPress更新時にFTP情報入力画面が表示される場合の対処方法3つ」への19件のフィードバック

  1. Netwanderer

    私もMacBook Pro上のOS X 10.8でのMAMP環境で構築していて、同じ症状が発生したので参考にさせていただきました。私は1つ目の「chownでWordPressファイルのオーナーを変更する」の方法で、コマンドは「sudo chown -R _www:_www wordpress」と入れることで、3.5→3.5.1へと自動更新がうまくいきました。情報ありがとうございました。

  2. sandalot 投稿作成者

    Netwandererさん コメントありがとうございました。お役に立てたようで良かったです。また、記事にも書きましたが私の環境ではchownの方法は使えませんでした。ですが、ユーザー及びグループ『_www:_www』というのは試していなかったような記憶があるので、試してみたいと思います。貴重な情報をありがとうございました!

  3. ピンバック: Wordpress更新時にFTP認証が求められる謎 | yuuAn's Note

  4. しゃの

    こんばんは、はじめまして。
    WordPressさんにFTPに接続しろと言われて1時間くらい詰まってて、検索して来ました(TT)
    感謝です!

    もう解決済みかもしれませんが、
    Apacheのユーザー名とグループは、httpd.confに記載されてました!

    170行目あたり(環境によって位置が違うかも・・)に
    User ◯◯(Apacheのユーザー名)
    Group ◯◯(Apacheのグループ名)
    ↑こんなかんじで記載されているので、ここを書き換えてapache再起動か
    ここの名前に合わせてchownすればApacheと同じユーザーに変更されます!
    (ちなみにmacのxampp環境では、User→daemon / Group→daemonでした^^)
    httpdコンフいじると他の運用中のものに影響出るかもしれないので
    chownがいいと思います!(笑)

  5. sandalot 投稿作成者

    しゃのさん

    情報ありがとうございました!
    私自身は『_www:_www』に変更することで動作的には解決していましたが、その設定がどこでされているのかが判らない状況でした。

    それで、頂いた情報を元にhttpd.confを確認したところ、UserとGroupの記述を発見しました。(私の場合は130行目付近でした。)
    試しにhttpd.confの記述を変えてApache再起動すると、やはりFTP接続の画面が表示されたので、ここで間違いないと言っていいですね。

    ここ10ヶ月くらいの疑問が解けて、一つ賢くなることができました。本当にありがとうございました!

  6. ピンバック: 「要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります」と怒られた時の対処法 – Masaru の独学ブログ

  7. ピンバック: WordPressをさくらVPSへ移行(参考URL) – キャタピラ

  8. ピンバック: AWSにWordPress入れてお名前.comでサブドメイン設定してブログを作る:その4 | 電波の杜

  9. ピンバック: WordPressのプラグインを更新時に接続情報の入力画面が表示する | blogweb

  10. ピンバック: wordpressでFTPがうまくいかない時 | Please remember these .

  11. ピンバック: WordPress 更新時のエラーあれこれ | Silent Bob の プログラムまとめ2

  12. ピンバック: WordPress更新でFTP入力画面が表示される場合の対処法 | hylogix

  13. ピンバック: WordPressをインストールして、FTPがーっと言われた時の対処 | No:476 | 毎日工房 | 毎日工房

  14. ピンバック: WordPressをインストールして、FTPがーっと言われた時の対処 | No:476 | 毎日工房 |

  15. ピンバック: [WordPress] 更新時にFTP情報入力を促される場合の対処 – 端くれプログラマの備忘録

  16. ピンバック: wordpressの更新をブラウザベースでやりたい | 自由気ままに・・・

  17. ピンバック: I know was how to update of WordPress and the Plugins on KUSANAGI! | ryo.nagoya

  18. ピンバック: vagrantでWordPressのアップデートをする | ミリオンハイスクール | ネットビジネス | WordPress

  19. ピンバック: 73spica's Blog | WordPressサイトの移行手順まとめ(mysqldumpから別環境移行まで)

twitterまたはFacebookでもコメントして頂けます