WordPressのアップデート機能でftpではなくsshによる更新が可能なことを知ったのでメモ
なんでsshなのかというとftpサーバを立てたくないから。
icoro : WordPress on CentOS – SSHで自動アップデートするには
http://www.icoro.com/201001204678.html
基本的には上記記事を参考にすればOK
pecl拡張のssh2を入れる必要があるため、それに依存するパッケージの導入
(CentOSベースです
1 |
yum -y install openssl-devel php-devel |
libssh2をダウンロード。執筆時点での最新版は1.2.8
1 2 3 4 5 6 7 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をインストール
1 2 |
sudo pecl install -f ssh2 |
設定ファイルを書いてssh2拡張を有効化
1 2 3 |
sudo echo "extension=ssh2.so" > /etc/php.d/ssh2.ini sudo /etc/init.d/httpd restart |
httpdから参照可能な位置に、sshの鍵を入れておくためのディレクトリを作成
webで公開される場所は避ける。
CentOSベースなら /var/www 配下でいいんじゃないかな。
サーバによって状況は違うだろうからその辺りは適切に。
1 2 |
mkdir wp-ssh/ |
パスフレーズなしで鍵を作成。
1 2 |
ssh-keygen -b 2048 -t rsa -N '' -f wp-ssh/id_rsa |
apacheから参照可能なようにパーミッション変更
1 2 |
chmod 0644 wp-ssh/id_rsa* |
authorized_keysに登録
1 2 |
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″
1 2 3 4 5 6 7 8 |
// 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で | 定規とコンパス