WordPress の自動更新を SFTP で行う (on Ubuntu Server 10.04)

Ubuntu Server 10.04 で,Apache2 と PHP5 と MySQL5 がインストールされていて WordPress が使えるようになっている環境を例にして説明します.試した動作環境はさくら VPS です.

WordPress にはアップデートを自動でやってくれる機能があるのですが,これがデフォルトでは FTP を使おうとします.これを SFTP を使用するように変更するための設定メモです.*1

(余談) 書いてる私自身は WordPress では無くはてなダイアリー派なのですがw,友人の WordPress を管理しているのでこういう記事も書くわけですw 元となる記事はコチラです.丸コピですが書いてるの同一人物ですのでw

基本的にコチラ WordPress SFTP « Candied Brains! を参考に.

まず以下を実行.

% sudo aptitude install libssh2-1-dev php-pear

その後指示通りに以下を実行します.

% sudo pecl install -f ssh2

すると,phpize が無いよーと言ってエラーが出ます.

WARNING: failed to download pecl.php.net/ssh2 within preferred state "stable", will instead download version 0.11.2, stability "beta"
downloading ssh2-0.11.2.tgz ...
Starting to download ssh2-0.11.2.tgz (22,740 bytes)
........done: 22,740 bytes
5 source files, building
running: phpize
sh: phpize: not found
ERROR: `phpize' failed

で "ubuntu phpize" でググったら UbuntuでPDOを使うときには、php5-devパッケージが必要。 - SumiTomohikoの日記

しかし、上の通り、phpizeがないというエラーになります。さて、phpizeというファイルはどのパッケージに含まれるのでしょうか? 不勉強なもので私はその方法を知りません。なのでGoogleに問い合わせたところ、php5-devをインストールする、という情報を得ることができました。

とのことなので,以下を実行.

% sudo aptitude install php5-dev

そしてその後もう一度 pecl コマンドを実行します.

% sudo pecl install -f ssh2

今度は上手く進みます.途中で

libssh2 prefix? [autodetect] :

と聞かれますがそのまま Enter (autodetect) で OK.後は指示通り

/etc/php5/apache2/php.ini

を編集します.“Dynamic Extensions” セクションを探してそこの最後にでも

extension=ssh2.so

を追加して,後は Apache 再起動.

% sudo service apache2 restart

これで WordPress の自動更新機能のページに "FTP", "FTP (SSL)" という選択肢の他に "SSH2" が追加されているはずなので,それを選択してパスワード,もしくは公開鍵と秘密鍵 (設定しているならば) を入力すれば OK.

*1:Ubuntu Server 10.04 とこれ以降 (11.04 までを確認) では FTP はデフォルトで使えないようになっています (もしかしたらこれより前のものでもそうなのかも知れませんが).というのも FTP は危険だからでしょう.通信を暗号化をしないので.詳しくは FTPの危険性とSFTP/FTPSのススメ などを参照下さい.