私は WordPress を _ sftp _ のみを使用しているライブサーバーで _ ssh _ キーを使用しています。
プラグインをインストールしてアップグレードしたいのですが、プラグインをインストールするにはFTPログインを入力する必要があるようです。 WordPressにプロセス全体を処理させるのではなく、手動でファイルをアップロードしてプラグインをインストールおよびアップグレードする方法はありますか?
WordPressが/wp-content
に直接書き込めない場合は、プラグインまたはWordPressアップデートをインストールしようとしているときに、FTP接続情報の入力を求められるだけです。そうでなければ、あなたのWebサーバが必要なファイルへの書き込みアクセス権を持っていれば、それは自動的にアップデートとインストールの面倒を見るでしょう。この方法では、FTP/SFTPまたはSSHアクセスを必要としませんが、Webサーバー上で特定のファイル許可を設定する必要があります。
さまざまな方法を順番に試し、Directと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'
を定義すると、そのメソッドが使用されます。これを「直接」に設定しても、Webユーザー(Webサーバーを実行しているユーザー名)に適切な書き込み権限がない場合は、エラーが発生します。
要約すると、あなたのWebサーバが書き込み許可を持つようにwp-contentの許可を変更したくない(または変更できない)場合は、これをあなたのwp-config.phpファイルに追加してください:
define('FS_METHOD', 'direct');
許可はここに説明しました:
前に述べたように、permの修正はどれももううまくいきません。それに応じてパーマを変更し、あなたのwp-config.php
に以下を入れる必要があります。
define('FS_METHOD', 'direct');
wp-content
パーミッションまたは任意のフォルダのパーミッションを777
に設定しないでください。
これは私がしなければならなかったことです:
1)WordPressフォルダの所有権を(再帰的に)Apacheユーザーに設定します。
# chown -R Apache wordpress/
Ubuntu、Mint、またはDebianの場合# chown -R www-data:www-data wordpress/
2)wordpressフォルダのグループ所有権を(再帰的に)Apacheグループに変更しました。
# chgrp -R Apache wordpress/
Ubuntu、Mint、またはDebianの場合は、このステップをスキップしてください。
3)所有者にディレクトリに対する完全な権限を付与します。
# chmod u+wrx wordpress/*
そしてそれは仕事をした。私のwp-content
フォルダには755
権限があります、ところで。
TL、DRバージョン:
# chown -R Apache:apache wordpress
# chmod u+wrx wordpress/*
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");
アップデートやテーマのアップロードにSSH2を使用できるようにするには、SSHキーを生成してPHP SSHモジュールをインストールする必要があります。それからWordPressはあなたが利用可能なSSH2を持っていることを検出するでしょう、そしてアップロード/アップグレードをするとき、あなたは異なったオプション(SSH2)が表示されるでしょう。
1.)Debian用にPHPモジュールがインストールされていることを確認してください:
Sudo apt-get install libssh2-php
2.)SSHキーを生成します。パスフレーズの追加はオプションです。
ssh-keygen
cd ~/.ssh
cp id_rsa.pub authorized_keys
3.)WordPressがこれらのキーにアクセスできるように権限を変更します。
cd ~
chmod 755 .ssh
chmod 644 .ssh/*
アップロード/アップグレード/プラグインをするときSSH2オプションを取得します。
4.)さらに簡単にするために、あなたのwp-config.php
でデフォルトを設定することができ、これはWordPressのアップロードウィンドウにSSH認証情報を事前に設定します。
define('FTP_PUBKEY','/home/<user>/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/<user>/.ssh/id_rsa');
define('FTP_USER','<user>');
define('FTP_PASS','passphrase');
define('FTP_Host','domain.com');
ssh-kengen
の間にパスフレーズを設定しない場合、「パスフレーズ」はオプションです。 wp-config.php
に追加しないでください
これで私の問題は解決しました。そして私はchown
をする必要は全くありませんでした。しかし、私はこのメソッドが他の場所で参照されているのを見ました。
参照:
通常は、プラグインをwp-content\plugins
ディレクトリにアップロードするだけです。あなたがSFTP経由でこのディレクトリにアクセスできない場合、私はあなたが動けなくなる可能性があります。
コマンドpromtに次のコマンドを入力して、非常に簡単に入手できます。
Sudo chown -R www-data:www-data your_folder_name
または、wp-config.phpファイルに以下のコードをコピー&ペーストしてください。
define('FS_METHOD', 'direct');
"your_folder_name"はWordPressがこのフォルダの中にインストールされているフォルダです。
次のコードをwp-configに追加してください。
define('FS_METHOD', 'direct');
FS_METHOD ファイルシステムメソッドを強制します。直接、ssh2、ftpext、またはftpsocketsのみにしてください。一般に、アップデートの問題が発生している場合にのみこれを変更してください。それを変更しても解決しない場合は、元に戻す/削除します。ほとんどの場合、自動的に選択された方法でうまくいかない場合は、 'ftpsockets'に設定するとうまくいきます。
(一次設定) "direct" PHP内からのダイレクトファイルI/O要求を使用するよう強制します。
(2次設定) "ssh2" がインストールされている場合はSSH PHP Extensionの使用を強制する
(3番目の設定) "ftpext" はFTPアクセスのためのFTP PHP拡張の使用を強制するためのものです。
(4番目の設定) "ftpsockets" はFTPアクセスにPHP Socketsクラスを利用します。
詳細については、次のURLをご覧ください。 http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
ターミナルで以下のコードを実行してください。
Sudo chown -R www-data /var/www
WordPress 2.7ではZipファイルを直接アップロードできます(プラグインページの下部にリンクがあります) - FTPアクセスは不要です。これは2.7の新機能で、プラグインに対してのみ機能します(まだテーマは設定されていません)。
これを試して
1)wp-config.phpにdefine( 'FS_METHOD'、 'direct')を追加してください。
2) "wp-content"ディレクトリを777に設定して書き込み可能にします。
3)今すぐプラグインをインストールします。
古いスレッドを復活させますが、 SSH SFTP Updater Support という素晴らしい新しいプラグインがあり、wp-config.php
ファイルを編集する必要なしにSFTP機能を追加できます。また、WordpressのSFTP実装は、サーバー上で有効にされていないことが多い、ややあいまいなPHPモジュールに依存しています。このプラグインは異なるPHP SFTPプラグインをパッケージ化しているので、Apache側で何も設定する必要はありません。
私はSFTPサポートを機能させるのに沢山の問題に遭遇しました - このプラグインはそれらすべてを解決して、ただ素晴らしいです。
fastcgi
&cgi
を有効にしてphp_mod
からSuEXEC
に変更しました。動作しない場合は忘れないで変更してみてください
rootとしてwp-contentを775に変更
chmod -R 775 ./wp-content
wp-config.phpに追加
define( 'FS_METHOD'、 'direct');
うまくいくことを願っています
はい、WordPressに直接プラグインをインストールしてください。
他のオプション
Stereointeractiveからの答えはすべてのオプションをカバーしています。 FTPを使用する代わりの方法について言及したいだけでした。 FTPアクセスを許可しないのはセキュリティ上の理由によるものと思います。これらのセキュリティ上の問題に対処する1つの方法は、127.0.0.1でのみlistenしているFTPサーバーを実行することです。
これはあなたがWordPressの中からFTPを使用することを可能にし、あなたはそれを世界の他の人々に公開しない間あなたはプラグインをインストールすることができるでしょう。これはJoomla!のような他の一般的なWebアプリケーションにも適用できます。とDrupal。これが私たちの BitNamiアプライアンス そして クラウドサーバー で行うことであり、そして非常にうまく機能しています。
SSH SFTPアップデータサポートプラグイン をお勧めします。私の問題もすべて解決しました…特に管理者を通してプラグインを削除させることに関しては。通常の方法でインストールするだけで、次回WordPressからFTPの詳細を要求されたときには、秘密のSSHキーをコピー/ペーストしたりPEMファイルをアップロードするための追加のフィールドがあります。
私が持っている唯一の問題はそれがキーを覚えさせることになっていることです(両方の方法を試しました)。プラグインを削除する必要があるたびにそれを見つけて入力しなければならないという考えが嫌いです。しかし、少なくとも今のところしっかりした修正方法です。
私たちはSSHを使ってSFTPを使っています(開発サーバーとライブサーバーの両方で)、私はWordPressのアップロード機能を使うことを試みました(それほど難しいことではありません)。私はTobyに同意し、あなたのプラグインをwp-content/plugins
ディレクトリにアップロードしてからそこから起動します。
SFTPまたはSSHを使用してWordPressのプラグインを自動更新することは可能ですが、ssh2 pecl拡張子が必要です。あなたはそれを行う方法を見つけることができます、次を使用して チュートリアル
私は2日前と同じ問題を抱えていましたが、これをwp-contentに追加しました。
define('FS_METHOD', 'direct');
そして
プラグインフォルダのアクセス権を775に設定
これでFTPアクセスのログイン/パスワードを尋ねるという私の問題は解決しました。
それ以前は、.Zipファイルをpluginフォルダに追加して手動でプラグインを追加してから、wp-admin/plugins
に移動してインストールする必要がありました。
試してみるwp-contentフォルダに正しい権限が与えられているか確認してください。
Wp-config.phpを編集して次の行を追加します
define('FS_METHOD', 'direct');
フルアクセスのためには "wp-content"ディレクトリをwww-dataにchmodしてください。
今すぐプラグインをインストールしてみてください。
ftpやSFTP接続、あるいはchmod 777を設定するのは、ローカル環境以外のものには向いていません。 SFTP方式でさえも開くと、必要とされていないより多くのセキュリティリスクが発生します。
必要なのは、それらのディレクトリの所有者による/ wp-content/uploads&/ wp-content/plugins /への書き込み可能な許可です。 (linux ls -laは所有権を示します)。
実行されるデフォルトのApacheユーザーはwww-dataです。
chmod 777では、Apache/phpスレッドユーザーだけでなく、マシン上のどのユーザーでもこれらのファイルを編集できます。
SFTPをまだ使用していない場合は、外部ソースから別の問題点が発生する可能性があります。目的を達成するには、Apache/phpプロセスを実行しているローカルユーザーのみがアクセスする必要があります。
誰かがこれらの主張をしているのを見ませんでした、それで私は私たちの恒常的なWPセキュリティ問題を手助けするためにこの情報を提供すると思いました。
define('FS_METHOD','direct');
をwo-config.phpに追加してください
これは簡単な方法です。
以下のコマンドを実行してください。
これでApache用のmod_rewriteモジュールが有効になります。
$Sudo a2enmod rewrite
このコマンドは、フォルダの所有者をwww-dataに変更します。
$Sudo chown -R www-data [Wordpress Folder Location]
上記のコマンドを実行した後は、FTPなしでテーマをインストールできます。
はい、できます。
追加する必要があります
define('METHOD','direct');
あなたのwpconfigで。しかし、この方法はセキュリティ上の問題があるため、好ましくありません。
ありがとう、
SSHを使用してプラグインをインストールするための最良の方法はWPCLIです。
SSHアクセスはWP CLIコマンドを使用するために必須です。使用する前に、ホストサーバーまたはマシンにWP CLIがインストールされているかどうかを確認してください。
確認方法:wp --version
[インストールされているwp cliのバージョンが表示されます]
インストールされていない場合、インストール方法:WP-CLIをインストールする前に、環境が最小要件を満たしていることを確認してください。
UNIXライクな環境(OS X、Linux、FreeBSD、Cygwin)。 Windows環境でのサポートは制限されています。 PHP 5.4以降WordPress 3.7以降。最新のWordPressリリースより古いバージョンは機能が低下している可能性があります。
上記の点が満たされている場合は、次の手順に従ってください。参照URL: _ wpcli _
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
[ download the wpcli phar ]
php wp-cli.phar --info [ check whether the phar file is working ]
chmod +x wp-cli.phar [ change permission ]
Sudo mv wp-cli.phar /usr/local/bin/wp [ move to global folder ]
wp --info [ to check the installation ]
これでWP CLIのインストール準備が整いました。
これで、次のコマンドを使ってWordPress.orgで利用可能なすべてのプラグインをインストールできます。
wp install plugin plugin-slug
wp delete plugin plugin-slug
wp deactivate plugin plugin-slug
注:wp cliはwordpress.orgで利用可能なプラグインのみをインストールできます。