⑴ php_CURL求開啟辦法!!!
配置php支持curl
curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理伺服器, cookies, 用戶名/密碼認證, 下載文件斷點續傳, 上載文件斷點續傳, http代理伺服器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理伺服器, 通過http代理伺服器上傳文件到FTP伺服器等等,功能十分強大。Windows操作系統下的網路螞蟻,網際快車(FlashGet)的功能它都可以做到。准確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統,用戶習慣稱curl為下載工具。
配置方法:
1、拷貝PHP目錄中的libeay32.dll 和 ssleay32.dll 兩個文件到 system32 目錄。
2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分號。
---------------------------
php下擴展php_curl.dll的安裝
---------------------------
已經內置有php_curl.dll,在ext目錄下,此DLL用於支持SSL和zlib.
在php.ini中找到有extension=php_curl.dll, 去掉前面的注釋.
設置extension_dir=c:phpext, 刷新PHP頁面時報錯, 說找不到模塊php_curl.dll.
拷貝php_curl.dll 到windowssystem32,還是同樣的錯.
在網上找了一下,需要將:
libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll
都拷貝到system32目錄下,重啟IIS即可.
⑵ php通過curl發送post json給https產生502錯誤問題!
curl_setopt(self::$ch,CURLOPT_USERAGENT,"Mozilla/5.0(Macintosh;IntelMacOSX10_10_2)AppleWebKit/600.3.18(KHTML,likeGecko)Version/8.0.3Safari/600.3.18");
加一個這個參數模擬瀏覽器,看看有沒有作用
有些伺服器非瀏覽器訪問就會502
⑶ 配置php 的curl 支持https時,安裝都成功,但啟動apache的時候報這樣的錯誤curl/lib/libcurl.so.4:
原因是linux有一個SELinux保護模式引起的。
1.關閉SELINUX的方法:
vi /etc linux/config 將SELINUX=enforcing 改成SELINUX=disabled 需要重啟
2.
不關閉SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/moles/libphp5.so
# service httpd restart
# setenforce 1
⑷ PHP使用CURL請求https的微信統一下單介面時報錯,同樣的代碼我在另一台機器上運行是正常的
我也遇到了同樣的問題,只要是走微信,偶爾都會請求不到,原來是正常的。今天排查了一天,終於找到了原因所在。
centos原生用的NSS,而不是OpenSSL,curl調用NSS庫請求https時偶爾會出現請求不到的情況。
解決方案:
參考網址:網頁鏈接
按步驟完成後記得重啟 php-fpm和nginx
⑸ PHP 用CURL 抓取錯誤提示:Recv failure: Connection was aborted 怎麼解決 求助各位大神
一、原因分析
web站點目前主要分為http和https兩種協議,其中https類型的網站都是通過ssl協議+http協議的,是目前最安全的網站協議,訪問此類網站的時候,會走ssl協議,驗證訪問者的證書,檢測是否安全。
通過curl訪問此類網站也是如此流程,但是curl中需要添加相應的參數,繞過ssl證書的驗證,才可以正常訪問,如出現此錯誤的一般原因是沒有加此參數。
CURLOPT_SSL_VERIFYHOST的值
設為0表示不檢查證書
設為1表示檢查證書中是否有CN(common name)欄位
設為2表示在1的基礎上校驗當前的域名是否與CN匹配。
二、解決方案
如果出現:
PHP Notice: curl_setopt():
CURLOPT_SSL_VERIFYHOST with value 1 is deprecated and will be removed as of libcurl 7.28.1. It is recommended to use value 2 instead in
一般原因是你設置了 curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, true );
改成curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, 2 );就行了。
PHP其他原因錯誤:
1、錯誤現象
在用curl進行模擬調用時,curl接收內容會出現"Empty reply from server" 和 "Recv failure: Connection was reset"的錯誤。
2、解決方案
經過對apache的error_log進行跟蹤,出現錯誤"Connection reset by peer: core_output_filter: writing data to the network"
修改httpd.conf,在虛擬主機上添加如下內容:
EnableSendfile off
EnableMMAP off
修改後"Empty reply from server"錯誤消失。
⑹ PHP如何開啟CURL擴展支持
開啟curl擴展,這需要修改PHP的配置,在Windows 中只需簡單三步:
將PHP安裝文件夾下的三個文件php_curl.dll(可能在ext文件夾中),libeay32.dll,ssleay32.dll 復制到 %windir%/system32下。
3、重啟php的服務(apache或者IIS),如重啟IIS,運行iisreset即可。