Какой самый простой способ включить 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 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;)

РЕДАКТИРОВАТЬ: Как указал Мэтт Браун, вы можете быть заинтересованы в этой более поздней публикации:
Как установить 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
  1. Установите правильный root папка.

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

  3. Раскомментируйте обработчик местоположения для 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
Другие вопросы по тегам