php无法加载动态库的解决办法:1、将php的集成包里的“libmysql.dll”复制到system32目录下;2、将php的解压目录添加到path里;3、在apache的配置文件用loadfile去加载一些动态链接库。
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.dllphp_interbase.dll ->gds32.dllphp_pdo_firebird.dll ->gds32.dllphp_curl.dll ->ssleay32.dllphp_ldap.dll ->ssleay32.dllphp_openssl.dll ->ssleay32.dllphp_mcrypt.dll ->libmcrypt.dllphp_mhash.dll ->libmhash.dllphp_msql.dll ->msql.dllphp_mssql.dll ->ntwdblib.dllphp_pdo_mssql.dll ->ntwdblib.dllphp_mysql.dll ->libmysql.dllphp_mysqli.dll ->libmysql.dllphp_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未经测试。
如何让租云服务器炒期货可以吗?租用域名空间投资域名需要多少钱阿里云服务器通用型和共享型区别大吗购买域名之后怎么做网站 建一个网站需要多少钱ssl这个显示呢-云服务器问题大润发宣布百家门店完成天猫新零售改造cad2010打开一直未响应怎么办 cad2010打开一直未响应的解决方法