在 Nginx + php 7(ubuntu 14.04)上安装 cURL 的问题

在 Nginx + php 7(ubuntu 14.04)上安装 cURL 的问题

我收到的错误如下:

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

我正在使用 Ubuntu 14.04,带有 nginx + php 7。

我尝试按照我在 stackoverflow (askubuntu、serverfault) 中偶然发现的所有教程进行操作

我目前所做的:

$ sudo apt-get update   
$ sudo apt-get install php7.0-curl   
Reading package lists... Done   
Building dependency tree   
Reading state information... Done   
php7.0-curl is already the newest version.   


$ php -m | grep curl   

PHP Warning:  Module 'sysvshm' already loaded in Unknown on line 0   
PHP Warning:  Module 'tokenizer' already loaded in Unknown on line 0

查看 phpinfo(不是在控制台中,而是在网络中)我得到了路径:

Loaded Configuration File:  /etc/php/7.0/fpm/php.ini   
Additional .ini files parsed: ....  /etc/php/7.0/fpm/conf.d/20-curl.ini .... 

其中php.ini我注释掉了这一行:

extension=php_curl.dll

还:

$ ls conf.d/ | grep curl
20-curl.ini

然后我使用以下命令重新启动 nginx:

sudo service nginx restart

并使用以下命令重新启动 php7:

sudo service php7.0-fpm restart

仍然不起作用...有什么想法吗?

答案1

经过几个小时的努力,我终于通过升级解决了这个问题。然后它就开始工作了!

秘诀是:

sudo apt-get update && sudo apt-get upgrade

答案2

这是我在 Ubuntu 中配置 nginx+php+mysql+phpmyadmin 的方法。请按照以下步骤操作。

  1. 做好准备。打开终端并更新 Ubuntu。

    sudo apt-get update
    
  2. 安装并启动 Nginx。

    sudo apt-get install nginx
    
  3. 检查是否安装完成。访问http://localhostr,如果看到“Welcome to Nginx!”,说明已经安装完成。

  4. 安装 mysql(您将被要求为默认帐户 root 设置密码)。

    sudo apt-get install mysql-server mysql-clinet
    
  5. 安装phpmyadmin并在虚拟机根目录创建软链接。

    sudo apt-get install phpmyadmin sudo In -s /usr/share/phpmyadmin/ /var/www/****.com/ 
    

    为了方便起见,星星可以是你网站的域名。/var/www/****.com/是虚拟机的地址。

  6. 安装 php 和扩展。

    sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl
    
  7. 安装 spawn-fcgi (用于 php5 cgi)。

    sudo apt-get install spawn-fcgi
    
  8. 在Nginx中,配置spawn-fcgi(使用nano定位文件并进行更改。)

    • 添加fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;在/etc/nginx/fastcgi_params

      sudo sed -i '$ i fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' /etc/nginx/fastcgi_params
      
  9. 修改php.ini,将cgi.fix_pathinfo设置为1。

    sudo sed -i '/cgi.fix_pathinfo=/ c cgi.fix_pathinfo=1;' /etc/php5/cgi/php.ini
    
  10. 启动fastcgi并设置开机启动。

    • sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

    • 设置开机启动,也就是添加/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid/etc/rc.local

    • sudo sed -i '/^exit/ i /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid' /etc/rc.local

  11. 在 Nginx 中配置虚拟机(非常重要)。

    • sudo vim /etc/nginx/sites-available/****.com星星可以是任何你想要的名字。

    • 修改站点****.com.conf并添加

      server {   
      listen 80; #WordPress access port (Default 80)   
      server_name ***.com www.***.com; #hostname,bind domain  
      root /var/www/***.com; #root directory of site    
      location / {   
      index index.php;  
      }   
      location ~ \.php$ {   
      fastcgi_pass 127.0.0.1:9000;   
      fastcgi_index index.php;   
      include /etc/nginx/fastcgi_params;  
      }  
      }  
      
  12. 启动 Nginx/php

    sudo /etc/init.d/nginx restart  
    /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 /usr/bin/php-cgi
    

完成后,http://localhost/phpmyadmin通过访问http://localhost

相关内容