Проблемы с установкой 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. Следуйте инструкциям ниже.
Приготовься. Откройте терминал и обновите Ubuntu.
sudo apt-get update
Установите и запустите Nginx.
sudo apt-get install nginx
Проверьте, установлен ли он. Визит
http://localhostr
, Если вы видите "Добро пожаловать в Nginx!", это означает, что он был установлен.Установите mysql (Вам будет предложено установить пароль для учетной записи по умолчанию, которая является root).
sudo apt-get install mysql-server mysql-clinet
Установите phpmyadmin и создайте программную ссылку в корневом каталоге виртуальной машины.
sudo apt-get install phpmyadmin sudo In -s /usr/share/phpmyadmin/ /var/www/****.com/
Звезды могут быть доменным именем вашего сайта для удобства. /var/www/****.com/ - это адрес виртуальной машины.
Установите 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
Установите spawn-fcgi (для php5 cgi).
sudo apt-get install spawn-fcgi
В 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
Измените php.ini и установите cgi.fix_pathinfo равным 1.
sudo sed -i '/cgi.fix_pathinfo=/ c cgi.fix_pathinfo=1;' /etc/php5/cgi/php.ini
Запустите 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
Настройте виртуальную машину в 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; } }
Запустите 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
,