lighttpd + FastCGI + PHP4
2005-09-24
VPS7 に標準で入っている Apache1.3 + PHP (モジュール版) の代わりに、Apache より高速という噂の lighttpd を入れることにする。 将来的に、 Ruby on Rails も簡単に使えるしね。
lighttpd 版の PHP は CGI で動かすみたい。 でも、さくらサーバのようにただ CGI で動かすだけだと、 CGI の起動時にプロセスを生成するオーバーヘッドが発生する。 代わりに、 FastCGI という仕組みを使うことで、プロセス生成のオーバヘッドを減らし、軽快に動作することができる。
lighttpd
ports を使って、ソースからコンパイルする。
$ cd /usr/ports/www/lighttpd
$ sudo make config
$ sudo make
$ sudo make install
make config で必要なモジュールを尋ねられる。 MySQL や SSL を使う場合はチェックを入れるといいんだろう。 FastCGI は設定の有無に関わらず、インストールされるみたい。
lighttpd の設定ファイルは、 /usr/local/etc/lighttpd.conf.sample にインストールされる。 これをコピーして使うことになる。
$ cd /usr/local/etc
$ sudo cp lighttpd.conf.sample lighttpd.conf
$ sudo vi lighttpd.conf
以下、設定ファイルを抜粋。
server.modules = (
"mod_auth",
"mod_fastcgi",
"mod_simple_vhost",
"mod_accesslog" )
server.document-root = "/home/machu/www/"
accesslog.filename = "/var/log/lighttpd.access.log"
server.errorlog = "/var/log/lighttpd.error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.indexfiles = ( "index.php", "index.html",
"index.htm", "default.htm" )
simple-vhost.server-root = "/home/www"
server.username = "www"
server.groupname = "www"
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php"
)
)
)
auth.backend = "plain"
auth.backend.plain.userfile = "/usr/local/etc/lighttpd.user"
auth.require = ( "/ura" =>
(
"method" => "basic",
"realm" => "secret",
"require" => "valid-user"
)
)
PHP
次はCGI版PHPのインストール。 すでにモジュール版のPHP(とApache1.3)がインストールされていたので、まずはそれを削除する。 モジュール版とCGI版は共存できないようだ。
pkg_delete -r php4-4.4.0
次に、ports からPHPをコンパイルする。
cd /usr/ports/www/php4-cgi
make clean
make config
make
make install
これで、PHPのインストールも完了。