はじめに
借りて4年くらいになるだろう「さくらのレンタルサーバ スタンダード」に本ぶろぐを置いているのですが,ここ半年ほどになって,「503」の出現頻度が顕著になったような気がします.
WordPressの管理系は,Ajax処理によってページ遷移がなく快適ですが,こんなときに503が出たりすると,ときどき困ります.まぁ困るというか,イラッ☆とくる程度ですが,それでも連発されるとさすがに(ry
そんなわけで,ひと月くらい前から,実験的にサーバを移しています.ついでに,Webサーバをlighttpdにして,FastCGIとして動かしてみてます.
以下,lighttpd+FastCGIでWordPressを動作させるための設定について,なんとなく覚えていることをメモしておきます.
あ,ここでのOSはCentOS5としています.
phpの準備
yumによるphpのバージョンがちょっと古めなので,php-5.2.11をソースコードからmakeしてインストールしました.
% get http://jp.php.net/get/php-5.2.11.tar.gz/from/this/mirror % tar zxvf php-5.2.11.tar.gz % cd php-5.2.11 % ./configure --enable-fastcgi \ --enable-discard-path \ --enable-force-cgi-redirect \ --enable-mbstring \ --enable-mbregex \ --with-zlib=/usr \ --with-zlib-dir=/usr \ --enable-exif \ --with-gd \ --with-mysql=/usr \ --enable-ftp % make % make test % sudo make install
% php -v PHP 5.2.11 (cli) (built: Nov 29 2009 00:45:07) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
lighttpdの準備
インストール
% sudo yum install lighttpd
yumによるlighttpdのバージョンは,現時点で1.4.22です.
設定
FastCGIの設定を行います.また,lighttpdでは.htaccessなファイルが使えないため,rewriteなルールも併せて記述しておく必要があります.
設定には次を参考にしました.(これ以外のリンクは失念してしまいました><)
各種値は適宜置き換えてください.
$HTTP["host"] =~ "(blog\.iwa-ya\.net)" {
server.document-root = "/var/www/vhosts/iwa-ya/blog/www/"
url.rewrite-once = (
"^/(wp-.+).*/?" => "$0",
"^/(sitemap.xml)" => "$0",
"^/(xmlrpc.php)" => "$0",
"^/(.+)/?$" => "/index.php/$1",
)
#url.rewrite-if-not-file = (
# "." => "/index.php",
#)
fastcgi.server = (
".php" => (
"localhost" => (
"socket" => "/var/run/lighttpd/blog_iwa-ya_net-php.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"min-procs" => 2,
"max-procs" => 5,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "1",
"PHP_FCGI_MAX_REQUESTS" => "5",
),
)
)
)
}最初,php-cgiの存在をまったく知らなかったため,fastcgi.server / .php / bin-pathの値を/usr/local/bin/phpと設定していて,うまく動作してませんでした>< /usr/local/bin/php-cgiとすればOKです.
まぁつまりは,php|php-cgi -vして,(cgi-fcgi)な表記のあるものを指定すればよい,ということですかね.
% php-cgi -v PHP 5.2.11 (cgi-fcgi) (built: Nov 29 2009 00:45:01) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies %
Newer 4.X versions and the 5.0.X and 5.1.X versions produce a binary which runs both regular and FastCGI versions
5.2.3 introduced two versions again – a php and php-cgi binary. The php-cgi binary is the one you want
PHP | FastCGI –
先に「php fastcgi」とかでググればよかったです><
たぶんおk
たぶんこれで動作するかと思います.もちろんデータベースとかの設定もしておく必要はありますが.
また,ブログの設定状況によっては,lighttpdに追加で設定を行う必要があるかもです.
例えば,パーマリンクをカスタマイズしている場合には,次のエントリにあるような設定が必要だったりします.
なお,データベースのバックアップには,WordPress Dababase Backupプラグインを使っています.メール機能が便利です.
TODO
WordPres本体やプラグインをブラウザからアップデートするためにFTPが使われるのですが,この辺がうまく動作していないようです.phpを--enable-ftpオプションをつけてmakeしなおしたけど,変化なさげです.
vsftpdの設定なのか単なるパーミッションの問題なのかはたまた...もう少し調べてみます.
おわりに
以上,WordPressをlighttpd+FastCGIで動作させるための設定を,覚えている範囲で挙げてみました.
すべて手探りな感じで行っているので,見当違いな箇所が多々ありそうですが...ツッコミいただければ幸いです><
