簡體   English   中英

PHP 7卷曲未加載

[英]PHP 7 curl not being loaded

我已經在我的本地計算機apache 2.4中安裝了PHP 7.1。 我在我的php.ini(extension = php_curl.dll)中啟用了curl,但由於某種原因,即使我啟用了curl也沒有加載,我做了一個phhinfo來檢查,什么都沒有,我也做了一個小腳本:

function isExtensionLoaded($extension_name){
    return extension_loaded($extension_name);
}

echo isExtensionLoaded('curl');

沒有什么,是空白的,它意味着什么是沒有被裝載,是缺少什么? 我在Windows 10上。

在我的情況下,當我將nghttp2.dll復制到Apache bin目錄時,它也有效

我很長時間都在尋找解決方案,直到我決定在PHP文檔站點上閱讀一些注釋: http//php.net/manual/de/curl.installation.php

我修復了從php文件夾中處理以下列表文件(在我的情況下為C:\\ xampp \\ php7)

libeay32.dll
libssh2.dll
ssleay32.dll

有些人還不得不移動nghttp2.dll才能正常工作。

到你的apache / bin文件夾(在我的例子中是C:\\ xampp \\ apache \\ bin)。

我也將它們復制到C:\\ Windows \\ System32,但我認為這些文件都沒有被加載。

編輯 :我成功從system32文件夾中刪除了這些dll,之后能夠運行curl

確保您已編輯正確的文件。 CLI,Apache2和其他SAPI應該有單獨的文件。 完成后,重新啟動Apache2服務器。

很難猜到為什么它沒有運行,因為我看到你沒有得到錯誤atm。

你應該得到錯誤,但我很確定你沒有在你的php.ini中設置錯誤記錄

首先,我們需要激活日志記錄以查看擴展程序未正確運行的原因:

請在php.ini文件中更改/添加以下行:

display_startup_errors = On
error_log = 'c:/php-logs/php-error.log'

現在創建php-logs目錄和php-log.log文件

mkdir c:/php-logs
copy NUL c:/php-logs/php-error.log

現在重啟服務器。 現在你應該得到錯誤,請分享錯誤代碼,以便我可以提供幫助

更新:

在`httpd.conf``中啟用mod_ssl

LoadModule ssl_module c:\apache-2.2\modules\mod_ssl.so

如果您將ssl VERIFYPEER設置為false則它可以正常工作

curl_setopt($get, CURLOPT_SSL_VERIFYPEER, false);

它會工作正常。 您也可以通過從https://curl.haxx.se/docs/caextract.html下載cacert.pem並將證書添加到您的php.ini文件來使用ssl進行卷曲工作

curl.cainfo="C:\path\cacert.pem" 
openssl.cafile="C:\path\cacert.pem"

curl_setopt($get, CURLOPT_SSL_VERIFYPEER, true);

也可以這樣工作,你可以防止中間人攻擊,查看此鏈接了解更多詳情http://thisinterestsme.com/php-curl-ssl-certificate-error/

暫無
暫無

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

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