php无法加载dll插件,php无法加载动态库怎么办

php无法加载动态库的解决办法:1、将PHP的集成包里的“libmySQL.dll”复制到system32目录下;2、将PHP的解压目录添加到PATH里;3、在Apache的配置文件用loadfile去加载一些动态链接库。

f5ded398158d7ca1ef326cecbc0ff286.png

php加载动态库失败

PHP的集成包里带了很多的动态链接库,但当我们按照说明配置好后,运行phpinfo()却发现好多个模板并没有加载。仅管我们在php.ini中已经将对应链接库前面的注释(;)去掉了。

本人在配置WAMP时发现一个很有趣的事情:有时mysql模块能加载,有时又不能加载。后经仔细研究发现,能加载时mysql用的都是安装文件,不能加载时mysql用的大多是压缩包。两都会有什么区别呢?

区别就在于安装包在安装里可以选择将mysql的安装目录(./MySQL*.*/bin)添加到PATH里。

这样又会有什么效果呢?原来在这个目录下有个和PHP的集成包里同名的文件--libmySQL.dll。

上网搜索发现还有其它的解决办法:

将PHP的集成包里的libmySQL.dll复制到system32目录下--该目录通常肯定是在PATH里的;

还有一个不需要改PATH的办法,就是在Apache的配置文件里加一句:[loadfile X:/*/libmySQL.dll]要用绝对路径。

问题的根源似乎已经找到了,其它的模块是不是也可以这样解决呢。

答案是肯定的,可以。

最省事的方法是将PHP的解压目录(通常包含libmysql.dll、php.exe等)添加到PATH里;

然后重启系统--只重启apache是不行的,你在phpinfo()里查看的“Apache Environment”的PATH参数时就会发现,“PATH ”这一项根本没有变,如能不重启系统就更改应用,本人目前还不知道,谁知道,请告诉我。

还有个不用改PATH也就不用重启系统系统的办法就是在Apache的配置文件用loadfile去加载一些动态链接库。

本人经测试将我已知的模块及其要加载的动态链接库列出来:PHP模块      运行时要加载的动态链接库

------------------------------------------------------------

php_fdf.dll ->fdftk.dll

php_interbase.dll ->gds32.dll

php_pdo_firebird.dll ->gds32.dll

php_curl.dll ->ssleay32.dll

php_ldap.dll ->ssleay32.dll

php_openssl.dll ->ssleay32.dll

php_mcrypt.dll ->libmcrypt.dll

php_mhash.dll ->libmhash.dll

php_msql.dll ->msql.dll

php_mssql.dll ->ntwdblib.dll

php_pdo_mssql.dll ->ntwdblib.dll

php_mysql.dll ->libmysql.dll

php_mysqli.dll ->libmysql.dll

php_pdo_mysql.dll ->libmysql.dll

所要加载的动态链接库全部位于PHP的集成的包解压目录(通常包含libmysql.dll、php.exe等)。该目录还有三个文件:fribidi.dll、libeay32.dll和libswish-e.dll,本人目前尚不知道它们有何用处。至于其中每个模块的名称和作用,本人就不班门弄斧了。

推荐:《PHP教程》

注:该方法适用于php5.1.X、php5.2.X系列,php.4X未经测试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值