【发布时间】:2020-12-24 20:26:06
【问题描述】:
我已经解决这个问题 2 天了,似乎无法解决它。 我在我的计算机上安装了 Apache 并作为 localhost 运行。我没有 SSL,但尝试过加载和不加载 openssl 扩展。 如果我从“Windows 服务”启动 Apache 24 服务,PHP 可以工作,但不会加载扩展 dll,特别是我正在尝试加载 cURL。如果我停止“Windows 服务”并从命令提示符运行 httpd,则所有扩展加载都很好。
有趣的是,所有 PHP 功能都可以正常工作,除了从“Windows 服务”运行时的扩展。
当我第一次启动“Apache Windows 服务”时,事件日志显示如下:
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 缺失且事件日志显示上述错误)
我还注意到“配置文件 (php.ini) 路径”设置为“C:\Windows”,因此我尝试将 php.ini 文件复制到 c:\windows 并复制包含所有 dll 的 ext 文件夹到 C:\Windows 也是如此,但仍然有完全相同的问题。我已经从 C:\Windows 中删除了 php.ini 和 ext 文件夹,以避免将来出现任何路径问题。
有人知道我错过了什么吗?
【问题讨论】:
标签: php windows apache curl localhost