Встановлення Nginx 1.4.x на систему Unix
Ця документація описує процес встановлення та налаштування PHP з PHP-FPM для Nginx 1.4.x HTTP сервера.
Даний посібник має на увазі, що ви зібрали Nginx з вихідних кодів, отже, всі бінарні файли та файли конфігурації розташовуються в /usr/local/nginx
. Якщо ні, і ви отримали Nginx іншим способом, тоді, будь ласка, зверніться до » Nginx Wiki, щоб перекласти цей посібник для вашої установки.
Цей посібник охоплює ази налаштування Nginx сервера, для обробки PHP додатків та відображення їх на порту 80. Рекомендується вивчити документацію Nginx і PHP-FPM, якщо ви хочете оптимізувати вашу установку за рамками даної документації.
Будь ласка, зверніть увагу, що в цій документації номери версій були замінені на 'x', щоб ця документація залишалася коректною в майбутньому. Будь ласка, замініть 'x' на необхідний номер версії.
-
Рекомендується відвідати» сторінку встановленняна Nginx Wiki, для інформації про отримання та встановлення Nginx.
-
Отримання та розпакування вихідні коди PHP:
tar zxf php-x.x.x
-
Налаштування та збирання PHP. У цьому розділі описано налаштування та збирання PHP з вихідних кодів. Запустіть ./configure --help, щоб отримати список доступних опцій. У нашому прикладі ми зробимо прості налаштування з PHP-FPM та підтримкою MySQLi.
cd ../php-x.x.x ./configure --enable-fpm --with-mysqli make sudo make install
-
Переміщення файлів налаштування в потрібні директорії
cp php.ini-development /usr/local/php/php.ini cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf cp sapi/fpm/php-fpm /usr/local/bin
-
Важливо, що ми забороняємо Nginx від надсилати запити до бекенду PHP-FPM, якщо файл не існує, що допомагає уникнути атаки ін'єкції скрипта.
Ми можемо виправити це шляхом встановлення директивиcgi.fix_pathinfoрівною у нашому php.ini файлі.
Редагування php.ini:
vim /usr/local/php/php.ini
Знайдіть опцію
cgi.fix_pathinfo=
і змініть її так:cgi.fix_pathinfo=0
-
php-fpm.conf повинен бути модифікований, щоб точно визначити, що php-fpm повинен працювати під користувачем www-data та групою www-data до того, як ми запустимо сервіс:
vim /usr/local/etc/php-fpm.d/www.conf
Знайдіть та зміните наступне:
; Unix user/group of processes ; Примітка: Користувач є обов'язковим. Якщо групу не встановлено, ; то буде використано стандартну групу користувача. user = www-data group = www-data
Тепер можна запускати сервіс php-fpm:
/usr/local/bin/php-fpm
Більше в цьому посібнику ми не будемо стосуватися налаштування php-fpm. Якщо вам необхідно зробити додаткові налаштування - зверніться до документації php-fpm.
-
Тепер Nginx має бути налаштований на підтримку виконання PHP:
vim /usr/local/nginx/conf/nginx.conf
Змініть блок "location", заданий за умовчанням, так, щоб можна було обробляти .php файли:
location / { root html; index index.php index.md index.htm; }
Наступний крок - переконатися, що файли .php відправляються в бекенд PHP-FPM. Введіть наступне:
location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
Перезапустіть Nginx.
sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx
-
Створіть тестовий файл
rm /usr/local/nginx/html/index.md echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
Тепер відкрийте у браузеріhttp://localhost. Відобразиться інформація phpinfo().
Дотримуючись вищезгаданих кроків, ви отримаєте робочий Nginx сервер з підтримкою PHP як модуля FPM
SAPI
. Звичайно, доступна велика кількість опцій налаштувань для Nginx та PHP. Для більш детальної інформації наберіть ./configure --help у відповідному дереві вихідних кодів.