WordPress 2、WordPress 3、そしてWordPress Publishing Platformがテーマのアップロード、アップグレードのアップグレード、およびプラグインの設定のオプションとしてSFTPをサポートしていないことがまもなく発表されるWordPress 4でさえ長年経ちましたか?
MovableTypeやExpressionEngine、Umbracoなどの他の多くのプラットフォームも、WordPressがエンタープライズ製品であることを証明しているため企業主導型ですが、それでもSFTPがサポートされていないのはなぜですか。
よろしく
WordPressは内蔵のアップデータシステムを介してSSH(別名SFTP)を使った接続をサポートします。約6年前のバージョン2.7でこのサポートを受けました。参照: https://core.trac.wordpress.org/ticket/7690
通常の「認証情報」画面に表示されていない場合は、PHPインストールに必要なサポートがないためです。 WordPressは "ssh"とは話すことができませんが、PHP "ssh2"拡張子を使用してその拡張子を使用することができます。
WordPressでSSHを使用するための2つの前提条件があります。
まず、PHPインストールにはssh2エクステンションがロードされているかコンパイルされていなければなりません。利用できない場合はpeclで入手できます。場合によっては、PHPを再コンパイルするか、ホストがサポートしていない場合はカスタムのものを使用する必要があります。ほとんどの場合、そうではありません。そのため、デフォルトでは表示されません。
次に、stream_get_contents
関数が利用可能でなければなりません。通常これが当てはまりますが、ホストによっては、存在しない場合もあります。最初に確認してください。ビルトインコードはこれらの両方をチェックするので、もしそれらが利用できなければ、それは単にチェックを失敗させ、あなたはsshオプションを取得しません。
両方の条件が正しい場合は、通常の接続画面に自動的にいくつかの新しいフィールドが表示されます。これには「SSH2」オプション、および公開鍵と秘密鍵のペアへのパスを入力するためのフィールドが含まれます。
FTPメソッドと非常によく似ていますが、毎回この情報を入力することもできますが、wp-configファイルに定数を設定する方がはるかに簡単です。
定数は次のようになります。
define('FTP_PUBKEY','/home/user/.ssh/public-key-file');
define('FTP_PRIKEY','/home/user/.ssh/private-key-file');
define('FTP_USER','user');
define('FTP_PASS','passphrase');
define('FTP_Host','domain.com');
これを行う方法は、WordPressが使用するための新しいsshキーペアを生成することです。公開鍵と秘密鍵のペアは、それらを読むことができるようにあなたのサーバーのどこかに保存されるべきです。秘密鍵はパスフレーズで暗号化することができ、ワードプレスはこれを知る必要があります。あなたのアカウントの公開鍵をあなたの "authorized_keys"ファイルに追加する必要があります。
これがすべて整ったら、WordPressは秘密鍵を読み取り、その鍵を使って指定されたユーザー名のホスト名に接続します。その場合、SSH接続を使用することを除いて、通常のFTPを使用するのとほとんど同じように動作します。