最近碰到给客户部署OA系统,服务器为 Windows Server 2008。部署的时候发现openssl扩展未加载。仔细查看了下php.ini里面的配置发现扩展(php_openssl.dll)是打开的,扩展文件夹里面也有对应的扩展文件。但是phpinfo里面就是提示没有openssl。只能上网搜索,原来还需要将 libeay32.dll 复制到 %WINDOWS% 中。操作完之后,重启下IIS服务,果然OK了。

现在总结一下具体在 windows 下 PHP 无法加载扩展库的一般解决方法。步骤如下:

1、检查PHP 扩展文件夹(如:/php/ext/)中是否扩展库的相关动态链接库。

2、在PHP手册中查找无法加载的扩展的相关说明。 比如无法加载的库是 php_openssl.dll,而在PHP手册中找到的相关说明是:php_openssl.dll;OpenSSL 函数库;需要:libeay32.dll。由此可见,加载 php_openssl.dll 库还需要 libeay32.dll 库。

3、将 libeay32.dll 库复制到 %WINDOWS% 目录下。重启 IIS,在 phpinfo.php 里即可看到对应的扩展了。