lighttpdって、日本語で呼ぶとき困りませんか?ライトエイチティーティーピーディーなのか、ライトティーピーディーなのか?正しくはlightTPDで後者のようです。
lighttpd – Wikipedia
lighttpdとは、軽量(light)で高速なWebサーバ(http)として動くデーモン(d)で、Apacheよりも高速だと言われており注目を集めていますが、phpとの連携をAmazon EC2で試してみました。
いつものようにFedora8のパブリックAMIを使用してインスタンスを立ち上げ、PuTTYにてログインします。後の手順でlighttpd-fastcgiパッケージをインストールするのですが、yumコマンドでlighttpd-fastcgiが見つからなかったため、まずyumのリポジトリを最新状態にしました。
lighttpdをインストールします。
サーバ起動時にlighttpdが自動的に立ち上がるように設定します。
[root@domU-12-31-39-00-A1-D6 init.d]# chkconfig –list lighttpd
lighttpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
lighttpdを起動します。
Starting lighttpd: [ OK ]
ブラウザからlighttpdが正常に起動されたか確認します。http://hostname/でlighttpdのデフォルトページが表示されるか確認します。
これでlighttpdの初期設定は完了です。
ここからはphpとlighttpdの連携のためのインストールと設定の説明になります。phpをlighttpd上で稼動させるためには、FastCGIが必要です。
FastCGI – Wikipedia
lighttpd-fastcgiパッケージをインストールします。
phpをインストールします。
php.iniを編集します。/etc/php.iniの任意の場所に以下の一行を追記します。
cgi.fix_pathinfo = 1
lighttpd.confを編集します。/etc/lighttpd/lighttpd.confを編集しmod_fastcgiを有効にするためにコメントアウトをはずします。
server.modules = (
# ”mod_rewrite”,
# ”mod_redirect”,
# ”mod_alias”,
”mod_access”,
# ”mod_cml”,
# ”mod_trigger_b4_dl”,
# ”mod_auth”,
# ”mod_status”,
# ”mod_setenv”,
”mod_fastcgi”, < - ここ!
# ”mod_proxy”,
# ”mod_simple_vhost”,
# ”mod_evhost”,
# ”mod_userdir”,
# ”mod_cgi”,
# ”mod_compress”,
# ”mod_ssi”,
# ”mod_usertrack”,
# ”mod_expire”,
# ”mod_secdownload”,
# ”mod_rrdtool”,
”mod_accesslog” )
.phpファイルをfastcgiで処理できるように、以下の部分のコメントアウトをはずします。
fastcgi.server = ( “.php” =>
( “localhost” =>
(
”socket” => “/var/run/lighttpd/php-fastcgi.socket”,
”bin-path” => “/usr/bin/php-cgi”
)
)
)
テストphpページを作成します。
<?php phpinfo(); ?>
phpinfo.phpとして保存。lighttpdのコンテキストルートはデフォルトで/var/www/lighttpdなので、ここに移動。
lighttpdを再起動します。
phpinfo.phpにアクセスします。
ちゃんと表示されました。
こんな感じで試しに何かしてみようというときにも、Amazon EC2だとサクッと出来ちゃいますね。物理的にサーバ用意して、ネットワークつなげて・・・なんてことも要りません。使いたいときに使いたい時間だけ、立ち上げる。実運用に入っても、本番サーバ、テストサーバなんて筐体をそれぞれ用意しておく必要もないし。それぞれイメージを用意しておけばいいのですから。なんて便利な時代になったことか。カスタムAMIとして保存したければ、いつものようにS3にアップロードして完了です!
※ カスタムAMIの保存はこちらを参考に。
flashcast:フリーで働くITエンジニア集団のブログ: Amazon EC2 AMI起動