[英]PHP on Ubuntu loads MSSQL extension from command line but NOT when run through Apache
[英]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.