返回首页
当前位置: 主页 > 网络编程 > Php实例教程 >

PHP在Windows下启动时提示Unable to load dynamic library php_c

时间:2012-03-04 15:16来源:知行网www.zhixing123.cn 编辑:麦田守望者

这个问题容易手配PHP的时候出现, 在php.ini中正确开启了curl扩展后, 在PHPINFO中却看不到相关的信息, 而Apache的日志会显示以下错误:

PHP Warning: PHP Startup: Unable to load dynamic library 'D:\\DEV\\ENV\\php-5.3.10\\ext\\php_curl.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0

什么原因造成的这个问题呢?

答案是curl扩展对库文件有依赖, 就像在Linux下面编译PHP的时候也需要安装依赖的库一样.

在PHP官网手册的Windows下安装扩展库的页面上已经详细的标注了PHP所有的扩展文件依赖那些库. 其中特别提示了以下内容
 

 

有些扩展库需要额外的 DLL 才能工作。其中一部分包括在发行包里,PHP 4 中在 C:\php\dlls\目录下,PHP 5 中在主目录下,但还有一些,例如 Oracle( php_oci8.dll)所需要的 DLL 没有绑定在发行包里。如果安装 PHP 4,将绑定的 DLL 从 C:\php\dlls拷贝到主目录 C:\php中。别忘了将 C:\php放到系统路径 PATH中去

在页面的介绍中,我们可以查询到curl扩展依赖libeay32.dll, ssleay32.dll这两个库文件, 这两个文件已经附属在PHP的Windows程序包中,我们无需去单独下载. 搞清楚了这些, 解决方法也很简单了: 让Windows或者Apache能顺利加载到这个2个dll文件即可, 下面我列出几个解决方案

方案1 将libeay32.dll, ssleay32.dll拷贝到c:\windows\system32文件夹中

方案2 将你PHP程序的目录加入到系统的PATH变量中即可

方案3 如果你使用的是Apache服务器且使用模块的方式来运行PHP的话, 可以在httpd.conf中加载PHP模块的配置语句之前加上下面两句话让Apache来加载这两个dll, 例子如下:

LoadFile "D:\DEV\ENV\php-5.3.10\ssleay32.dll"
LoadFile "D:\DEV\ENV\php-5.3.10\libeay32.dll"

LoadModule php5_module "D:\DEV\ENV\php-5.3.10\php5apache2_2.dll"

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):php php实例教程 php源代码 php基础教程 php技巧
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片