簡體   English   中英

Apache 2.4、PHP 7.4.7、Windows 10 無法從 Apache 服務加載 cURL 擴展,但可以通過 httpd 從命令行加載

[英]Apache 2.4, PHP 7.4.7, Windows 10 can't load cURL Extension from Apache Service but loads fine from Command Line with httpd

我已經與這個問題斗爭了 2 天,似乎無法解決它。 我在我的計算機上安裝了 Apache 並作為本地主機運行。 我沒有 SSL,但嘗試加載和不加載 openssl 擴展。 如果我從“Windows 服務”啟動 Apache 24 服務,PHP 工作但不會加載擴展 dll,特別是我正在嘗試加載 cURL。 如果我停止“Windows 服務”並從命令提示符運行 httpd,則所有擴展都可以正常加載。

有趣的是,除了從“Windows 服務”運行時的擴展之外,所有 PHP 功能都可以正常工作。

當我第一次啟動“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 之間的區別是:

“視窗服務”

在此處輸入圖片說明

“命令行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 文件夾,以避免將來出現任何路徑問題。

有誰知道我錯過了什么?

定義擴展目錄的路徑到完整路徑

extension_dir = "ext"

extension_dir = "c:\PHP7.4.7\ext"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM