PHP Warning: PHP Startup: Unable to load dynamic library

首先,做 web 开发一定要学会看日志。做了一个简单的 PHP 数据库程序,访问时页面全是空白怎么办?看看 Apache 的 error.log (Windows).

在 Windows 上安装 PHP 之后,如果是以 Apache 方式运行,那么 Apache 启动的时候在 error.log 里一般会出现许多 warning,大致是这样的:

PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\\Program Files\\PHP\\ext\\php_gd2.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

这个错误分两种情况处理。第一种情况,某些 ext 子目录中的扩展依赖于 PHP 安装根目录下的 dll,比如 ext/php_mysql.dll 就依赖 libmysql.dll,如果你发现错误日志中有 mysql 扩展,那就说明 PHP 安装的时候,没有在 PATH 环境变量中加上 PHP 的安装目录,需要你自己去修改。这一般是因为弱智的杀毒软件造成的。修改后重启机器,再试试。

环境变量设置正确了之后启动服务还有 warning,说明这些扩展依赖你系统上没有的一些 dll 库,比如 php_oci8.dll/php_pdo_oci.dll 这些是依赖 oracle 的。你如果不在意这些 warning,不管它就可以了,毕竟只要不用到这些扩展提供的功能,就不影响服务运行。如果在意的话,直接去 php.ini 的文件末尾部分,把相应的扩展注释掉就可以了。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.