我已经为这个问题战斗了两天了,似乎无法解决它。我在计算机上安装了Apache,并以本地主机运行。我没有SSL,但尝试过加载和不加载openssl扩展。如果我从“Windows服务”启动Apache 24服务,PHP可以工作,但不会加载扩展dll,特别是我试图加载cURL。如果我停止“Windows服务”并从命令提示符运行httpd,所有扩展都可以正常加载。
有趣的是,除了从“Windows服务”运行时的扩展外,所有PHP功能都运行得很好。
当我第一次启动“Apache Windows Service”时,事件日志显示以下内容:
php[29280]
PHP Warning: PHP Startup: Unable to load dynamic library 'php_curl' (tried: ext\php_curl (The specified module could not be found.), ext\php_php_curl.dll (The specified module could not be found.)) (D:\Apache24\bin\httpd.exe -d D:/Apache24)
字符串
我在phpinfo中找到的唯一真实的的线索是我在“Windows服务”和命令行httpd之间看到的区别:
“Windows服务”
的数据
“命令行httpd”
的
我的php.ini文件对cURL有以下设置:
extension_dir = "ext"
extension=curl
extension=openssl
型
PHP信息截图:
双方共有
的
使用命令行httpd
的
使用Windows服务(注意cURL缺失,事件日志显示上述错误)
的
我还注意到“Configuration File(php.ini)Path”被设置为“C:\Windows”,所以我尝试将php.ini文件复制到c:\windows,并将包含所有dll的ext文件夹复制到C:\Windows,但仍然遇到完全相同的问题。我已经从C:\Windows中删除了php.ini和ext文件夹,以避免将来出现任何路径问题。
有人知道我错过了什么吗?
1条答案
按热度按时间fhg3lkii1#
将扩展目录的路径定义为完整路径
字符串
至
型