2012年1月1日日曜日

WordpressをSSHで更新できるようにした

Webプログラムテスト場所」で使っている、Wordpressのプラグイン インストールとか、
さすがに手動でやっているのがバカバカしくなってきたので、SSHでできるようにならないかな?と思って
検索してみたら、方法があるんですね!
でも、やってみたらCentOS 5.x でかなり面倒だったのでメモ

入れたもの

  • php53系パッケージ
  • php53u-pear (ius Community)
  • re2c
  • libssh2
  • libssh2-devel
  • gcc
  • openssl-devel
そもそも、CentOS 5.x 系では通常phpのバージョンが5.1.xなのでWordpress最新版 3.3ではPHP5.2以上じゃないと怒られてしまいます。

PHP5.3系であるphp53系パッケージを入れました。
php53
php53-common
php53-cli
php53-devel
php53-pdo
php53-mysql

 次に、「wp-config.php の編集」にある
pecl install ssh2
実行のために、「php-pear」を入れようとしましたが、CentOSのリポジトリでは5.1系用しか無いようで、入れても動きませんでした。
なので、ius Communityからphp53u-pearをダウンロードして、単体でインストールしました。
rpm -ivh --force php53u-pear-1.9.4-3.ius.el5.noarch.rpm 
再度実行!
 Failed to download pecl/ssh2 within preferred state "stable", latest release is version 0.11.3, stability "beta", use "channel://pecl.php.net/ssh2-0.11.3" to install
と出て、実行されないのでこれで再実行
pecl install ssh2 channel://pecl.php.net/ssh2-0.11.3
今度は、違う所でエラー
checking for ssh2 files in default path... not found
rpmforgeのリポジトリから以下をインストール
yum install --enablerepo=rpmforge libssh2 libssh2-devel
libssh2-develが必要だったようです。
インストールが完了した所で、php.iniに記載するんですが、なんとなく流儀に従って「/etc/php.d/」 以下に「ssh2.ini」を作って以下を記載
extension=ssh2.so
これで、WordpressからSSHを使うメニューが現れるようになります。

次はSSHで接続するための設定
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxxx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):     #「空っぽでEnter」
Enter same passphrase again:     #「空っぽでEnter」
これで出来たファイルをapacheユーザーが見れるところに配置して、「authorized_keys」を作成
cp id_rsa authorized_keys
WordpressのWeb設定画面からSSHの設定
ホスト名:localhost:[ポート番号(22以外の場合)]
FTP/SSH ユーザー名:apache
FTP/SSH パスワード:#「空」のまま
認証キー:公開鍵 「id_rsa.pub」のフルパス
秘密鍵 「id_rsa」のフルパス
接続形式:SSH2
これでいけるかと思ったら、apacheってShellがデフォルトでないから、使えるようにしないと「wp-content」が見つからないってエラーが出る。

なので、「/etc/passwd」を編集してShellを与える(一時的に)
 apache:x:48:48:Apache:/var/www:/sbin/nologin

 apache:x:48:48:Apache:/var/www:/bin/bash
このままじゃ、多分ヤバイので更新とか終わったら元に戻してます。
この辺りいい方法が見当たりませんでした。

また、手動でやるより格段に楽になったのでこのくらいはよしとしてます。

Zenback