我有一個簡單的測驗代碼:
<?php
var_dump(curl_init());
echo '.';
如果我在命令列(Windows 10)上運行它,我會得到預期的結果:
php.exe 測驗.php
(curl) 型別的資源(4)。
很好。但是當我從瀏覽器運行這個檔案時(設定為 Apache rootdir)。
致命錯誤:未捕獲的錯誤:呼叫未定義的函式 curl_init()
我無言以對。由于遺留原因,這是 php 7.04(在 7.2、7.4、8.1 上一切都很好)。php.ini 確實有效。當然“extension=php_curl.dll”是啟用的。當我更改某些內容時,例如“max_execution_time = 300”,這php_info();也讓我意識到這些設定已被考慮在內。然而,奇怪的是 php_info() 說的是什么:
cURL 英鎊休斯
卷曲僅此而已!
編輯:
我對“extension=php_gd2.dll”進行了同樣的嘗試,如果我洗掉/讀取它,它確實有效,phpinfo 正確顯示!
uj5u.com熱心網友回復:
這是因為 php 檔案夾不在您的系統 PATH(不是用戶)中,Apache 不知道在哪里搜索 dll。最簡單的方法是將 php 檔案夾添加到 PATH。
如果您不想這樣做,您可能需要將extension_dir擴展??檔案夾的完整路徑設定為php.ini. 例如:
extension_dir = "D:\Program Files\php-7.04-ts\ext"
cURL 擴展需要 openssl 才能作業。您也可以在 php 檔案夾中找到這些 dll,只需將它們復制到 Windows 或 system32 檔案夾即可。根據 RiggsFolly 的評論,您可以將這些所需的 dll 復制到Apache\bin檔案夾中。
- libssl-1_1-x64.dll / libeay32.dll
- libcrypto-1_1-x64.dll / ssleay32.dll
- libssh2.dll
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521096.html
標籤:php卷曲
