搜尋
首頁後端開發PHP7如何解決php7無法載入curl的問題

本篇文章给大家介绍一下解决php7无法加载curl的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

如何解決php7無法載入curl的問題

为了快速救火先贴出解决办法:

#在apache 的主配置文件httpd.conf中加入
LoadFile "E:\myServer\php\libssh2.dll"

最近对PHP环境搭建配置做了一些创新的尝试,目的就是要最大限度让系统各部分更加干净,独立的apache、php、mysql,除此之外不需要更多。

在PHP配置文件中是可以使用相对路径的,可互联网上你能看到的教程全部是写绝对路径,例如D:\path\php\ext,现在不用了

#第732行 php.ini 7.2.3
extension_dir = "..\php\ext"

在apache中的配置是可以动态引入的

Include conf/user.conf
Include conf/codenight/*.conf

甚至可以使用变量

Define ROOT "E:\myServer"
Define SRV_ROOT "${ROOT}/Apache24"

以上可以解决非常多的配置问题,关于PHP环境搭建配置优化,在今天的和以前的推送中有详细说明,这里不展开。

配置优化后,PHP所有的模块都能如期加载,完美。

不不不,php_curl不行,这是apache告诉我们的

#在..\Apache24\logs中我们发现仅有的一条警告
PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' 
(tried: ..\\php\\ext\\curl (\xef\xbf\xbd\xd2\xb2\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd6\xb8\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc4\xa3\xef\xbf\xbd\xe9\xa1\xa3), ..\\php\\ext\\php_curl.dll (\xef\xbf\xbd\xd2\xb2\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd6\xb8\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc4\xa3\xef\xbf\xbd\xe9\xa1\xa3)) in Unknown on line 0

那PHP的curl模块是用不了了,我们测试了

Fatal error: Uncaught Error: Call to undefined function curl_init()

emmmmm?

出了这个模块无法加载的问题,开始我怀疑是不是../php/ext的相对路径不能这样写,但其他模块mysqli,mbstring都没有问题,排除

百度搜索一波

Q: PHP Startup: Unable to load dynamic library 'curl'

不是想要的答案,换一种方式

Q: php7不能使用curl

A1:简单粗暴往httpd.conf塞四条语句

LoadFile D:/php/php7.1/php7ts.dll  
LoadFile D:/php/php7.1/libeay32.dll  
LoadFile D:/php/php7.1/ssleay32.dll  
LoadFile D:/php/php7.1/libssh2.dll

A2:其实只用加载一个即可

最终的解决方式是在php官网上搜索curl,然后看下面的英文评论.
Move to Windows\system32 folder:
libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll
Move to Apache24\bin folder
libssh2.dll 
我自己只是把libssh2.dll 这个文件放到Apache24\bin终于中解决。

以上这两种方法都能生效,但第一种胡乱加载无关模块太多,其实后患无穷;第二种就要好得多,有思考和尝试。第二种方法提到的是把PHP目录下的一个文件libssh2.dll放到apache目录下,但移动文件也不符合最小改动原则,这个还可以改进一下。

我们采用第三种动态加载的办法,通过在加载curl之前引入libssh2.dll即可,同时根据我们配置优化的结构,只用放到独立的php7.conf文件中,也不必修改httpd.conf

第一行是我们加入的,这样的好处是PHP的配置在单独的文件,不干扰apache主配置文件

#..\myServer\Apache24\conf\codenight\php7.conf
#以支持curl
LoadFile "${PHP_ROOT}/libssh2.dll"
 
LoadModule php7_module "${PHP_ROOT}/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
# 配置 php.ini所在路径
PHPIniDir "${PHP_ROOT}"

推荐学习:php视频教程

以上是如何解決php7無法載入curl的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版