更新を行うときにWordPressがFTP情報の入力を求めるのを止めるにはどうすればよいですか?


29

更新を行うときにWordPressがFTP情報の入力を求めるのを止めるにはどうすればよいですか?

回答:


23

wp-config.phpファイルを編集する場合、これらのFTP設定をWordPressが読み込む定数としてプリロードできます。共有ホストでは、考えられるセキュリティへの影響に注意する必要があります。 詳細については、編集wp-config.php参照してください。

設定はさまざまですが、これらは私とホスティングのセットアップで機能します。接頭辞を付けた未使用の定数をいくつか含めました。

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_HOST', 'ftp.my-site.example.com');
// define('FTP_SSL', false);

これが最も簡単な方法ですが、pixelineが以下に述べているように、ファイルのアクセス許可を確認してください。3つのクレデンシャルのうち2つはデータベースに格納されますが、3つ目のクレデンシャルはファイルに書き込まれます(どちらが頭上にあるか思い出せません)。
ジョンPブロッホ

12

ファイルの所有権を確認してください。apacheを実行しているユーザーがwordpressディレクトリに書き込むことができる場合、統合されたアップグレードプロセスはすべてftpなしで機能します。FTPクレデンシャルは、Webサーバーがファイルに対する適切な特権を持っていない場合に使用され、その後、wordpressがFTPの詳細の入力を求め、それらを使用してFTPサーバーに書き込みを試行します。必要なファイル。


1
ファイルの所有権をWebサーバーの所有権に変更しないでください。これは潜在的なセキュリティリスクです。
オットー

...それが私の場合のように、
不適切に

5

ディレクトリが書き込み可能である場合、WordPressのチェックをしないだけでいるようだが、それはApacheのユーザーがチェックした場合に所有しているディレクトリを(またはApacheのユーザーが一時ファイルを所有している場合、少なくとも、それが作成されます)。/wp-admin/includes/file.phpで次のコード行を確認します:get_filesystem_method():

if ( $temp_handle ) {
    if ( getmyuid() == @fileowner($temp_file_name) )
        $method = 'direct';
    @fclose($temp_handle);
    @unlink($temp_file_name);
}

したがって、簡単な解決策は、このコマンドを発行して、Wordpressインストール全体の所有権をApacheに付与することです。

sudo chown -R www-data wordpress/

ここで、www-dataはApacheユーザーであり、もちろんwordpressはWordPressインストールフォルダーです。

私のソリューションをここにさらに文書化しました:https : //ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/


そのリンクは今は死んでいます。ここアーカイブは次のとおりです。web.archive.org/web/20131213005955/http://rubiks.ph/...
サム・ウィルソン

「$ allow_relaxed_file_ownershipオプション。グループ/ワールドの書き込みを許可するかどうか」の詳細を誰でも説明できますか。
サムウィルソン

@Sam Wilsonブログエントリの一部を無料のWordPressアカウントに移行しました。古いドメインは無効です。
アルディーアラム

1

Centos 7 PHP 7サーバーでWebサイトのロード速度を改善するためにEasyApache4を介してApache 2.4を微調整するとき、mod_pagespeedを有効にしました。有効にすると、mod_ruid2とmod_cgiが自動的に無効になります(他の2つのモジュールも有効になります)。mod_pagespeedを無効にすると、mod_ruid2は自動的に再度有効になりません-mod_cgiのみが再度有効になります。mod_ruid2がなければ、WordpressはFTPクレデンシャルを要求します。

wp-config.phpをハードコーディングしたり、ファイルのアクセス許可を(危険なことに)777に設定したりする必要はありません。mod_ruid2を手動で有効にし、Apacheを再起動するとFTP /ファイルアクセス許可の問題が解決します。Wordpressとプラグインが通常どおり更新され、メディアがWordpressギャラリーにアップロードされるようになりました。すぐに動作します。

MPM PreforkからWorkerに変更すると、mod_ruid2が無効になることを確認しました。WorkerからPreforkに戻すと、mod_ruid2が有効にならず、この投稿で説明されている問題が発生します。

どちらの場合も、キーはmod_ruid2を確認して有効にすることです。

助けたことを願っています。


-1

1)上記の答えは一般的すぎるため同意できませんでした

1a)私はすべてのファイルの所有権を再帰的に変更したくない(ショットガンを使用して蚊を殺すなど)。特に、これは以前は完全に機能していました。

1b)突然、ftpの資格情報を尋ねる「卑劣な」機能を持つWordpress

2)それで、私はArdee Aramのリードを使ってより深く掘り始めました。file.phpファイルをチェックインして、その所有権を確認しました。file.phpは自身の所有権に依存しているようです(誤ってルートとして設定されています)。

修正:chown www file.php

注:wwwをディストリビューションまたは設定に置き換えます(ps aux | egrep "php | http"を使用すると、最初の列に所有権が表示されます)。

これが他の誰かがこれについて不満を感じるのを助けることを願っています。そもそもwordpressが「文句を言わない」のではなく、FTPの代替手段を使用することを提案する理由すらわかりません。今では、すべてが突然導入される「機能」のようなものです。


WPSE、th3penguinwhispererへようこそ。気軽にツアーに参加してください。「上記の回答」では、回答は人々の投票の結果としていつでも順序を変更できます。投稿を編集して、誰の回答を参照しているのかを明確にしてください。あなたの考えを追加してくれてありがとう!
ティムマローン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.