编译安装 PHP 5.2.13 

下载5.2.x 分支最新版本5.2.13,解压

我的configure:

$ ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/sbin/apxs --enable-mod-charset --enable-fastcgi --with-config-file-path=/etc --enable-safe-mode --with-openssl --with-kerberos --with-zlib --with-bz2 --enable-calendar --with-curl --enable-exif --enable-ftp --with-gd --with-ttf --enable-mbstring --with-mcrypt --with-mhash --with-mysql=/usr/local/mysql --enable-embedded-mysqli --enable-sockets --enable-zip

检查依赖没有问题.
缺依赖的话就一个个安装xxx-devel.

进行 make,在编译到zend解释器时就报错了,错误很强大...

virtual memory exhausted: Cannot allocate memory
make: *** [Zend/zend_execute.lo] Error 1

虚拟内存不足,囧rz.. 没有办法,把mysqld,sendmail,httpd等其他进程先全部kill掉,腾出点内存来

再次make,还好,通过了.

不过,好景不长。就在编译行将结束时,再次中断报错...

/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1

是缺少libtool依赖,解决方案:
yum install libtool-ltdl-devel.

make clean && make .这次终于通过了,呵呵

复制源码包下php.ini-dist 到 /etc 下。稍加编辑即可.
libphp5.so 已自动生成到apache 的modules 目录下.
只需启动apache就可以了.

不过,生成的这个模块,好像不支持apache 2.3.5 alpha,不能被load进来.

报错如下:
httpd: Syntax error on line 64 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: undefined symbol: unixd_config

不知道是bug还是什么?

同样的源码,在apache 2.2.15 下生成的libphp5.so,加载成功.

待解...

评论