WordPressのアップデート機能でftpではなくsshによる更新が可能なことを知ったのでメモ
なんでsshなのかというとftpサーバを立てたくないから。
icoro : WordPress on CentOS – SSHで自動アップデートするには
http://www.icoro.com/201001204678.html
基本的には上記記事を参考にすればOK
pecl拡張のssh2を入れる必要があるため、それに依存するパッケージの導入
(CentOSベースです
yum -y install openssl-devel php-devel
libssh2をダウンロード。執筆時点での最新版は1.2.8
wget http://www.libssh2.org/download/libssh2-1.2.8.tar.gz
tar xzf libssh2-1.2.8.tar.gz
cd libssh2-1.2.8/
./configure
make
sudo make install
peclコマンドでssh2をインストール
sudo pecl install -f ssh2
設定ファイルを書いてssh2拡張を有効化
sudo echo "extension=ssh2.so" > /etc/php.d/ssh2.ini
sudo /etc/init.d/httpd restart
httpdから参照可能な位置に、sshの鍵を入れておくためのディレクトリを作成
webで公開される場所は避ける。
CentOSベースなら /var/www 配下でいいんじゃないかな。
サーバによって状況は違うだろうからその辺りは適切に。
mkdir wp-ssh/
パスフレーズなしで鍵を作成。
ssh-keygen -b 2048 -t rsa -N '' -f wp-ssh/id_rsa
apacheから参照可能なようにパーミッション変更
chmod 0644 wp-ssh/id_rsa*
authorized_keysに登録
cat wp-ssh/id_rsa.pub >> ~/.ssh/authorized_keys
wp-configに鍵の情報を追記する
wp-config.php
http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86#FTP.2FSSH_Constants
↑の情報は若干間違っているので注意。
sshによる更新の場合のFS_METHODの指定値は”ssh”ではなく”ssh2″
// SSH Settings
define('FS_METHOD', 'ssh2');
define('FTP_PUBKEY', '/path_to/wp-ssh/id_rsa.pub');
define('FTP_PRIKEY', '/path_to/wp-ssh/id_rsa');
define('FTP_USER', 'username');
#define('FTP_PASS', 'passphrase'); // パスフレーズをつけて鍵をつくったならここに書く
define('FTP_HOST', 'example.com:22');
Pingback: [WP] WordPressをssh2 | MemLog
Pingback: wordpress をssh2で自動更新する設定のメモ | HAL
Pingback: WordPress更新をSSH2で | 定規とコンパス