Какой самый простой способ включить PHP на nginx?
Какой самый простой способ включить PHP в nginx в Ubuntu 12.04?
Лучшее решение - это то, которое требует минимальной работы, в идеале просто установка пакета:)
2 ответа
Следующий метод поможет вам быстро начать работу с Ubuntu 12.04:
Установите зависимости:
sudo apt-get install php5-common php5-cli php5-fpm
Установите nginx:
sudo apt-get install nginx
Запустите nginx:
sudo service nginx start
Проверьте, что он работает (должен увидеть "Welcome to nginx!")
sudo service nginx stop
В конфигурации вашего сайта nginx (/etc/nginx/sites-available/default) измените строку в разделе сервера {}
index index.html index.htm
в index index.php index.html index.htm
,
Раскомментируйте строки в разделе server {}, начиная с
listen
для ipv4 / ipv6 оба.
Прокрутите вниз там, где написано "location ~ .php {" и раскомментируйте строки, чтобы это выглядело так:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
sudo service php5-fpm restart
sudo service nginx restart
Ваш корневой веб-каталог по умолчанию находится по адресу /usr/share/nginx/www (в соответствии с файлом конфигурации). (Увидеть root /usr/share/nginx/www;
(Примечание: для Ubuntu 12.10 или новее вам необходимо заменить fastcgi_pass 127.0.0.1:9000;
в соответствии с этим, чтобы он работал: fastcgi_pass unix:/var/run/php5-fpm.sock;
)
РЕДАКТИРОВАТЬ: Как указал Мэтт Браун, вы можете быть заинтересованы в этой более поздней публикации:
Как установить Linux, Nginx, MySQL, PHP (стек LEMP) в Ubuntu 16.04
Ответ Папашу верен на старой Ubuntu 12.04. Начиная с Ubuntu 12.10, конфигурация немного отличается. Вот что я сделал:
устанавливать
sudo apt-get install nginx php5-fpm
Включить PHP
Раскомментируйте следующие строки в файле конфигурации /etc/nginx/sites-available/default
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Начать (или перезапустить)
sudo service php5-fpm restart
sudo service nginx restart
Тестовое заданиеnginx
Открытие этой ссылки http://localhost
должен отобразить "Добро пожаловать в nginx!"
Тестовое заданиеphp
Создайте файл php:
Целевой путь - это вывод
awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
например
/usr/share/nginx/www
Напиши
info.php
файл с:echo '<?php phpinfo(); ?>' | \ sudo tee /usr/share/nginx/www/info.php
или как однострочник
echo '<?php phpinfo(); ?>' | \ sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
открытие http://localhost/info.php
должен отобразить информационную страницу PHP.
sudo apt install nginx php-fpm
Обратите внимание на версию fpm или проверьте
php -v
. 7.3.11-0ubuntu0.19.10.3 (cli) в моем случае.
sudo nano /etc/nginx/sites-available/default
Установите правильный
root
папка.Добавить
index.php
кindex
директива.Раскомментируйте обработчик местоположения для php, но оставьте строку "php-cgi" закомментированной, если вы используете php-fpm. Также убедитесь, что установлена правильная версия fpm, чтобы на локальном хосте не было "502 Bad Gateway":
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
sudo service nginx restart
Это работает на:
$ nginx -v
nginx version: nginx/1.16.1 (Ubuntu)
$ uname -a
Linux cees-XPS-13-9380 4.15.0-1067-oem #77-Ubuntu SMP Mon Jan 20 09:23:07 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux