株式会社ライブキャストロゴ 株式会社ライブキャスト

lighttpdって、日本語で呼ぶとき困りませんか?ライトエイチティーティーピーディーなのか、ライトティーピーディーなのか?正しくはlightTPDで後者のようです。
lighttpd – Wikipedia

lighttpdとは、軽量(light)で高速なWebサーバ(http)として動くデーモン(d)で、Apacheよりも高速だと言われており注目を集めていますが、phpとの連携をAmazon EC2で試してみました。

いつものようにFedora8のパブリックAMIを使用してインスタンスを立ち上げ、PuTTYにてログインします。後の手順でlighttpd-fastcgiパッケージをインストールするのですが、yumコマンドでlighttpd-fastcgiが見つからなかったため、まずyumのリポジトリを最新状態にしました。

[root@domU-12-31-39-00-A1-D6 ~]# yum update

lighttpdをインストールします。

[root@domU-12-31-39-00-A1-D6 ~]# yum install lighttpd


サーバ起動時にlighttpdが自動的に立ち上がるように設定します。

[root@domU-12-31-39-00-A1-D6 init.d]# chkconfig lighttpd on
[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を起動します。

[root@domU-12-31-39-00-A1-D6 init.d]# /etc/init.d/lighttpd start
Starting lighttpd:                                         [  OK  ]

ブラウザからlighttpdが正常に起動されたか確認します。http://hostname/でlighttpdのデフォルトページが表示されるか確認します。

これでlighttpdの初期設定は完了です。

ここからはphpとlighttpdの連携のためのインストールと設定の説明になります。phpをlighttpd上で稼動させるためには、FastCGIが必要です。
FastCGI – Wikipedia

lighttpd-fastcgiパッケージをインストールします。

[root@domU-12-31-39-00-A1-D6 ~]# yum install lighttpd-fastcgi

phpをインストールします。

[root@domU-12-31-39-00-A1-D6 ~]# yum install 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なので、ここに移動。

[root@domU-12-31-39-00-A1-D6 ~]# mv ./phpinfo.php /var/www/lighttpd

lighttpdを再起動します。

[root@domU-12-31-39-00-A1-D6 ~]# /etc/init.d/lighttpd restart

phpinfo.phpにアクセスします。

ちゃんと表示されました。

こんな感じで試しに何かしてみようというときにも、Amazon EC2だとサクッと出来ちゃいますね。物理的にサーバ用意して、ネットワークつなげて・・・なんてことも要りません。使いたいときに使いたい時間だけ、立ち上げる。実運用に入っても、本番サーバ、テストサーバなんて筐体をそれぞれ用意しておく必要もないし。それぞれイメージを用意しておけばいいのですから。なんて便利な時代になったことか。カスタムAMIとして保存したければ、いつものようにS3にアップロードして完了です!

※ カスタムAMIの保存はこちらを参考に。
flashcast:フリーで働くITエンジニア集団のブログ: Amazon EC2 AMI起動