1. 程式人生 > >PHP5.3+Apache2+Fastcgi+php-fpm配置

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