件名通り、「WordPressの更新」が途中でハングする件。
実はサーバのせいだと思ってたんですが、サーバの仕様のせい、の間違いでした。
でも色々やってみたら何とかなりました。
まず、遅くなったりハングして止まっちゃう原因は、
アップデートするファイルの所有者がphpで触れないからっぽいのです。
私が使ってるサーバの設定では、phpの操作するファイルはパーミッションが777に設定されてるフォルダに対して、apacheの実行権限ユーザーでしかファイルを書き出す事が出来ません。
なので、wordpressでアップデートされるべきファイルたちは777に設定されてるディレクトリ以下に存在していて、自分のアカウント(つまり、apacheの実行権限ユーザーではない)で設置したwordpressのファイルはパーミッションを666にしてあげる必要があるのです。
ってことでコマンドは荒々しくこんな感じで。
cd [インストールディレクトリ] find ./ -type d | xargs chmod 777 find ./ -type f | xargs chmod 666
次にwp-config.php に以下の行を追記します。
define('FS_METHOD','direct');
あまりこれの意味が分かってないのですが、この行を追加する事で、
FTPアカウントの要求をされなくなって、1ステップすっ飛ばす事になります。
http://wpdocs.sourceforge.jp/wp-config.php_の編集 を見ても今一理解できません。詳細説明も無いですし。
あとは、wp-adminから更新をやったって下さい。
あまりの更新速度でちょっと感動しました。
ちなみに私は面倒なのでやりませんが、セキュリティを考えてアップデート後のパーミッションを戻すのならば、
cd [インストールディレクトリ] find ./ -type d | xargs chmod 755 find ./ -type f | xargs chmod 644
とすればいいのかな。
[12/02/12 追記]
wordpressのディレクトリ以下をapacheを動かしてる権限に書き換えてやる方法が安定してる気がします。
chown -R apache:apache /path/to/wordpress/