|
因最近把lighttpd切到nginx,随之而来的便是fastcgi的问题,虽然使用spawn-fcgi可以使用,但多数的意见还是php-fpm ( http://php-fpm.anight.org/ ) 更实用些,但这就涉及了php的重新打包及冲突问题,为了简便起见,选用了以archlinux的aur上php-fpm为基础来打包的路线,至于debian上如何来安装archlinux的pacman就是另一个话题了,这里就不提了
1、下载php源码
这里选择了直接使用源里的php5,因为其久经考验,补丁众多,稳定度等都比较适合- apt-get source php5-cgi
- apt-get build-dep php5-cgi
复制代码 完了之后,因缺省装安装的是apache2-prefork-dev,而后继打包中需要apxs只在apache2-threaded-dev中,所以要- apt-get install apache2-threaded-dev
- cd /usr/bin
- ln -s apxs2 apxs
复制代码
2、下载php-fpm- wget http://php-fpm.anight.org/downloads/archive/php-5.2/php-5.2.6-fpm-0.5.9.diff.gz
复制代码
3、为后继的pacman准备php-5.2.6.tar.bz2- cd php5-5.2.6
- for i in debian/patches/*; do patch -p1 -i $i;done
- for i in debian/gentoo/*;do patch -p1 -i $i;done
- zcat patch-to-php-5.2.6-fpm-0.5.9.diff.gz | patch -p1
- rm -rf debian
- cd ..
- mv php5-5.2.6 php-5.2.6
- tar cjf php-5.2.6.tar.bz2 php-5.2.6/
复制代码 4、从archlinux的aur上下载php-fpm的pkgbuild和php.ini等(这些基本都要改的,用处不是很大)- mkdir php-fpm
- cd php-fpm
- yaourt -G php-fpm
复制代码 修改pkgbuild为:5、编译安装- cd php-fpm
- makepkg
- pacman -U php-fpm-5.2.6-12-i686.pkg.tar.gz
复制代码 没有pacman的话,看着改下安装路径后make install
6、修改相应的设置
修改下/opt/etc/{php.ini,php-fpm.ini},其中php.ini中路径添加/opt下的路径等php-fpm.ini中的用户和组改为www-data,php-cgi可以放到启动脚本里,也可启动直接:修改nginx下的设置为php-fpm中的端口或者socks- # fastcgi_pass 127.0.0.1:9000;
- fastcgi_pass unix:/tmp/fastcgi-nginx.socks;
- fastcgi_pass unix:/tmp/php-fpm.socks;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$script;
复制代码
---
至于新的稳定版的nginx(0.6.35,deb)和这个php-fpm的二进制包(gz,解开移到/opt下就能用),目前我来留着,以后就难说了,如果有需要的,我可以找个共享点发过去 |
|