如何解决PHP startup: Unable to load dynamic

网络整理 - 08-26

  怪啦!今天的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 Requires: libeay32.dll, ssleay32.dll (bundled)

  php_domxml.dll DOM XML functions PHP = 4.3.0 requires: iconv.dll (bundled)

  php_fdf.dll FDF: Forms Data Format functions. Requires: fdftk.dll

  gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll,

  php_iconv.dll ICONV characterset conversion Requires: iconv-1.3.dll

  php_ingres.dll Ingres II functions Requires: Ingres II libraries

  php_interbase.dll InterBase functions Requires: gds32.dll (bundled)

  php_java.dll Java functions PHP = 4.3.0 requires libeay32.dll,ssleay32.dll (bundled)

  php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll

  php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll (bundled)

  php_mcrypt.dll Mcrypt Encryption functions Requires: libmcrypt.dll

  php_mhash.dll Mhash functions PHP >= 4.3.0 requires: libmhash.dll (bundled)

  php_msql.dll mSQL functions Requires: msql.dll (bundled)

  php_mssql.dll MSSQL functions Requires: ntwdblib.dll (bundled)

  php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)

  php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysqli.dll (bundled)

  php_oci8.dll Oracle 8 functions Requires: Oracle 8.1+ client libraries

  php_openssl.dll OpenSSL functions Requires: libeay32.dll (bundled)

  php_oracle.dll Oracle functions Requires: Oracle 7 client libraries

  php_sybase_ct.dll Sybase functions Requires: Sybase client libraries

  php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll (bundled)

  php_xslt.dll XSLT functions PHP = 4.2.1 requires sablot.dll, expat.dll, iconv.dll (bundled).