Fatal error: Call to undefined function curl_init()

 

ubuntu 

1.  安装php5-curl: sudo apt-get install php5-curl

2.  编辑php.ini文件: vim /etc/php5/apache2/php.ini

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
;curl.cainfo =
extension=/usr/lib/php5/20121212/curl.so

refs

installing-curl-to-php-cli  (stackoverflow)

 

重要补充:

Ubuntu(Linux)系统下,除了 curl.so 扩展文件,很多时候还需要配置添加 pdo.so pdo_mysql.so mysql.so mysqli.so 等.so文件。

其实呢,这些文件早已在目录 /usr/lib/php5/20121212/ 下,例如:

fatal-error-curl-so

 

应用示例

例如:使用pdo访问MySQL数据库时,若在php.ini文件中未配置 pdo.so pdo_mysql.so,将会报错,错误信息如下:

Fatal error: Class 'PDO' not found in /home/homer/workspace/proxy_client/index.php on line 258

解决方案:

1. 编辑php.ini配置文件:  vim /etc/php5/apache2/php.ini

2. 在 [Pdo] 作用域添加一行: extension=/usr/lib/php5/20121212/pdo.so

    在 [Pdo_mysql] 作用域添加一行: extension=/usr/lib/php5/20121212/pdo_mysql.so

3. 修改php.ini配置后,必须重启apache: apachectl restart

 

拓展完善:

上面已经基本解决了curl,pdo,pdo_mysql 的问题,但是还有oracle,json等问题没遇到或尚待解决。

首先,查看php.ini配置文件的扩展有哪些

fatal-error-curl-so-2

其次,查看 conf.d/xxx.ini

ll /etc/php5/apache2/conf.d/

fatal-error-curl-so-3

然后,查看 xxx.so (仔细对比,会发现 xxx.ini 和 xxx.so 是一一对应关系

fatal-error-curl-so-4

打开一个 xxx.ini 文件,查看其内容,会发现xxx.ini文件中对应的就是xxx.so文件

例如: vim /etc/php5/apache2/conf.d/20-curl.ini

fatal-error-curl-so-5

最后,批量添加 xxx.so

为了不折腾,可以批量把 xxx.so 文件添加到 php.ini 配置文件中,步骤如下:

1. 编辑php.ini: vim /etc/php5/apache2/php.ini

2. 添加xxx.so到php.ini 文件末尾: 

        extension=/usr/lib/php5/20121212/curl.so
        extension=/usr/lib/php5/20121212/gd.so
        extension=/usr/lib/php5/20121212/json.so
        extension=/usr/lib/php5/20121212/mysql.so
        extension=/usr/lib/php5/20121212/mysqli.so
        extension=/usr/lib/php5/20121212/opcache.so
        extension=/usr/lib/php5/20121212/pdo.so
        extension=/usr/lib/php5/20121212/pdo_mysql.so
        extension=/usr/lib/php5/20121212/readline.so
        extension=/usr/lib/php5/20121212/xdebug.so

添加到文件末尾的效果:

fatal-error-curl-so-6

3. 重启apache,是修改配置生效

apachectl restart

运行进程如下:

fatal-error-curl-so-7

 

windows

1. vim /etc/php5/apache2/php.ini  

2. 删除 ;extension=php_curl.dll 前的分号,取消注释

3. php_curl.dll 复制到php安装目录下的ext下,libeay32.dll和ssleay32.dll复制到php安装目录下。

refs

Fatal error: Call to undefined function curl_init 全网正解 (CSDN Blog)

Fatal error: Call to undefined function curl_init() in? (CSDN BBS)

 

参考推荐:

Linux 下 PHP 扩展 PDO 编译安装推荐

Linux下php开启pdo扩展模块步骤