编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,别说,php还真有这样的功能.
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,下面以安装openssl为例,找到源码包的ext文件夹,进入后找到openssl目录,执行如下命令:
- cp config0.m4 config.m4
- /usr/local/php5/bin/phpize
- ./configure –with-php-config=/usr/local/php5/bin/php-config
- make
- make install
最后就是编辑/usr/local/php5/lib/php.ini(注意:这里要核实下具体有效的php.ini放置在哪里?),代码如下:
extension_dir=”/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/”
extension = “openssl.so”
其他的编辑也是依此类推,安装外置模块后,检查的话可以直接通过phpinfo或者命令行检查,命令行检查如下:
/usr/local/php5/bin/php -m
找找看,openssl是否正常挂载了,若有问题的话,查看相应的日志文件,按实际问题做相应的处理.
另外再看一个soap安装为例子,代码如下:
- cd /home/zhangy/php-5.2.6/ext/soap #ext目录下面放的是php的模块库
- /usr/local/php/bin/phpize
- #确定php-config文件在不在,调用php-config,安装后.so文件会自动放到extension_dir里面
- ./configure
- make && make install
安装完后会有这样的东西,代码如下:
- See any operating system documentation about shared libraries for
- more information, such as the ld(1) and ld.so(8) manual pages.
-
- Build complete.
- Don't forget to run 'make test'.
- Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
查看.so文件,以及修改php.ini,代码如下:
- cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
- ls -al |grep soap
- -rwxr-xr-x 1 root root 763334 Feb 9 10:51 soap.so
- vi /usr/local/php/lib/php.ini
|