php5.2.17及其php-fpm编译过程

[php] 2024-04-27 圈点654

摘要:php5.2.x在Linux(如centos)中的编译总是出现问题,尤其是在apache环境下编译php问题接连不断;因此转换思路,安装php5.2.17的php-fpm,用nginx调用。

php5.2.x在Linux(如centos)中的编译总是出现问题,尤其是在apache环境下编译php问题接连不断;因此转换思路,安装php5.2.17的php-fpm,用nginx调用。

php5.2.17在编译时出现的问题:

php-5.2.17 configure成功了,但是在make时报错:

node.c: In function dom_canonicalization

ext/dom/node.c:1953: error: dereferencing pointer to incomplete type

Cannot load libphp5.so into server: undefined symbol: xxxxxx

问题:开启apache2的时候,提示Cannot load libphp5.so into server: undefined symbol:xxx

apachectl restart,出现/usr/local/apache2/modules/libphp5.so: undefined symbol: unixd_config ,

 

httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

此类问题非常之多...

 

因此转换思路,安装php5.2.17的php-fpm,用nginx调用。

nginx正常安装即可;

php5.2.17和php-fpm安装步骤:

0,安装各种依赖忽视

1,下载php和php-fpm后执行

tar zxvf php-5.2.17.tar.gz

gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p11

2,编译:

d php-5.2.17

./configure --prefix=/usr/local/php --with-config-file-with=/usr/local/php/etc --enable-fastcgi --with-mysql --enable-mbstring --enable-fpm

此时会报错;

再下载另外一个match,操作

3,下载pathch文件并修改文件名为:php5_again.patch,放过php5.2.17的源码的根目录;

4,进入源码根目录,执行patch -p0 -b < ./php5_again.patch

5,再次./configure....

6,make 

7make install 

最好别make test,看着心里不稳

 

php5.2.17php-fpm  

感谢反馈,已提交成功,审核后即会显示