Проблемы с установкой cURL на Nginx + php 7 (Ubuntu 14.04)

Я получаю следующую ошибку:

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

Все еще не работает... Есть идеи?

2 ответа

Решение

После нескольких часов работы мне удалось решить проблему с апгрейдом. Тогда это начало работать!

Секрет был:

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

Вот как я настраиваю nginx+php+mysql+phpmyadmin в Ubuntu. Следуйте инструкциям ниже.

  1. Приготовься. Откройте терминал и обновите Ubuntu.

    sudo apt-get update
    
  2. Установите и запустите Nginx.

    sudo apt-get install nginx
    
  3. Проверьте, установлен ли он. Визит http://localhostr, Если вы видите "Добро пожаловать в 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, congifure 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,

Другие вопросы по тегам