web-dev-qa-db-ja.com

FTPアクセスを提供せずにWordPressプラグインをインストール/アップデートすることはできますか?

私は WordPress_ sftp _ のみを使用しているライブサーバーで _ ssh _ キーを使用しています。

プラグインをインストールしてアップグレードしたいのですが、プラグインをインストールするにはFTPログインを入力する必要があるようです。 WordPressにプロセス全体を処理させるのではなく、手動でファイルをアップロードしてプラグインをインストールおよびアップグレードする方法はありますか?

515
user77413

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');

許可はここに説明しました:

720
stereoscott

前に述べたように、permの修正はどれももううまくいきません。それに応じてパーマを変更し、あなたのwp-config.phpに以下を入れる必要があります。

define('FS_METHOD', 'direct');
235
unc0nnected

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/*
96
sufinawaz
  1. wp-config.phpdefine('FS_METHOD', 'direct');を追加
  2. サーバにディレクトリwp-content/wp-content/plugins/を書き込み可能にします。
  3. プラグインをインストールします(プラグインディレクトリをwp-content/pluginsディレクトリにコピーします)。

バージョン3.2.1で動作しました

69
Lamy

wp-config.phpファイルを開き、次の行を追加します。

define('FS_METHOD', 'direct');

これは私のために働いています...ありがとう

49
StreetCoder

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");
33
ravi patel

アップデートやテーマのアップロードに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オプションを取得します。 WP SSH Connection

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をする必要は全くありませんでした。しかし、私はこのメソッドが他の場所で参照されているのを見ました。

参照:

21
JacquelineIO

通常は、プラグインをwp-content\pluginsディレクトリにアップロードするだけです。あなたがSFTP経由でこのディレクトリにアクセスできない場合、私はあなたが動けなくなる可能性があります。

18
Toby Allen

コマンドpromtに次のコマンドを入力して、非常に簡単に入手できます。

Sudo chown -R www-data:www-data your_folder_name

または、wp-config.phpファイルに以下のコードをコピー&ペーストしてください。

define('FS_METHOD', 'direct');

"your_folder_name"はWordPressがこのフォルダの中にインストールされているフォルダです。

17
Roman

次のコードを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

15

ターミナルで以下のコードを実行してください。

Sudo chown -R www-data /var/www

詳細については UbuntuのWordpressにFTPアクセスのないプラグインをインストールしてください

15
Bikram Shrestha

Ubuntu を使っているのであれば、 Apache ユーザー(デフォルトではwww-data)に所有権を与えることが私のために役立ちました。

cd your_wordpress_directory
Sudo chown -R www-data wp-content
Sudo chmod -R 755 wp-content
13
mikermcneil

WordPress 2.7ではZipファイルを直接アップロードできます(プラグインページの下部にリンクがあります) - FTPアクセスは不要です。これは2.7の新機能で、プラグインに対してのみ機能します(まだテーマは設定されていません)。

11
D. Lambert

これを試して

1)wp-config.phpにdefine( 'FS_METHOD'、 'direct')を追加してください。

2) "wp-content"ディレクトリを777に設定して書き込み可能にします。

3)今すぐプラグインをインストールします。

9
Raj

古いスレッドを復活させますが、 SSH SFTP Updater Support という素晴らしい新しいプラグインがあり、wp-config.phpファイルを編集する必要なしにSFTP機能を追加できます。また、WordpressのSFTP実装は、サーバー上で有効にされていないことが多い、ややあいまいなPHPモジュールに依存しています。このプラグインは異なるPHP SFTPプラグインをパッケージ化しているので、Apache側で何も設定する必要はありません。

私はSFTPサポートを機能させるのに沢山の問題に遭遇しました - このプラグインはそれらすべてを解決して、ただ素晴らしいです。

9
chrismanderson
  1. fastcgicgiを有効にしてphp_modからSuEXECに変更しました。

動作しない場合は忘れないで変更してみてください

  1. rootとしてwp-contentを775に変更

    chmod -R 775 ./wp-content

  2. wp-config.phpに追加

    define( 'FS_METHOD'、 'direct');

うまくいくことを願っています

9
Zaman

はい、WordPressに直接プラグインをインストールしてください。

  1. プラグインフォルダをコピーしてWordPressのプラグインフォルダに貼り付けます。
  2. 管理者側(/ test/wp-admin)に行き、その後プラグインリンクに行き、プラグインの名前を確認してください。
  3. プラグインを有効にするので、プラグインを簡単にインストールできます。

他のオプション

  1. プラグインコード用のZipファイルを作成します。
  2. 管理者側(/ test/wp-admin)に行き、その後プラグインリンクに行き、そして次にadd newをクリックしそしてプラグインZipフォルダをブラウズしそしてプラグインをインストールしそしてプラグインを有効にするオプションを出しなさいプラグインを有効にします。
8
Maulik patel

Stereointeractiveからの答えはすべてのオプションをカバーしています。 FTPを使用する代わりの方法について言及したいだけでした。 FTPアクセスを許可しないのはセキュリティ上の理由によるものと思います。これらのセキュリティ上の問題に対処する1つの方法は、127.0.0.1でのみlistenしているFTPサーバーを実行することです。

これはあなたがWordPressの中からFTPを使用することを可能にし、あなたはそれを世界の他の人々に公開しない間あなたはプラグインをインストールすることができるでしょう。これはJoomla!のような他の一般的なWebアプリケーションにも適用できます。とDrupal。これが私たちの BitNamiアプライアンス そして クラウドサーバー で行うことであり、そして非常にうまく機能しています。

8
kaysa

SSH SFTPアップデータサポートプラグイン をお勧めします。私の問題もすべて解決しました…特に管理者を通してプラグインを削除させることに関しては。通常の方法でインストールするだけで、次回WordPressからFTPの詳細を要求されたときには、秘密のSSHキーをコピー/ペーストしたりPEMファイルをアップロードするための追加のフィールドがあります。

私が持っている唯一の問題はそれがキーを覚えさせることになっていることです(両方の方法を試しました)。プラグインを削除する必要があるたびにそれを見つけて入力しなければならないという考えが嫌いです。しかし、少なくとも今のところしっかりした修正方法です。

8
Mark Jeldi

私たちはSSHを使ってSFTPを使っています(開発サーバーとライブサーバーの両方で)、私はWordPressのアップロード機能を使うことを試みました(それほど難しいことではありません)。私はTobyに同意し、あなたのプラグインをwp-content/pluginsディレクトリにアップロードしてからそこから起動します。

6
Schoffelman

SFTPまたはSSHを使用してWordPressのプラグインを自動更新することは可能ですが、ssh2 pecl拡張子が必要です。あなたはそれを行う方法を見つけることができます、次を使用して チュートリアル

6
Sudar

私は2日前と同じ問題を抱えていましたが、これをwp-contentに追加しました。

define('FS_METHOD', 'direct');

そして

プラグインフォルダのアクセス権を775に設定

これでFTPアクセスのログイン/パスワードを尋ねるという私の問題は解決しました。

それ以前は、.Zipファイルをpluginフォルダに追加して手動でプラグインを追加してから、wp-admin/pluginsに移動してインストールする必要がありました。

6
ZainZaheer

試してみるwp-contentフォルダに正しい権限が与えられているか確認してください。

Wp-config.phpを編集して次の行を追加します

define('FS_METHOD', 'direct');

フルアクセスのためには "wp-content"ディレクトリをwww-dataにchmodしてください。

今すぐプラグインをインストールしてみてください。

5
Javeed Shakeel

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セキュリティ問題を手助けするためにこの情報を提供すると思いました。

2
Jason

define('FS_METHOD','direct');をwo-config.phpに追加してください

1
Gulshan kumar

これは簡単な方法です。

以下のコマンドを実行してください。

これでApache用のmod_rewriteモジュールが有効になります。

$Sudo a2enmod rewrite

このコマンドは、フォルダの所有者をwww-dataに変更します。

$Sudo chown -R www-data [Wordpress Folder Location]

上記のコマンドを実行した後は、FTPなしでテーマをインストールできます。

1

はい、できます。

追加する必要があります

define('METHOD','direct');

あなたのwpconfigで。しかし、この方法はセキュリティ上の問題があるため、好ましくありません。

ありがとう、

0
Riyaz

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で利用可能なプラグインのみをインストールできます。

0
Tristup