Настройка php-fpm в шаблонизаторе ISP 5, в режиме nginx + php-fpm

Настройка работы сайтов на nginx + php-fpm с помощью шаблонизатора ISP 5

Чтобы написать одно название пришлось вспотеть, так как непросто его сформулировать. Как вы поняли основная суть статьи, рассказать для вас и запомнить для себя, как настроить поддержку php-fpm в работе сайтов, если у вас установлен ISP 5 manager и вы хотите, чтобы ваши сайты правильно обрабатывались конфигурацией nginx. Тема достаточно часто поднимается в вопросах и статьях, но в итоге я не смог найти решения, которое бы просто решало этот вопрос. Я даже расскажу предисторию этого, как всё складывалось изначально у меня.

Описание проблемы с nginx + php-fpm

У меня в работе сервера, где установлены и Centos и Debian. На каждом сервере есть созданные пользователи, которые имеют выбор работать в режиме apache + nginx, или cgi +nginx, или php-fpm + nginx. В итоге получается, что при переключении на режим php-fpm сайты работают только с главной страницей, при переходе на любую внутреннюю страницу возникает ошибка 502 или 404, то есть сайт конфигурация nginx + php-fpm не обрабатывается правильно. Это была проблема номер один.

Вторая проблема появилась после того, как я со специалистами пытался решить первую. Следует понимать, что php-fpm обрабатывает php содержимое иначе и не учитывает .htaccess, поэтому в папке vhosts для site.conf под nginx необходимо добавлять обработку в виде строки:

Однако тут снова проблема, делать это вручную неудобно, представьте например 50-100 сайтов, которые добавляются, убираются, переключаются и надо отслеживать, чтобы в каждом конфиге была строка добавлена вручную try_files $uri $uri/ /index.php?q=$uri&$args;, тем более с учетом того, что это делать может только root. Надо было решать оба вопроса.

Первые попытки решить натолкнулись на то, что специалисты заявили: Это нельзя сделать автоматически. То есть дилемма такова, что только вручную. Но повезло по мере попыток обговорить этот вопрос с одним более понятливым специалистов, который реализовал ту идею, что была в понимании как сделать. Надо было внедрить в шаблонизатор ISP строчку для подключения режиме конфига в php-fpm. Мне до сих пор непонятно, почему по сути простое решение стало для многих такой трудной задачей. И решение появилось.

Для начала заходим в папку шаблонизаторов ISP manager 5 (неважно бизнес версия у вас или Lite), например в Centos 7.3 правильная папка такая: /localhost/usr/local/mgr5/etc/templates/default/

Далее находим в этой папке файлы шаблонизаторы для настройки конфигурации nginx в папку vhosts. Там будет 2 файла: nginx-vhosts-ssl.template и nginx-vhosts.template. Разница в обработке с ssl сертификатом и без него. Вот содержимое этих файлов, после добавления

 

Шаблонизатор nginx-vhosts-ssl.template

 

Шаблонизатор nginx  — nginx-vhosts.template

 

Строка была добавлена перед обработкой php то есть тут:

После этого сохраняем, делаем рестарт и проверяем. Для проверки я переключаю сайт на php-fpm и вижу что всё работает прекрасно.

Наверно есть более изящное и более глубокое решение. Я не считаю себя крупным специалистом в этом, однако передо мной стояли 2 задачи:

1. Работоспособность сайта при переключении в режим php-fpm в ISP 5
2. Автоматическая генерация правильного site.conf nginx при работе с доменом в режиме php-fpm

Обе задачи были решены. Надеюсь и вам этот способ пригодится. Да и скорость работы гораздо выше чем на apache или cgi.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

18 − 12 =

OK2WEB
OK2WEB
Более 12 лет занимаюсь разработкой и продвижением сайтов. Городские порталы, информационные и новостные сайты. Сейчас в основном разрабатываю интернет магазины и коммерческие сайты. Если у вас есть вопросы пишите, стараюсь оперативно ответить и помочь.

Прощай Юра Шатунов, мы любили твои песни

Даже трудно сказать когда я первый раз услышал песни Ласкового мая. В некотором роде они были настолько ясными для того возраста. Мне было лет 14 и конечно простые слова про любовь, жизнь, в исполнении мальчишки моего примерно возраста трогало и цепляло. Даже сейчас спустя...

Оптимизация графики в WordPress, отключаем лишние, сжатие, чистка размеров графики

Графика самый тяжелый элемент сайт Wordpress и поэтому правильный подход к их оптимизации очень важен. Это не сделать одной операцией, особенно если раньше вы не особо обращали на это внимание. Раздувание размеров сайта со временем становится проблемой, решать которую надо. Но как решить оптимально...

WordPress 6 изучаем что было добавлено, улучшения и дополнения

Поздоровайтесь с «Arturo» и новой версией WordPress 6.0, вдохновленными обладателем Грэмми джазовым музыкантом Артуро О'Фарриллом . Известный своим влиянием на современный латиноамериканский джаз, Артуро выпустил более 15 альбомов, охватывающих работу за пять десятилетий. Потратьте некоторое время на изучение WordPress 6.0, созданного, чтобы помочь вам раскрыть...

Нехватки памяти для работы сайта WordPress — увеличиваем память в конфиге сайта

Просматривая журналы работы сайта вы можете увидеть очень частую ошибку нехватки Wordpress. Обычно это этом пишет предупреждение: PHP Warning: Use of undefined constant ‘WP_MEMORY_LIMIT’ - assumed '‘WP_MEMORY_LIMIT’' (this will throw an Error in a future version of PHP) То есть Вы видите ошибку исчерпания...

Google консультирует что запросы и показы в поиске отличаются по цифрам

Адвокат Google по поиску Джон Мюллер говорит, что показы, которые ваш сайт получает по ключевому слову, не являются показателем объема поиска по этому ключевому слову. Об этом говорится в Twitter в ответ на вопрос о том, можно ли использовать данные о показах в Google Search...

Инструкция WordPress cron, запуск, управление, решение ошибок, основные параметры

WP-Cron выполняет определенные задачи для сайтов на WordPress. Название Cron происходит от системы Unix для планирования заданий, от одного раза в минуту до одного раза в год. Будь то плановое обслуживание или запланированные предупреждения, любая команда, которая может быть выполнена в Unix без вмешательства...