Ubuntu (Debian) 架設 apache mpm worker mod_fcgid 筆記

最近想架設 RedmineUbuntu 伺服器上面,架設之前要先搞定 apache 搭配 mpm worker 及 mod_fcgi module,安裝步驟其實不難,就搭配懶人指令 apt 就可以了。

安裝 apache mpm worker

由於怕安裝過程會叫你把 apache2-mpm-worker 移除,改裝 apache2-mpm-prefork,所以安裝順序上面有些變化,請參考底下:
# 先安裝
$ apt-get install apache2.2-bin apache2.2-common apache2-mpm-worker libapache2-mod-fcgid php5-cli php5-cgi php5-common
#後安裝
$ apt-get install apache2 php5 php5-gd php5-curl
至於 PHP 5 套件就看你需要什麼就裝什麼吧,搜尋一下 php5-* 看看,apache 裝好預設看不到 PHP 網頁,也就是認不得 php type,請在 apache config 檔案加入底下 修改 /etc/apache2/apache2.conf
# php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
啟動 fcgid 之前,要先設定 /etc/apache2/mods-available/fcgid.conf,可以參考官網設定方式,在自己微調

  AddHandler    fcgid-script .php .fcgi
  FcgidIPCDir /var/lib/apache2/fcgid/sock
  IdleTimeout 3600
  ProcessLifeTime 7200
  MaxProcessCount 1000
  DefaultMinClassProcessCount 3
  DefaultMaxClassProcessCount 100
  IPCConnectTimeout 8
  IPCCommTimeout 360
  BusyTimeout 300
  FcgidWrapper /usr/bin/php5-cgi .php
修改 php.ini (/etc/php5/cgi/php.ini 跟 etc/php5/cli/php.ini)
cgi.fix_pathinfo=1
接下來 enable apache 的 module,利用 a2enmod 指令
a2enmod rewrite
a2enmod include
a2enmod suexec
a2enmod fcgid
# 重新啟動 apache
service apache2 restart

設定 Apache Virtual Host

我們可以參考 /etc/apache2/sites-available/default 預設範例來建立其他 Virtual Host,由於跑 mod_fcgid,所以在 Options 部份請務必加上 ExecCGI

    ServerName blog.wu-boy.com
    ServerAdmin nobody@blog.wu-boy.com

    DocumentRoot /XXXXXX
    DirectoryIndex index.php

    
        Options FollowSymLinks
        AllowOverride None
    
    
        Options FollowSymLinks ExecCGI
        # Remove ExecCGI if you do not need php
        AllowOverride All
        Order allow,deny
        allow from all
    
    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/other_vhosts_access.log combined
把此設定檔儲存到 /etc/apache2/sites-available/Blog,接下來用 a2ensite 指令來 enable
# Usage: a2ensite [Virtual Host]
a2ensite Blog
會發現在 /etc/apache2/sites-enabled/ 資料夾裡面多出 Blog 這 Virtual Host,重新啟動 apache2 就完成了。 參考網站: [Ububtu note.] 關於 Ubuntu, apache, php5, mod_fcgid 與 VirtualBox 筆記 HOWTO: Using php5 with apache2-mpm-worker Hosting multiple websites with Apache2(利用 a2ensite 新增 Virtual Host)