PHP中 “Fata error Call to undefined function curl_init()解决方法

本文主要讲述在Centos/RHEL linux系统下运行php时候遇到的错误 Fatal error: Call to undefined function curl_init() 的解决方法。 当你在配置完成一个LEMP(Linux,Nginx, MySQL, PHP)的web环境后,PHP在运行的时候有可能会在/var/log/nginx/error.log文件里看到下面的错误:

Fatal error: Call to undefined function curl_init()

根据错误的提示,我们可以基本判断curl扩展模块没有安装或者启用,所以接下里我们可以去执行下面的命令来检测php-curl 模块包是否安装。

Centos/RHEL 系统检测php-curl是否安装

执行下面的命令:

$ rpm -qa |grep php-curl

ubuntu 系统检测php-curl是否安装

执行下面的命令:

$ sudo dpkg -l |grep php-curl

 

如果没有安装,我们只需要安装或者开启curl module 扩展包。

Ubuntu下安装支持PHP的CURL扩展模块

执行下面的apt install 命令为php 7.x 安装curl 扩展模块:

$ sudo  apt install php-curl

命令输出如下:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
java-common libappindicator1 libindicator7
使用'apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
php-common php7.0-common php7.0-curl
下列【新】软件包将被安装:
php-common php-curl php7.0-common php7.0-curl
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 223 个软件包未被升级。
需要下载 880 kB 的归档。
解压缩后会消耗 4,903 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.aliyun.com/ubuntu xenial-proposed/main amd64 php-common all 1:35ubuntu6.1 [10.8 kB]
获取:2 http://mirrors.aliyun.com/ubuntu xenial-proposed/main amd64 php7.0-common amd64 7.0.25-0ubuntu0.16.04.1 [840 kB]
获取:3 http://mirrors.aliyun.com/ubuntu xenial-proposed/main amd64 php7.0-curl amd64 7.0.25-0ubuntu0.16.04.1 [27.4 kB]
获取:4 http://mirrors.aliyun.com/ubuntu xenial-proposed/main amd64 php-curl all 1:7.0+35ubuntu6.1 [1,928 B]
已下载 880 kB,耗时 3秒 (289 kB/s)
正在选中未选择的软件包 php-common。
(正在读取数据库 ... 系统当前共安装有 220903 个文件和目录。)
正准备解包 .../php-common_1%3a35ubuntu6.1_all.deb  ...
正在解包 php-common (1:35ubuntu6.1) ...
正在选中未选择的软件包 php7.0-common。
正准备解包 .../php7.0-common_7.0.25-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-common (7.0.25-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-curl。
正准备解包 .../php7.0-curl_7.0.25-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-curl (7.0.25-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php-curl。
正准备解包 .../php-curl_1%3a7.0+35ubuntu6.1_all.deb  ...
正在解包 php-curl (1:7.0+35ubuntu6.1) ...
正在设置 php-common (1:35ubuntu6.1) ...
正在设置 php7.0-common (7.0.25-0ubuntu0.16.04.1) ...
Creating config file /etc/php/7.0/mods-available/calendar.ini with new version
…
Creating config file /etc/php/7.0/mods-available/tokenizer.ini with new version
正在设置 php7.0-curl (7.0.25-0ubuntu0.16.04.1) ...
Creating config file /etc/php/7.0/mods-available/curl.ini with new version
正在设置 php-curl (1:7.0+35ubuntu6.1) ...

Centos下安装支持PHP的CURL 模块

在centos或者Redhat系统下,可以通过yum install 命令执行下面的命令来安装curl模块:

$ sudo yum install php-curl

或者执行下面的命令:

$ sudo yum install php-common

安装完php-curl 模块后,需要重启下Apache/Nginx 服务

执行下面的命令:

$ sudo service nginx restart

或者

$ sudo /etc/init.d/nginx restart

对于centos7.x 系统,执行下面命令:

$ sudo systemctl  restart nginx

 

99%的人还阅读了:

Linux:用腻了 wget 或 curl,有什么更好的替代品吗?

Mac OS:终端下使用curl命令下载文件

Ubuntu 下curl安装及使用指南

Linux 下curl命令post传递表单数据

参考地址:https://curl.haxx.se/download.html

Leave a Reply