FastCGI模式PHP 5.2.5升级小记

服务器上的PHP许久没有升级了,昨天得空,赶往PHP的官方网站,发现其最新版本已经达到了5.2.5,一时心痒难耐,wget源码回来,开始了编译过程。

编译的过程很顺利,还给PHP打上了增强安全性的Suhosin补丁,但在make install并重启Apache后,运行PHP程序,却总提示500或503错误。没办法,仔细检查每个步骤,重新再来一遍,同样的问题再次出现。真是奇了怪了,此次的编译跟服务器之前用的版本并无任何不同,难道PHP 5.2.5有了大变化不成?

遇到这类问题,自然是从log去检查。tail Apache的错误日志,发现问题的症结是由于PHP无法加载,说PHP不是FastCGI模式(由于之前模块模式的PHP运行不稳定,我就采取了以 FastCGI方式运行PHP)。怎么会出现这种情况?我明明在编译时加了--enable-fastcgi,并没有使用--with-apxs2啊!无 奈,在命令行下检验一下php的版本情况吧。输入php -v,果然,php当前的SAPI显示的是CGI,并不是CGI/FastCGI,乖乖,咋回事呢?突然想到列出PHP的bin目录看看,发现多了一个 php-cgi,文件大小与php差不了多少。运行php-cgi -v,SAPI竟然就是CGI/FastCGI,原来,5.2.5的PHP编译成功后有两个php执行文件啊!这下子就好办了,将原先的php移走,mv php-cgi php,再次启动Apache,俺的PHP终于回来了!