选择apache2的动态添加模块,在redhat linux 9上编译,安装PHP非CGI版本
我所用到的软件包:
碰到过的问题:
1. mysql在本地已经安装
对策: rpm -e --nodeps mysql-VERSION-NUMBER。其余软件类似
2. zlib版本过低
对策: 下载新版本安装,比如zlib-1.2.3.tar.tar
3. mysql的版本不能是带静态库的安装版mysql-standard-5.0.22-linux-i686.tar.gz,否则导致php不能configure
对策: 下载源代码编译,比如mysql-5.0.22.tar.gz
4. 不要在mount上来的磁盘编译,特别是NTFS格式的,否则会出莫名其妙的错误
5. mysql的configure命令,摘自mysql-5.0.22.tar.gz中的INSTALL文件
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors /
-fno-exceptions -fno-rtti" ./configure /
--prefix=/usr/local/mysql --enable-assembler /
--with-mysqld-ldflags=-all-static
6. php的configure命令
./configure /
--disable-cgi /
--with-apxs2=/usr/local/apache2/bin/apxs /
--with-mysql=/usr/local/mysql /
--with-xml /
--with-dom /
--with-zlib /
--with-libxml /
--enable-inline-optimization /
--enable-safe-mode /
--enable-track-vars /
--enable-trans-sid /
--enable-xml /
--enable-libxml /
--enable-so
7. 由于每台机器上的lib库不同,在apache2中加载libphp5.so的时候可能会有一些symbol undefined
对策: 更改configure中--enable和--with的选项。如有必要加上--disable-all。注意,--disable-all不安装php5-extension这个和perl的兼容库,将会使许多函数无法运行
其余注意点可以在各安装包的INSTALL文件和网上的文章中找到,例如