私が使用していますワードプレスをのみ使用し、私のライブサーバー上でSFTPを使用したSSHキーを。
プラグインをインストールしてアップグレードしたいのですが、プラグインをインストールするにはFTPログインを入力する必要があるようです。WordPressにプロセス全体を処理させる代わりに、ファイルを手動でアップロードしてプラグインをインストールおよびアップグレードする方法はありますか?
VPS
、これを試してください:stackoverflow.com/a/44137965/3160597
私が使用していますワードプレスをのみ使用し、私のライブサーバー上でSFTPを使用したSSHキーを。
プラグインをインストールしてアップグレードしたいのですが、プラグインをインストールするにはFTPログインを入力する必要があるようです。WordPressにプロセス全体を処理させる代わりに、ファイルを手動でアップロードしてプラグインをインストールおよびアップグレードする方法はありますか?
VPS
、これを試してください:stackoverflow.com/a/44137965/3160597
回答:
WordPressは、プラグインまたはWordPressのアップデートを/wp-content
直接書き込めない場合に、インストールを試行している間、FTP接続情報の入力のみを求めます。それ以外の場合、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');
ここで説明する権限:
getmyuid
オンラインで876を使用すると、スクリプトエグゼキュータではなく、スクリプト所有者のUIDが返されるため、間違いなく間違いです。私はそうあるべきだと思いますposix_getuid
。
print_r(posix_getpwuid(posix_geteuid()));
できwp-config
ます。ファイルにコードを追加できます。
chown -R www-data wordpress/wp-content
私にとってはchown -R www-data wordpress
うまく
前述のように、パーマの修正は機能しません。あなたはそれに応じてパーマを変更する必要があり、以下をあなたの中に入れてくださいwp-config.php
:
define('FS_METHOD', 'direct');
追加したかったのwp-content
は、フォルダのアクセス許可を1つに設定しないでください777
。
これは私がしなければならなかったことです:
1)以下のように、wordpressフォルダの所有権を(再帰的に)apacheユーザーに設定します。
# chown -R apache wordpress/
2)以下のように、wordpressフォルダのグループ所有権を(再帰的に)apacheグループに変更しました。
# chgrp -R apache wordpress/
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経由でこのディレクトリにアクセスできない場合は、行き詰まっている可能性があります。
ターミナルで次のコードを実行します
sudo chown -R www-data /var/www
sudo chown -R www-data /var/www/html
次のコードをwp-configに追加します
define('FS_METHOD', 'direct');
FS_METHODはファイルシステムメソッドを強制します。これは、direct、ssh2、ftpext、またはftpsocketsのみにする必要があります。通常、これは、更新の問題が発生している場合にのみ変更してください。変更しても問題が解決しない場合は、元に戻す/削除してください。ほとんどの状況では、自動的に選択された方法が機能しない場合、「ftpsockets」に設定すると機能します。
(基本設定)「direct」は、PHP内からのダイレクトファイルI / O要求を使用することを強制します。これは、適切に構成されていないホストでセキュリティ上の問題が発生するため、適切な場合に自動的に選択されます。
(2次設定) "ssh2"は、インストールされている場合、SSH PHP拡張機能の使用を強制します
(3番目の設定) "ftpext"は、FTPアクセス用のFTP PHP拡張機能の使用を強制することであり、最後に
(4番目の設定) "ftpsockets"はFTPアクセスにPHPソケットクラスを利用します
詳細については、http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constantsをご覧ください。
Ubuntuを使用している場合、私にとってうまくいった簡単な解決策は、次のようにApacheユーザー(デフォルトではwww-data)に所有権を与えることです。
cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content
WordPress 2.7では、zipファイルを直接アップロードできます(プラグインページの下部にリンクがあります)-FTPアクセスは必要ありません。これは2.7の新機能であり、プラグインでのみ機能します(まだテーマではありません)。
これを試して
1)wp-config.php
追加でdefine('FS_METHOD', 'direct');
2)wp-content
ディレクトリを777
書き込み可能に設定します。
3)プラグインをインストールします。
ステレオインタラクティブからの答えはすべてのオプションをカバーしています。FTPを使用する別の方法について言及したかっただけです。FTPアクセスを許可しない理由はセキュリティのためだと思います。これらのセキュリティ問題に対処する1つの方法は、127.0.0.1でのみリッスンするFTPサーバーを実行することです
これにより、WordPress内からFTPを使用できるようになり、プラグインをインストールして、他の世界に公開することなくプラグインをインストールできるようになります。これは、Joomla!などの他の一般的なWebアプリケーションにも適用できます。そしてDrupal。これは私たちのBitNamiアプライアンスとクラウドサーバーで行うことであり、非常にうまく機能します。
SSH SFTPアップデータサポートプラグインもお勧めします。ちょうど私のすべての問題も解決しました...特に、管理者を通じて削除するプラグインを取得することに関して。通常の方法でインストールするだけで、次回WordPressからFTPの詳細を要求されたときに、秘密のSSHキーをコピー/貼り付けしたり、PEMファイルをアップロードしたりするための追加フィールドがあります。
私が持っている唯一の問題は、キーを覚えさせることです(両方の方法を試しました)。プラグインを削除する必要があるたびにそれを見つけて入力しなければならないという考えは好きではありません。しかし、少なくとも今のところ、それは確かな修正です。
はい、WordPressにプラグインを直接インストールします。
他のオプション
多くの人々が許可を777に設定することを勧めているのを見ました。2日前と同じ問題が発生しましたが、これをwp-contentに追加しました
define('FS_METHOD', 'direct');
そして
プラグインフォルダの権限を775に設定
これにより、FTPアクセスのログイン/パスワードを要求するという私の問題が解決しました。
その前に、.zipファイルをプラグインフォルダーに追加してプラグインを手動で追加してから、それwp-admin/plugins
をインストールする必要がありました。
これを試してくださいwp-contentフォルダーに正しい権限が付与されているかどうかを確認してください。
wp-config.phpを編集して、次の行を追加します
define('FS_METHOD', 'direct');
フルアクセスするには、「wp-content」ディレクトリをwww-dataにchmodしてください。
プラグインをインストールしてみてください。
方法1: これを設定できます。1. wp-config.phpで、この行を記述する必要があります。
define('FS_METHOD', 'direct');
注:define( 'DB_CHARSET'、 'utf8mb4')の後にこれを置きます。
wp-contentパーミッションまたはパーミッションを再帰的に設定してください。完全なパーミッションは、filezillaを介して付与できます。書き込み>ディレクトリをクリック>権限>読み取りと書き込みを確認して実行し、サブディレクトリへの再帰も確認する
方法2:
またはこれを設定することもできます
define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
Note: put this after define( 'DB_CHARSET', 'utf8mb4' ).
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のセキュリティ問題に役立つように提供すると思いました。
ここに簡単な方法があります。
以下のコマンドを実行します。
これにより、Apacheのmod_rewriteモジュールが有効になります
$sudo a2enmod rewrite
このコマンドは、フォルダーの所有者をwww-dataに変更します
$sudo chown -R www-data [Wordpress Folder Location]
上記のコマンドを実行した後、FTPなしで任意のテーマをインストールできます。
sudo chown -R www-data [Wordpress Folder Location]
/ wp-contentディレクトリへの書き込み権限がない場合に、WordPressがWordPress管理ダッシュボード経由でプラグインをアップロードできない唯一の理由。ワードプレスディレクトリ/ wp-contentには0755アクセス許可レベルが必要です。フォルダのアクセス許可レベルを変更するには、さまざまな方法があります。
cPanelを使用してファイルのアクセス許可を変更する:
WordPressのWebサイトがあるはずのパブリックHTMLフォルダーを開くか、Webサイトが他のフォルダーにある場合はサイトのルートディレクトリを開いて、ファイルマネージャーに移動します。WordPressルートディレクトリでwp-contentフォルダーに移動します。wp-contentフォルダー行の最後にある最後のボックスには、このフォルダーのファイル権限があります。フォルダーのアクセス許可レベルを必ず0755に編集すれば完了です。
SSHターミナルを使用してファイルの権限を変更する:
端末でWordPressサイトのルートを見つけます。私の場合は/ var / www / htmlでしたので、WordPressルートディレクトリに移動するには、次のコマンドを入力します。
cd /var/www/html
これで、必要なフォルダー/ wp-contentがあるWordPressルートディレクトリに移動しました。したがって、ファイルのアクセス許可を変更するには、次のコマンドを入力します。
sudo chmod wp-content 755
これにより、/ wp-contentディレクトリファイルの権限が0755に変更されます。
FTP経由でワードプレスプラグインをアップロードするエラーメッセージが表示されなくなりました。
SSHを使用してプラグインをインストールする最良の方法は、WPCLIです。
WP CLIコマンドを使用するには、SSHアクセスが必須であることに注意してください。使用する前に、ホスティングサーバーまたはマシンに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で利用可能なプラグインのみをインストールできます。
wp-content/plugins/
、そこにwpダッシュボードから抽出し、プラグインタブに移動して有効にします。