Apache2 + fcgid + phpの設定

Apache2 + FastCGIの構成です。簡単な設定メモですが、新規設定される方は参考にしていただければと思います。

インストール

aptitude install apahce2 libapache2-mod-fcgid php5-cli php5-cgi

「php5-cli」を入れる事。「php5」を選ぶとaptitudeがmod_phpを候補に出してくるので。

設定

vi /etc/apache2/apache2.conf
Timeout 60
KeepAlive Off

    MaxClients          100

KeepAliveをOffに。MaxClientsは少なめに。

vi /etc/apache2/mods-enabled/alias.conf
#Alias /icons/ "/usr/share/apache2/icons/"

#
#    Options Indexes MultiViews
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#

iconsのエイリアスは使わないのでコメントアウト

vi /etc/apache2/mods-enabled/fcgid.conf

  AddHandler    fcgid-script .fcgi .php
  FcgidConnectTimeout 20
  FcgidMaxProcesses  20
  FcgidMaxProcessesPerClass 10
  FcgidFixPathInfo 1
  FcgidOutputBufferSize 1048576
  FcgidProcessLifeTime 1800
  FcgidMinProcessesPerClass 2

abでベンチ取りながらざっくりチューニング。

vi /etc/apache2/mods-enabled/mime.conf
AddHandler cgi-script .cgi
#AddHandler type-map var
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

cgiが使えるように。使わない機能をコメントアウト

vi/etc/apache2/mods-enabled/negotiation.conf
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW

「ja」を一番前に移動。

vi /etc/apache2/sites-enabled/000-default

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        SetEnvIf Request_URI "\.(gif)|(jpeg)|(jpg)|(png)|(ico)$" no_log
        LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined env=!no_log
        Redirect 404 /favicon.ico
        ErrorDocument 404 "404 Not found"

主にログの設定。accessログは画像を保存しない。errorログはfavicon見つからなくてもエラーを保存しない。

vi /etc/apache2/sites-available/example.com

001-example.com -> ../sites-available/example.com


        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias www.example.com
        
        DocumentRoot /var/www/example.com
        
                Options All MultiViews
                AllowOverride All
                AddHandler fcgid-script .php
                FcgidWrapper /usr/bin/php-cgi .php
                Order allow,deny
                allow from all
        

        SetEnvIf Request_URI "\.(gif)|(jpeg)|(jpg)|(png)|(ico)$" no_log
        LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/error-example.com.log
        CustomLog ${APACHE_LOG_DIR}/access-example.com.log combined env=!no_log
        Redirect 404 /favicon.ico
        ErrorDocument 404 "404 Not found"

「www」があってもなくてもアクセスできるようServerAlias設定。fcgid + phpの設定も。それからログの設定は上記同様です。

設定完了!

これでphpが動作します。簡単ですねー。