Який найпростіший спосіб увімкнути PHP на nginx?


130

Який найпростіший спосіб увімкнути PHP на nginx на Ubuntu 12.04?

Найкраще рішення - це те, що вимагає мінімальної роботи, в ідеалі просто встановлення пакета :)

Відповіді:


141

Наступний метод дозволить швидко почати роботу з 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) змініть рядок на сервері {} розділ

index index.html index.htmдо index index.php index.html index.htm.

Відменшіть рядки в розділі сервера {}, починаючи з

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


1
В якості пізньої сторони, ви можете змусити 12.04 використовувати UNIX-сокет, як це робить 12.10+, редагуючи /etc/php5/fpm/pool.d/www.confта змінюючи лінію прослуховування listen = /var/run/php5-fpm.sock, а потім використовуючи лінію @ThomasW. згаданий.
Powerlord

@Powerlord Налаштування за замовчуванням NGINX має обидві лінії та пояснює різницю між двома, а не змінювати спосіб запуску PHP, ви можете просто змінити конфігураційну лінію в NGINX швидше, і все працює.
Thomas Ward

@ThomasW. Опис обох рядків у налаштуваннях за замовчуванням NGINX також помиляється в 12.04. php5-fpm вимагає першого методу завдяки тому, як php5-fpm налаштований у 12.04. Він не змінився на другий метод до 12.10. Щоб змусити php5-fpm працювати з nginx, як це задокументовано, ви повинні змінити www.conf fpm, як зазначено в моєму попередньому повідомленні.
Powerlord

@Powerlord Ви маєте рацію, це проблема, яку можна усунути, змінивши документацію у конфігураційному файлі за замовчуванням. Подивіться цю помилку, яку я створив з цього питання . У мене ще не було можливості запропонувати виправлення.
Thomas Ward

1
Це не працює для мене на ubuntu 14.04. nginx каже: "Виникла помилка. Сторінку, яку ви шукаєте, не знайдено", що робити?
user3459110

46

EDIT: Як вказував Метт Браун, вас може зацікавити ця остання публікація:
Як встановити 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.


3
Дякую за це Ось ще один корисний посилання: digitalocean.com/community/tutorials / ... . І зауважте, що якщо ви хочете встановити MySQL, вам також потрібно буде запустити apt-get install php5-mysql(крім встановлення самого MySQL).
Метт Браун

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.