php curl 安裝 (5.6.6 以後的版本可能需修正)

網路與網站相關議題和知識
回覆文章
dtchang
Site Admin
文章: 84
註冊時間: 2017-01-22, 16:54

php curl 安裝 (5.6.6 以後的版本可能需修正)

文章 dtchang » 2018-10-10, 19:30

curl 需用到幾個 lib, 可以使用 apache 的設定檔 httpd.conf 中指定載入,
若不能載入則需要將其複制到 apache/lib 之下,
因為 apache/lib 下的檔案可能是過時的版本.
但 5.6.6 以後的版本,可能因 php_curl.dll 和 ssleay32.dll/libssh2.dll/libeay32.dll 有匹配的問題,
導致模組無法正常啟動.換言之,例如 php 5.6.38 中的curl模組即有不匹配的問題.
另外, 因為 ssl 版本的問題, ssleay32.dll/libssh2.dll 的檔名可能會有所不同.名稱為 ssl*****.dll

正常啟動時, phpinfo() 的訊息中將可搜尋到有關 curl 的字眼4個,
同時,可以看到一個模組訊息.如:
curl
cURL support enabled
cURL Information 7.40.0

若未出現則為錯誤的啟動,curl模組並未被載入,但 apache 不會報錯.

--------修正 5.6.6 版本以後的 curl 問題 ---
可將 5.6.6 版本的 php_curl.dll 複制到更新版本的 php/ext 下,將有問題的php_curl.dll取代掉.

------------
httpd.conf 範例

LoadModule php5_module "C:/php-5.6.38/php5apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php-5.6.38"
# load curl and open ssl libraries
LoadFile "C:/php-5.6.38/libeay32.dll"
LoadFile "C:/php-5.6.38/ssleay32.dll"
LoadFile "C:/php-5.6.38/libssh2.dll"

--------------
php.ini 範例

extension_dir = "C:/php-5.6.38/ext"
extension=php_curl.dll
extension=php_openssl.dll

回覆文章