[Entware] nginx + php-fpm (установка и настройка)

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1039
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 май 2016, 15:46

Эта тема является продолжением [Entware] nginx + php
Использование php-fpm - предпочтительный способ настройки связки nginx+php. Подробнее о fpm читаем тут и тут
FPM (Менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями ....PHP-FPM используется в основном в связке с Nginx

Предполагается, что у Вас установлена система пакетов Entware, версия nginx в репозитории 1.9.13-1a или старше, а версия php 5.6.19-2a или старше.
Краткая инструкция по настройке nginx с php в Entware

1. Установим nginx и php5-fastcgi

Код: Выделить всё

opkg update
opkg install nginx php5-fpm

2. Отредактируем конфиг nginx - файл /opt/etc/nginx/nginx.conf.

находим строку `index index.html index.htm;` и добавляем в нее `index index.php index.html index.htm;`
находим строку `listen 80;` и заменим 80 на тот незанятый порт, на котором у нас будет "висеть" nginx (например, 88).
находим группу строк, начинающуюся с `#location ~ \.php$ {` и удаляем комментарии. Изменяем при этом строку `root...`:

Код: Выделить всё

        location ~ \.php$ {
            root           /opt/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

3. Создаем файл /opt/share/nginx/html/info.php

Код: Выделить всё

<?php phpinfo(); ?>

4. Стартуем сервисы

Код: Выделить всё

 /opt/etc/init.d/S79php-fpm start
 /opt/etc/init.d/S80nginx start
 

Проверяем работу браузером, заходим по адресу <url устройства>:88/info.php
Если все работает - настройка окончена. Если получаем ошибку `No input file specified`, то редактируем файл /opt/etc/nginx/fastcgi_params и удаляем в нем строку `fastcgi_param SCRIPT_NAME $fastcgi_script_name;`. После перезапуска nginx все должно заработать.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1039
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 май 2016, 15:53

Замена TCP socket на UNIX socket
В предыдущем сообщении для связи nginx и php использовался TCP сокет. Заменим его на unix сокет. Для этого отредактируем файл `/opt/etc/nginx/nginx.conf` и заменим строку `fastcgi_pass 127.0.0.1:9000;` на 'fastcgi_pass unix:/opt/var/run/php-fcgi.sock;`. В файле `/opt/etc/php5-fpm.d/www.conf` заменим `listen = 127.0.0.1:9000` на `listen = /opt/var/run/php-fcgi.sock`. Кроме этого может потребоваться раскоментировать строки
;listen.owner = ...`, `;listen.group = ...` и прописать там nobody и группу, в которую входит nobody.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 0 посетителей :: 0 зарегистрированных, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей