wordpressの管理画面でSSH接続設定


wordpressの管理画面からデフォルトでFTP接続は出来ますが、SSH接続はできないので設定。
使いドコロが多そうなのでメモ。

SSH2ライブラリ インストール

# yum install libssh2-devel
# pecl install -f ssh2

ここでエラー。

WARNING: failed to download pecl.php.net/ssh2 within preferred state "stable", will instead download version 0.12, stability "beta"
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update

....

sh: phpize: command not found
ERROR: `phpize' failed

色々調べたら、「channel://pecl.php.net/ssh2-0.12 を使ってインストールしろ」とか「phpizeを使えるようにphp-develをインストールしろ」とかあったので試す。

# yum install php-devel
# pecl install channel://pecl.php.net/ssh2-0.12

これで無事インストールできたので、php.iniに以下の記述を追加。

extension=ssh2.so

Apacheを再起動して、wordpressの管理画面を見に行くと...

無事ssh接続が追加されました。

追記

wp-configに接続情報等を設定しておくことができるみたいです。
その他の設定も実は色々あったり。知らなかった。。。
自動更新とかで失敗する場合にも設定するとうまくいったりするらしい。

/* wordpressへのルート・ディレクトリ設定 */
define( 'FTP_BASE', '/path/to/wordpress/' );
define( 'FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/' );
define( 'FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/' );
/* 公開鍵へのルート設定 */
define( 'FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub' );
/* 秘密鍵へのルート設定 */
define( 'FTP_PRIKEY', '/home/username/.ssh/id_rsa' );

さらに追記

実は上記の時点で接続は出来ていたけど、自動更新がうまく行かなかった。
上の記述をしているにも関わらず、「ルートディレクトリが見つかりません。」みたいなエラーがでてハマってました。
原因はwordpress配下のユーザーがapacheでなかったから。
管理画面から画像uploadとか自動更新をする場合は、apacheにしないと出来ないので注意。
これ、wp界の常識なのかもしれないですが、すっかり抜けてました。