我有带有 PHP 5.6.11 并运行 Apache/2.4.12 的 Ubuntu 12.04。我已经通过运行安装了 CURL
sudo apt-get install php5-curl
并重新启动:
sudo service apache2 restart
在命令行输入
curl -V
并获得以下信息:curl 7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
当我输入
which curl
我得到以下信息:/usr/bin/curl
所以我相当确定 curl 已安装。
当我使用
phpinfo()
在从 Web 浏览器调用的 php 页面上,没有阻止 curl 和任何对 curl 的引用。我的理解是,基于此 question/answer,curl 应该可以正常工作。没有任何配置更改,显然情况并非如此。
有人可以指出正确的方向来修改 PHP 配置文件或我需要运行哪些命令才能让 CURL 在我的版本上与 PHP 一起运行?
附件是在 phpinfo() 中找到的配置文件位置
Configuration File (php.ini) Path /etc/php5/apache2
Loaded Configuration File /etc/php5/apache2/php.ini
Scan this dir for additional .ini files /etc/php5/apache2/conf.d
Additional .ini files parsed /etc/php5/apache2/conf.d/05-opcache.ini, /etc/php5/apache2/conf.d/10-pdo.ini, /etc/php5/apache2/conf.d/20-json.ini, /etc/php5/apache2/conf.d/20-mysql.ini, /etc/php5/apache2/conf.d/20-mysqli.ini, /etc/php5/apache2/conf.d/20-pdo_mysql.ini, /etc/php5/apache2/conf.d/20-readline.ini
最佳答案
首先,检查是否安装了扩展(带有相关示例输出):
$ sudo find / -name curl.so\*
/usr/lib64/php/7.0/modules/curl.so
然后,检查扩展是否已启用(再次显示相关输出):
$ grep -Ri curl /etc/php*
/etc/php.d/20-curl.ini:extension=curl.so
如果第一个命令没有产生任何输出,那么该模块没有安装。您需要诊断系统包管理器未安装该包的原因。对于 Ubuntu,您可能需要运行
sudo apt-get update
.如果第一个命令有效,但第二个无效,则需要启用扩展,然后重新启动 Apache:
echo 'extension=curl.so' | sudo tee /etc/php5/apache2/conf.d/99-curl.ini
关于PHP 5.6 不会运行 CURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47535565/