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

128

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

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

    
задан sorin 10.05.2012 в 00:39
источник

2 ответа

137

Следующий способ позволит вам быстро начать работу с 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) измените строку на сервере {} section

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

Ваш сетевой root по умолчанию находится в каталоге / 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; )

    
ответ дан papashou 10.05.2012 в 01:07
источник
46

РЕДАКТИРОВАТЬ: Как указано Мэттом Брауном , вам может быть интересно это последнее сообщение:
Как установить Linux, Nginx, MySQL, PHP (стек LEMP) в Ubuntu 16.04

ответ papashou верен на старом 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.

    
ответ дан olibre 07.03.2013 в 05:39