Apache 2.4.23 PHP7.x Windows 10 x64 php_curl无法正常工作
我试图将我的服务器升级到最新的Apache 2.4.23和PHP 7.1,但它无法加载php_curl库,不知道为什么。Apache 2.4.23 PHP7.x Windows 10 x64 php_curl无法正常工作
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0
我曾尝试以下
- 更改扩展路径如d全路径:\网络服务器\ PHP \分机
- 复制
php_curl.dll, libssh2.dll, libeay32.dll, ssleay32.dll
到System32下,PHP /转,阿帕奇/ bin,php - 增加了php路径system var iable
- 曾经尝试都PHP7和PHP7.1
- 所有这些都是x64和所有其他扩展成功加载和服务器的工作,但只有php_curl没有在php.ini工作
- 注释掉扩展
- 的Apache 2.4.23 64
- PHP7也试图PHP7.1(线程安全)64
- Windows 10 x64
解决方案:将libeay32.dll,libssh2.dll,ssleay32.dll文件放在httpd.conf的ServerRoot指令中指定的目录下。这些DLL可以在php根文件夹下找到。
原因:
问题是php_curl.dll需要访问以下库加载时:的libeay32.dll,libssh2.dll,ssleay32.dll,它没有任何意义,如果你把它们放在./php/ext目录或如果你把PHP扩展名在PHP根目录。
当然,你可以把它们放在C:\ Windows或在一些全球性的文件夹中PATH定义,但如果你不想这样做,你想你的Apache + PHP安装了便携式:
指定的路径在httpd.conf中的ServerRoot被视为php的主路径。该行为类似于在./index.php中包含./path/to/some.php文件并且some.php文件的主路径仍然是./其中index.php所在的目录。
简而言之,只需将这三个DLL正确放入您在httpd.conf ServerRoot指令中指定的目录中,并且php_curl.dll不会再次加载失败。
是的,我已经阅读过这个解决方案并试过了,它没有工作。不过,我通过从wamp复制php目录来修复它,好像这些dll文件有bug并且wamp开发者似乎编译它们自己。 –
取道路径到php关闭路径 – RiggsFolly
该dll只需要复制到'apache \ bin'文件夹 – RiggsFolly
不要复制dll到'\ windows \ system32'文件夹 – RiggsFolly