写过一篇PHP5.2.9+Apache2+Fastcgi+php-fpm配置的文章,当时的PHP版本是5.2.X,现在PHP版本已经升到了PHP5.3.X,有些不适用了,现在重新写一篇:
3 | cp Makefile.AP2 Makefile |
4 | make top_dir=/path/to/apache2 |
编辑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 | wget http:// ftp .gnu.org/gnu/autoconf/autoconf-2.13. tar .gz |
2 | tar -zxvf autoconf-2.13. tar .gz |
4 | ./configure --prefix=/path/to/autoconf |
6 | export PHP_AUTOCONF=/path/to/autoconf/bin/autoconf |
7 | export PHP_AUTOHEADER=/path/to/autoconf/bin/autoheader |
3. 安装libevent
2 | tar -zxvf libevent-1.4.13-stable. tar .gz |
3 | cd libevent-1.4.13-stable/ |
4. 安装PHP-5.3.2
2 | tar -zxvf php-5.3.2. tar .gz |
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 |
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,把下面几行前的注释符号去掉:
2 | pm.min_spare_servers = 10 |
3 | pm.max_spare_servers = 20 |
6.配置Apache
4 | ln -s php-cgi /path/to/php/bin/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, |
04 | SetHandler fastcgi-script |
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的监听地址。 |
05 | SetHandler fastcgi-script |
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