标签为 "extension" 的存档

libcurl.so.3: cannot open shared object file

php配置扩展时遇到了个这个问题:PHP Warning: PHP Startup: Unable to load dynamic library ‘/home/s/apps/php-5.2.6/extensions/curl.so’ – libcurl.so.3: cannot open shared object file: No such file or directory in Unknown on line 0

google了下,都说解决办法是:

ln -s /usr/lib/libcurl.so.4 /usr/lib/libcurl.so.3

我看了下自己的lib目录,发现也没有 libcurl.so.4,然后又查没有libcurl.so.4怎么样,答案是:

ln -s /usr/lib/libcurl.so.3 /usr/lib/libcurl.so.4

啊哈哈哈哈哈哈,乐死我了。

我个人觉得是curl.so不靠谱,从别的地方搞了一个拷贝过来,ok了。

php configure 错误:configure: error: xml2-config not found. Please check your libxml2 installation.

开发php扩展时,php buildconf 时报错:

You should not run buildconf in a release package.
use buildconf --force to override this check.

这个很简单,一看就明白了,只要使用 ./buildconf –force 即可通过。

php configure时错误:
Configuring extensions
checking whether to enable LIBXML support... yes
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.

这个是由于缺少libxml2包的原因,使用sudo yum install libxml2 执行后,安装了libxml2包,结果还是提示这个错误,执行rpm -qa|grep libxml2,发现是有libxml2的包的,后来发现,其实需要的是libxml2-devel 包,所以,正确的解决办法是,安装libxml2-devel包,执行 sudo yum install libxml2-devel 即可。

再重新configure, 出现下图即是正常了.

configure: error: xml2-config not found. Please check your libxml2 installation.

configure: error: xml2-config not found. Please check your libxml2 installation.

cygwin 添加php扩展模块

以添加openssl模块为例子

进入源码目录

cd php-5.2.13/ext/openssl
#运行phpize生成configure

/usr/local/php/bin/phpize

#编译,指定php-config,注意这里的php-config,不是php.ini

./configure –with-php-config=/usr/local/php/bin/php-config
#上面可以添加–enable-openssl,也可以不用添加

#编译安装

make;make install

#生成一个目录来存放扩展的模块

mkdir /usr/local/php/etc/php/ext

#复制openssl.so到模块目录

cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so /usr/local/php/etc/ext/

#编辑php.ini文件,指定PHP到哪个目录读模块

vi /usr/local/php/etc/php.ini

extension_dir=”/usr/local/php/etc/ext”
#Load模块
extension=openssl.so
#保存退出

再用/usr/local/php/bin/php -m|grep openssl查看是否有openssl.so

备注:
如果在运行phpize时报错:Cannot find autoconf. Please check your autoconf installation:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

是由于未安装m4和autoconf造成的,请打开cygwin安装程序,选择m4 和 autoconf模块进行安装:
另:在./configure时报错:Cannot find OpenSSL’s ,是由于cygwin未安装openssl包,需要同样打开cygwin安装程序,选择openssl-devel进行安装即可。