PHP5.3+Apache2+Fastcgi+php-fpm配置
寫過一篇PHP5.2.9+Apache2+Fastcgi+php-fpm配置的文章,當時的PHP版本是5.2.X,現在PHP版本已經升到了PHP5.3.X,有些不適用了,現在重新寫一篇:
1 |
tar
-zxvf mod_fastcgi |
2 |
cd
mod_fastcgi |
3 |
cp
Makefile.AP2 Makefile |
4 |
make
top_dir=/path/to/apache2 #你的apache安裝路徑 |
5 |
make
install |
編輯httpd.conf 增加如下配置:
1 |
LoadModule fastcgi_module modules/mod_fastcgi.so |
2. 安裝autoconf2.13
必須確保已經安裝了autoconf2.13,否則在執行以後的”./buildconf –force”命令時候會報錯:
Forcing buildconf
using default Zend directory
buildconf: checking installation…
buildconf: autoconf version 2.59 (ok)
buildconf: Your version of autoconf likely contains buggy cache code.
Running cvsclean for you.
To avoid this, install autoconf-2.13.
1 |
ftp .gnu.org/gnu/autoconf/autoconf-2.13. tar .gz
|
2 |
tar
-zxvf autoconf-2.13. tar .gz
|
3 |
cd
autoconf-2.13 |
4 |
./configure --prefix=/path/to/autoconf
|
5 |
make
&& make install |
6 |
export
PHP_AUTOCONF=/path/to/autoconf/bin/autoconf |
7 |
export
PHP_AUTOHEADER=/path/to/autoconf/bin/autoheader |
3. 安裝libevent
1 |
wget
http://www.monkey.org/~provos/libevent-1.4.13-stable. tar .gz
|
2 |
tar
-zxvf libevent-1.4.13-stable. tar .gz
|
3 |
cd
libevent-1.4.13-stable/ |
4 |
./configure
|
5 |
make
&& make install |
4. 安裝PHP-5.3.2
2 |
tar
-zxvf php-5.3.2. tar .gz
|
3 |
cd
php-5.3.2 |
5 |
./buildconf --force
|
6 |
./configure --prefix=/path/to/php5.3.2/ --with-config- file -path=/path/to/php5.3.2/ -- enable -fpm
-- enable -mbstring -- enable -xml -- enable -fastcgi
|
7 |
make
&& make install |
5. 啟動
1 |
cd
/path/to/php5.3.2/etc/ |
2 |
mv
php-fpm.default.conf php-fpm.conf |
3 |
/path/to/php5.3.2/sbin/php-fpm |
編輯php-fpm.conf,把下面幾行前的註釋符號去掉:
1 |
pm.start_servers = 10 |
2 |
pm.min_spare_servers = 10 |
3 |
pm.max_spare_servers = 20 |
4 |
pm.max_requests = 100 |
6.配置Apache
1 |
cd
/var |
2 |
mkdir
fcgi-bin |
3 |
cd
fcgi-bin |
4 |
ln
-s php-cgi /path/to/php/bin/php #你的php路徑,其中要注意許可權問題。 |
如果用apache的內部的fpm(fastcgi process manager),則:
編輯httpd.conf,新增如下配置:
01 |
ScriptAlias /fcgi-bin/ "/var/fcgi-bin/" #定義目錄對映
|
02 |
FastCgiServer /var/fcgi-bin/php-cgi -processes 10 #配置fastcgi server,
|
03 |
04 |
SetHandler fastcgi-script |
05 |
Options FollowSymLinks |
06 |
Order allow,deny |
07 |
Allow from all |
08 |
09 |
AddType application/x-httpd-php .php #增加MIME型別
|
10 |
AddHandler php-fastcgi .php #.php結尾的請求都要用php-fastcgi來處理
|
11 |
Action php-fastcgi /fcgi-bin/php-cgi #設定php-fastcgi的處理器 |
如果用php-fpm來管理cgi的話,編輯httpd.conf新增如下配置:
01 |
ScriptAlias /fcgi-bin/ "/var/fcgi-bin/" #定義目錄對映
|
02 |
FastCgiExternalServer /var/fcgi-bin/php-cgi -host 127.0.0.1:9000
|
03 |
#配置fastcgi外部server,127.0.0.1:9000地址為php-fpm的監聽地址。
|
04 |
05 |
SetHandler fastcgi-script |
06 |
Options FollowSymLinks |
07 |
Order allow,deny |
08 |
Allow from all |
09 |
10 |
AddType application/x-httpd-php .php #增加MIME型別
|
11 |
AddHandler php-fastcgi .php #.php結尾的請求都要用php-fastcgi來處理
|
12 |
Action php-fastcgi /fcgi-bin/php-cgi #設定php-fastcgi的處理器 |
使用php-fpm是有很多優點的,比如可以平滑地重新載入php.ini檔案而不用重啟fastcgi程序,對於訪問量大的網站來說是很重要的。
7.重啟Apache
重啟Apache,檢視phpinfo,如果伺服器資訊是:
Apache/2.2.11 (Unix) mod_fastcgi/2.4.6之類的就說明安裝成功了。
如果出現403的錯誤,檢視下/var/fcgi-bin/是否有足夠的許可權。
ps aux|grep php可以看見N個PHP程序在跑。
參考:
http://php-fpm.org/wiki/Documentation