关于Apache无法加载PHP 7.2 curl模块问题的解决办法
关于Apache无法加载PHP 7.2 curl模块问题的解决办法
- 测试环境
- 故障现象
- 故障分析
- 解决办法
- 彩蛋
测试环境
E:\Web\Apache24\bin>httpd -version
Server version: Apache/2.4.46 (Win64)
Server built: Sep 23 2020 12:41:41
E:\Web\php-7.2.33-Win32-VC15-x64>php -v
PHP 7.2.33 (cli) (built: Aug 4 2020 11:50:49) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
故障现象
php.ini
里取消加载curl模块注释,却发现Apache无法正常启动了!WTF!
报错信息为
PHP Warning: PHP Startup: Unable to load dynamic library 'php_curl' (tried: E:\\Web\\php-7.2.33-Win32-VC15-x64\\ext\\php_curl (\xef\xbf\xbd\xd2\xb2\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd6\xb8\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc4\xa3\xef\xbf\xbd\xe9\xa1\xa3), E:\\PHPnow\\php-7.2.33-Win32-VC15-x64\\ext\\php_php_curl.dll (\xef\xbf\xbd\xd2\xb2\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd6\xb8\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc4\xa3\xef\xbf\xbd\xe9\xa1\xa3)) in Unknown on line 0
故障分析
按照正常流程,先检查extension后面的文件名对不对,然后再看extension_dir设置的对不对,然后再进入cmd
执行php -m
,看看文件有没有正确加载。
当发现在PHP CLI模式下可以正确引入curl模块,这就说明不是PHP设置的问题了,重点检查Apache设置。
反复检查了httpd.conf
感觉没什么问题,百撕不得其姐 甚是苦恼,放狗找答案。
解决办法
复制libeay32.dll
、ssleay32.dll
、libssh2.dll
三个文件至Apache\bin
目录内即可!
libeay32.dll
、ssleay32.dll
可以从OpenSSH编译版 https://indy.fulgan.com/SSL中获取。libssh2.dll
来自PHP文件夹。
彩蛋
经过各种测试发现,只要将libssh2.dll
复制到Apache\bin
下就解决问题了。