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

В этой проблеме есть файлы ошибок: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/836250

В одном из комментариев упоминается Centrino n1000, но все равно это работает неправильно. Я предполагаю, что в последнем 12.04 он может работать правильно. Пользователь также указывает, что тестировал RC2 Ubuntu с даты, о которой он упоминает, поэтому он может быть не таким же, как только выдается 12.04.

Особый вопрос об особой проблеме mencionado sobre este. Alli puedes encontrar el comentario de otro usuario con la misma Centrino n1000 y el mismo problema. Положительная оценка на последней версии de la 12.04 te funcione mejor. Lo que podria recomendar seria probar el Beta y ver que tal te va. Те, кто думает о том, что он прощается с тобой.

128
задан 10 May 2012 в 03:48

3 ответа

Следующий способ позволит вам быстро начать работу с 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!») [!d7 ]

sudo service nginx stop

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

index index.html index.htm ] to index index.php index.html index.htm.

Раскомментируйте строки в разделе server {}, начиная с

listen для ipv4 / ipv6.

Прокрутите вниз до где он говорит «местоположение ~ .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 (в файле конфигурации). (См. [F11]

(Примечание: для Ubuntu 12.10 или новее вам нужно будет заменить строку fastcgi_pass 127.0.0.1:9000; на это, чтобы он работал: fastcgi_pass unix:/var/run/php5-fpm.sock;)

134
ответ дан 25 May 2018 в 11:38
  • 1
    В качестве последней заметки вы можете сделать 12.04 использовать UNIX-сокет, такой как 12.10+, путем редактирования /etc/php5/fpm/pool.d/www.conf и изменения строки прослушивания до listen = /var/run/php5-fpm.sock, а затем с помощью строки @ThomasW. упоминается. – Powerlord 31 March 2014 в 00:53
  • 2
    @Powerlord. Настройка по умолчанию для NGINX имеет обе строки и объясняет разницу между ними, вместо того, чтобы изменять, как работает PHP, вы можете просто быстрее изменить конфигурационную строку в NGINX, и все работает. – Thomas Ward♦ 31 March 2014 в 04:36
  • 3
    @ThomasW. Описание настроек обеих линий NGINX по умолчанию также неверно в 12.04. php5-fpm требует первого метода из-за того, как php5-fpm настроен в 12.04. Второй способ не изменился до 12.10. Чтобы заставить php5-fpm работать с nginx как задокументировано, вам нужно изменить fpm's www.conf, как указано в моем предыдущем сообщении. – Powerlord 31 March 2014 в 05:53
  • 4
    @Powerlord. Вы правы, это проблема, которая может быть исправлена ​​путем изменения документации в файле конфигурации по умолчанию. См. эту ошибку, которую я создал по этой проблеме . У меня еще не было возможности предложить исправление. – Thomas Ward♦ 4 April 2014 в 16:19
  • 5
    Это не работает для меня на ubuntu 14.04. nginx говорит: «Произошла ошибка, страница, которую вы ищете, не найдена», что делать? – Awal Garg 11 September 2014 в 17:05

Следующий способ позволит вам быстро начать работу с 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 to index index.php index.html index.htm.

Раскомментируйте строки в разделе server {}, начиная с

listen для ipv4 / ipv6.

Прокрутите вниз до где он говорит «location ~ .php {" и uncomment lines, поэтому он выглядит так:

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

135
ответ дан 25 July 2018 в 19:03

EDIT: Как отметил Мэтт Браун, вам может быть интересно это последнее сообщение: Как установить Linux, Nginx, MySQL, PHP (LEMP stack) в Ubuntu 16.04

Matt Browne верен на старом Ubuntu 12.04. Начиная с Ubuntu 12.10, конфигурация немного отличается. Вот что я сделал:

EDIT:

sudo apt-get install nginx php5-fpm

Включить PHP

Раскомментировать следующие строки в файле конфигурации

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;
}

Включить PHP (или перезапустить)

sudo service php5-fpm restart
sudo service nginx restart

Тест nginx

Открытие этой ссылки должен отображать «Добро пожаловать в nginx!»

Тест nginx

Создать файл 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.

45
ответ дан 25 May 2018 в 11:38

Другие вопросы по тегам:

Похожие вопросы: