CentOS 5.2 x86 64(AMD)编译安装PHP小记


在Linux编译安装PHP遇到的几个问题:

首先使用yum命令从CentOS源安装所有依赖的库,这里libiconv库需要单独下载并编译安装。

其次下载php-5.2.8.tar.bz2和php-5.2.8-fpm-0.5.10.diff.gz文件,解压缩php-5.2.8.tar.bz2并打上php-5.2.8-fpm-0.5.10.diff.gz补丁,然后执行一下配置命令:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql-dir=/usr/lib64/mysql --with-mysqli-dir=/usr/lib64/mysql/mysql_config --with-pgsql-dir=/usr/lib64/pgsql --with-iconv-dir=/usr/local/lib --with-freetype-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-libxml-dir=/usr/lib64 --with-png-dir=/usr --with-gd --with-mcrypt --with-mhash --with-curl --with-openssl --with-zlib --enable-discard-path --enable-sysvsem --enable-bcmath --enable-shmop --enable-inline-optimization --enable-mbstring --enable-sockets --enable-zip --enable-xml --enable-gd-native-ttf --enable-sockets --enable-pcntl --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --disable-rpath

配置错误:/usr/bin/ld: cannot find -lltdl
出现此错误大多是由于你的系统未安装libtool库导致,但即使你已安装了libtool库也可能会遇到。对此我们要做两件事情:1,确认系统是否安装了libtool库;2,为PHP编译作兼容性设置。
第一步很容做到:yum -y install libtool libtool-ltdl;
第二步由于PHP的configure指定的libltdl名为libltdl.so,为此我们只需添加一个名称连接:ln -s /usr/lib64/libltdl.so.3.1.4 /usr/lib64/libltdl.so

再次编译PHP:make ZEND_EXTRA_LIBS='-liconv'

错误:/usr/bin/ld: cannot find -liconv
此问题是由于64位系统导致,因为我们编译安装libiconv时一般如此配置:./configure --prefix=/usr/local,这时libiconv将被安装到/usr/local/lib目录下;但是在64位系统下PHP编译时引用的是/usr/lib64/libiconv.so.2文件,所以我们还是创建一个名称连接:ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2

最后安装PHP:make install

相关内容