SSHキー を使用したSFTPのみを使用するライブサーバーでWordPressを使用しています。
プラグインをインストールしてアップグレードしたいのですが、プラグインをインストールするには FTP ログインを入力する必要があるようです。WordPress にプロセス全体を処理させる代わりに、手動でファイルをアップロードしてプラグインをインストールおよびアップグレードする方法はありますか?
WordPress は、直接書き込みできない場合に、プラグインまたは WordPress の更新をインストールしようとしているときにのみ、FTP 接続情報の入力を求めます/wp-content
。それ以外の場合、Web サーバーが必要なファイルへの書き込みアクセス権を持っている場合は、更新とインストールが自動的に処理されます。この方法では、FTP/SFTP または SSH アクセスは必要ありませんが、Web サーバーで特定のファイル権限を設定する必要があります。
さまざまな方法を順番に試し、直接および SSH の方法が使用できない場合は FTP にフォールバックします。
https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912
WordPress は一時ファイルをディレクトリに書き込もうとします/wp-content
。これが成功した場合、ファイルの所有権を独自の uid と比較し、一致する場合は、プラグイン、テーマ、または更新をインストールする「直接」方法を使用できるようにします。
なんらかの理由で、使用するファイルシステム メソッドの自動チェックに依存したくない場合は'FS_METHOD'
、wp-config.php
ファイル内でいずれかの定数を定義する'direct', 'ssh', 'ftpext' or 'ftpsockets'
と、そのメソッドが使用されます。これを「direct」に設定しても、Web ユーザー (Web サーバーを実行するユーザー名) に適切な書き込み権限がない場合、エラーが発生することに注意してください。
要約すると、wp-content のパーミッションを変更したくない (または変更できない) 場合は、Web サーバーに書き込みパーミッションを持たせるために、これを wp-config.php ファイルに追加します。
define('FS_METHOD', 'direct');
ここで説明されているアクセス許可:
前に述べたように、パーマの修正はもう機能しません。それに応じて perms を変更し、以下を .xml ファイルに追加する必要がありますwp-config.php
。
define('FS_METHOD', 'direct');
wp-config.php
_define('FS_METHOD', 'direct');
wp-content/
、をサーバーに書き込み可能にしますwp-content/plugins/
。wp-content/plugins
)。バージョン 3.2.1 で作業
ファイルを開きwp-config.php
、次の行を追加します。
define('FS_METHOD', 'direct');
これは私のために働いています...ありがとう
wp-config.phpへの簡単な変更
define('FS_METHOD','direct');
それだけです。ftpなしでワードプレスの更新をお楽しみください。
別の方法:
WordPress の更新を容易にするために、この方法が機能しないようにするホストが存在します。幸いなことに、この害虫が FTP ユーザー名とパスワードの入力を求めないようにする別の方法があります。
繰り返しますが、wp-config.php ファイルの MYSQL ログイン宣言の後に、次を追加します。
define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
wp-content\plugins
通常、プラグインをディレクトリにアップロードするだけです。SFTP 経由でこのディレクトリにアクセスできない場合は、行き詰まっている可能性があります。
ターミナルで次のコードを実行します
sudo chown -R www-data /var/www
詳細については、 Wordpress on Ubuntu install plugins without FTP access を参照してください。
次のコードを wp-config に追加します
define('FS_METHOD', 'direct');
FS_METHODはファイルシステム方式を強制します。direct、ssh2、ftpext、または ftpsockets のみにする必要があります。通常、更新の問題が発生している場合にのみ、これを変更する必要があります。変更しても問題が解決しない場合は、元に戻す/削除してください。ほとんどの状況では、自動的に選択された方法が機能しない場合、「ftpsockets」に設定すると機能します。
(基本設定) 「直接」は、PHP 内から直接ファイル I/O 要求を使用することを強制します。これは、構成が不十分なホストでセキュリティの問題が発生することを伴います。これは、適切な場合に自動的に選択されます。
(二次設定) "ssh2"は、インストールされている場合に SSH PHP 拡張機能の使用を強制することです
(3rd Preference) "ftpext"は、FTP アクセスに FTP PHP 拡張機能の使用を強制するものであり、最後に
(第 4 優先) "ftpsockets"は、FTP アクセスに PHP Sockets Class を利用します。
詳細については、http: //codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constantsをご覧ください。
WordPress 2.7 では、zip ファイルを直接アップロードできます (プラグイン ページの下部にリンクがあります)。FTP アクセスは必要ありません。これは 2.7 の新機能で、プラグインのみで動作します (まだテーマでは動作しません)。
古いスレッドを復活させますが、ファイルを編集することなくSFTP機能を追加するSSH SFTPUpdaterSupportと呼ばれる素晴らしい新しいプラグインがありwp-config.php
ます。また、WordpressのSFTP実装は、サーバーで有効にされていないことが多い、ややあいまいなPHPモジュールに依存しています。このプラグインは別のPHPSFTPプラグインをパッケージ化するため、Apache側で何も構成する必要はありません。
私はSFTPサポートを機能させるためにたくさんの問題に遭遇しました-このプラグインはそれらすべてを解決し、ただ素晴らしいです。
SSH SFTPUpdaterSupportプラグインもお勧めします。私のすべての問題も解決しました...特に、管理者を介してプラグインを削除することに関して。通常の方法でインストールするだけで、次にWordPressからFTPの詳細の入力を求められたときに、SSHの秘密鍵をコピーして貼り付けるかPEMファイルをアップロードするための追加のフィールドが表示されます。
私が抱えている唯一の問題は、キーを記憶させることです(両方の方法を試しました)。プラグインを削除する必要があるたびにそれを見つけて入力しなければならないという考えは好きではありません。しかし、少なくとも今のところは確実な修正です。
はい、プラグインを WordPress に直接インストールします。
その他のオプション
ステレオインタラクティブからの回答は、すべてのオプションをカバーしています。FTP を使用する別の方法について言及したかっただけです。FTP アクセスを許可していない理由は、セキュリティのためだと思います。これらのセキュリティ上の問題に対処する 1 つの方法は、127.0.0.1 のみをリッスンする FTP サーバーを実行することです。
これにより、WordPress 内から FTP を使用できるようになり、プラグインを外部に公開することなくプラグインをインストールできるようになります。これは、Joomla! などの他の一般的な Web アプリケーションにも適用できます。そして Drupal。これは、BitNami アプライアンスとクラウド サーバーで行っていることであり、非常にうまく機能しています。
これを試して
1)wp-config.php
追加でdefine('FS_METHOD', 'direct');
2)wp-content
ディレクトリを777
書き込み可能に設定します。
3) プラグインをインストールします。
私たちは (開発サーバーとライブサーバーの両方で) SSH で SFTP を使用し、WordPress アップロード機能を使用しようとしました (それほど難しくはありません)。Toby に同意します。プラグインをwp-content/plugins
ディレクトリにアップロードし、そこから有効にします。
SFTP または SSH を使用して WordPress のプラグインを自動更新することは可能ですが、ssh2 pecl 拡張機能が必要です。次のチュートリアルを使用して、その方法を見つけることができます
これを試してください wp-content フォルダーに正しい権限が与えられているかどうかを確認してください。
wp-config.php を編集して、次の行を追加します
define('FS_METHOD', 'direct');
フルアクセスのために、「wp-content」ディレクトリを www-data に chmod します。
プラグインをインストールしてみます。
はい、できます。
追加する必要があります
define('METHOD','direct');
あなたのwpconfigで。ただし、この方法はセキュリティ違反があるため、好ましくありません。
ありがとう、
方法 1: 次 のように設定できます。 1. wp-config.php に次の行を記述する必要があります。
define('FS_METHOD', 'direct');
注: これは define( 'DB_CHARSET', 'utf8mb4' ) の後に置きます。
方法 2:
またはこれを設定することもできます
define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
ここに簡単な方法があります。
次のコマンドを実行します。
これにより、Apache の mod_rewrite モジュールが有効になります
$sudo a2enmod rewrite
このコマンドは、フォルダーの所有者を www-data に変更します
$sudo chown -R www-data [Wordpress Folder Location]
上記のコマンドを実行した後、FTP なしで任意のテーマをインストールできます。
二段
以下のコードを wp-config ファイルに追加します
define('FS_METHOD', 'direct');
サーバーがSSHに接続されている場合のように、フォルダーに完全な許可を与える必要があります。次に、ターミナルに以下のコードを貼り付け、Webサイトフォルダー内にいることを確認してから、コードの下を実行します
sudo chmod -R 775 wp-content/plugins
またはウェブサイトのフォルダに完全な許可を与える
sudo chown -R www-data:www-data website_folder