lighttpd + FastCGI + PHP4
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のインストールも完了。