Каков самый простой способ включить PHP на nginx?

Каков самый простой способ включить PHP на nginx в Ubuntu 12.04?

Лучшее решение - это то, которое требует минимальной работы, в идеале просто установки пакета :)

Следующий метод поможет вам быстро начать работу с Ubuntu 12.04:

Установите зависимости:

sudo apt-get install php5-common php5-cli php5-fpm

Установка nginx:

sudo apt-get install nginx

Запустите nginx:

sudo service nginx start

Проверьте, что он работает (должен увидеть "Добро пожаловать в nginx!")

sudo service nginx stop

В конфигурации вашего сайта nginx (/etc/nginx/sites-available/default) измените строку в разделе server {}

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 restartsudo 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;)

РЕДАКТИРОВАТЬ: Как указано в Мэтт Браун возможно, вас заинтересует это более свежее сообщение:
How To Install Linux, Nginx, MySQL, PHP (LEMP stack) in 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 restartsudo 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
  1. Установите правильный root папка.

  2. Добавь index.php к index директива.

  3. Раскомментируйте обработчик местоположения для php, но оставьте строку "php-cgi" прокомментированной, если вы используете php-fpm. Также убедитесь в правильной версии fpm, чтобы не получить "502 Bad Gateway" на localhost: fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

sudo service nginx restart

Это работает на:

$ nginx -vnginx version: nginx/1.16.1 (Ubuntu)$ uname -aLinux 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