06.07
由於終於受不了速度太慢,耗用太多記憶體,所以改用 FastCGI 來跑我的服務。這種做法的好處就不用多說了,網路上很多人都有講,不過我找到的這類教學文章環境大多都是 FreeBSD 上的,所以照著弄了一下,終於搞出來。以下是給 Debian Linux 的作法,做個筆記:
首先到 /etc/apt/sources.list ,在 main 後面加上 non-free 因為 libapache2-mod-fastcgi 屬於 non-free 。
deb http://debian.linux.org.tw/debian/ lenny main non-free deb-src http://debian.linux.org.tw/debian/ lenny main non-free
接著安裝 Apache2 Mpm Worker 、 FastCGI Module 以及 PHP5-CGI:
apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-cgi
安裝 Apache2 Mpm Worker 會移除 Apache2 Mpm prefork 和 PHP5 Module 。所以請注意!如果沒有把握,請先把 HTTP 檔案都隔離開來,以避免 PHP5 的 Module 被移除掉之後,你的原始碼都被下載光了。
接著啟用 Apache2 的 Module Actions 和 FastCGI
a2enmod actions fastcgi
寫個 script 來執行 FastCGI
#!/bin/bash PHPRC="/etc" export PHPRC PHP_FCGI_CHILDREN=128 export PHP_FCGI_CHILDREN exec /usr/bin/php5-cgi
把這個檔案存成 “php.fgci” 然後新建個目錄,某個目錄下 (以這個範例來說是 /var/www 下) 。接著然後改寫 Apache2 的 Config
ScriptAlias /fastcgi/ "/var/www/fastcgi/"
<Directory /var/www/fastcgi>
Options ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
寫完這邊之後,請確認是否有 /etc/apache2/mods-enabled/fastcgi.conf 這個檔案,並且內容為:
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
AddHandler php-fastcgi .php .php5 .inc
Action php-fastcgi /fastcgi/php.fcgi
FastCgiIpcDir /var/lib/apache2/fastcgi
FastCgiConfig -pass-header HTTP_AUTHORIZATION -autoUpdate -killInterval 120 -idle-timeout 60 -maxClassProcesses 1
</IfModule>
都完成之後,重跑 Apache2 /etc/init.d/apache2 restart即可。
至於更進接的設定可以參考大神兩年前寫的apache22 (worker) + mod_fastcgi + php5-fcgi這篇文章研究一下。

No Comment.
Add Your Comment