解决 PHP 加载 dll 模块出错的问题

    如何解决“PHP startup: Unable to load dynamic library”的错误?
    怪啦!今天的Apache和IIS都没法正确加载php_mysql.dll。google了一下,原来发现出现这个问题的人还不少,PHP startup: Unable to load dynamic library :E;/PHP5/ext/php_mysql.dll。明明php_mysql.dll就摆在extension_dir (= "E:/PHP5/ext")下的嘛,怎么会呢?而且就在php_mysql.dll之前的extension=php_gd2.dll都没有出现这个问题,怪了!有人说copy libmysql.dll到 %windir%/system32下就可以解决问题,其实不是就这一个办法:
    PHP被我挪了个窝,%ProgramFiles%到E:/下,导致一些要依赖于其他dll才能工作的扩展无法正常加载这些dll,出现加载扩展出错,以刚才的php_mysql.dll为例,php_mysql依赖libmysql.dll,由于给PHP5挪窝了,而又没有把新的E:/PHP5夹道%PATH%中去,所以没法找到这个libmysql.dll,才会出错。所以为了能够使用这些mysql的扩展,除了要正确地配置extension_dir外,还得保证系统能够这些扩展所依赖的dll,解决的办法有两个:
    1,将这些依赖的dll拷贝到%windir%/system32下
    2,或者将PHP5的安装目录添加到%PATH%中。
    无论那个都可以很好地达到我们地目的。够简单的,但是有时候还就想不到哪儿去。
    到底哪些扩展依赖哪些dll呢?以下列表可以帮助我们回答这个问题:
    php_curl.dll CURL, Client URL library functions 要求: libeay32.dll, ssleay32.dll (bundled)
    php_domxml.dll DOM XML functions PHP <= 4.2.0 要求: libxml2.dll
    (bundled) PHP >= 4.3.0 要求: iconv.dll (bundled)
    php_fdf.dll FDF: Forms Data Format functions. 要求: fdftk.dll
    gnu_gettext.dll (bundled), PHP >= 4.2.3 要求 libintl-1.dll,
    php_iconv.dll ICONV characterset conversion 要求: iconv-1.3.dll
    php_ingres.dll Ingres II functions 要求: Ingres II libraries
    php_interbase.dll InterBase functions 要求: gds32.dll (bundled)
    php_java.dll Java functions PHP <= 4.0.6 要求: jvm.dll (bundled)
    php_ldap.dll LDAP functions PHP <= 4.2.0 要求 libsasl.dll(bundled),
    PHP >= 4.3.0 要求 libeay32.dll,ssleay32.dll (bundled)
    php_mcrypt.dll Mcrypt Encryption functions 要求: libmcrypt.dll
    php_mhash.dll Mhash functions PHP >= 4.3.0 要求: libmhash.dll (bundled)
    php_mcrypt.dll Mcrypt Encryption functions 要求: libmcrypt.dll
    php_mhash.dll Mhash functions PHP >= 4.3.0 要求: libmhash.dll (bundled)
    php_msql.dll mSQL functions 要求: msql.dll (bundled)
    php_mssql.dll MSSQL functions 要求: ntwdblib.dll (bundled)
    php_mysql.dll MySQL functions PHP >= 5.0.0, 要求 libmysql.dll (bundled)
    php_mysqli.dll MySQLi functions PHP >= 5.0.0, 要求 libmysqli.dll (bundled)
    php_oci8.dll Oracle 8 functions 要求: Oracle 8.1+ client libraries
    php_openssl.dll OpenSSL functions 要求: libeay32.dll (bundled)
    php_oracle.dll Oracle functions 要求: Oracle 7 client libraries
    php_sybase_ct.dll Sybase functions 要求: Sybase client libraries
    php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 要求: iconv.dll (bundled)
    php_xslt.dll XSLT functions PHP <= 4.2.0 要求 sablot.dll, expat.dll (bundled).
    PHP >= 4.2.1 要求 sablot.dll, expat.dll, iconv.dll (bundled).
    以上是转载网上的。
   
    以下是自己的一点经验:
    对于php5,配置文件php.ini放到 */apache2/bin/ 目录下是没有任何问题的,不需要放到操作系统的目录里。
    对于上述问题,我的处理方式是将php的目录如";D:/grams/Apache2/php511"添加到系统变量 path里。分号是为了与其他参数分隔。
    或者将php目录里的libmysql.dll拷贝到*/apache2/bin/ 目录里。
    在增加 %php%到path中后,需重启电脑, 注销是没有用的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值