服务器运行一段时间后,可能突然会需求添加某个扩展,如curl、pdo、xmlrpc等,这就需要在不重新编译Linux PHP的情况下独立添加扩展。
1.安装crul
wget http://curl.haxx.se/download/curl-7.19.6.tar.gz
tar -zxvf curl-7.19.6.tar.gz
cd curl-7.19.6
./configure --prefix=/usr/local/curl
make
make install
2.Linux PHP编译生成扩展
进入Linux PHP源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl执行phpize生成编译文件,phpize在PHP安装目录的bin目录下/usr/local/php5/bin/phpize运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF,environment variable is set correctly and then rerun this script.“,需要安装autoconf:yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
生成配置文件,并Linux PHP编译生成模块:
/usr/local/php5/bin/phpize
./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php5/bin/php-config
make
make install
这样,curl.so就被复制到PHP对应目录(如:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/)
3.Linux PHP修改配置
在Linux PHP.ini里,设置扩展目录:extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"并添加扩展模块引用:extension = curl.so
这里设置扩展目录也可以不用这样指定,PHP.INI默认的扩展目录是:/usr/local/php5/lib/php/extensions/,这里把curl.so给CP到这里,添加extension=curl.so就行了。
4.检查并重启Apache
/usr/local/php/bin/php -v执行这个命令时,Linux PHP会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查同样的。
安装其它扩展也是按这样的步骤。