Сюда обычно чего-то пишут. Но меня ломает...

Полезные статьи

Поскольку с википедии почикали крайне полезные для меня статьи, пришлось их быстренько дернуть из гуглового кэша. Это:

Установка nginx на Centos/Fedora/Debian
Установка php-fpm на Centos/Fedora/Debian
Пример конфигурации PHP
Пример конфигурации php-fpm

Странички в кодировке 1251, менять надо ручками.

Автор статей Roxis, большой ему респект.

Еще один нужный вещь, который я не успел выдернуть (а именно конфиг нгиныкса) лежит тут. Хотя впрочем его можно собрать и по манам с сайта Игоря Сысоева. Но удобнее иметь готовый, правда?

Nginx + Php-fpm на Centos

Этот пост больше для себя, чтобы не забыть, но кому то он может тоже оказаться полезным.

Задача стояла собрать на недорогом VDS конструкцию, не сильно потребляющую память под довольно наргуженную веб-приладу. Апач отпадал даже на бэкенде потому как очень уж он прожорлив. К тому же, в силу специфики моей прилады в бэкенде он тоже разрастался, хотя и не так сильно.

Поэтому было принято решение поднять чистый Nginx. Сам Nginx PHP не поддерживает, но позволяет подцепить его как cgi, что собственно и было реализовано.

Нужно сказать, что такая связка в зависимости от типа приложения (CMS) может давать где-то от 1.5 до 5 раз экономии памяти по сравнению с апачем и примерно во столько же раз быстрее работать. Но есть ограничения - большинство CMS по сути писаны под апач и их установка на “неродной” сервер требует некоторых танцев с бубном. Плюс Nginx не поддерживает некоторые фичи, которые есть в апаче (например .htaccess), опять же нужны ручные правки конфига.  Поэтому область применения “чистого” Nginx ограничена и большее распространение получила связка Nginx-фронтенд <-> Apache-бэкенд. Как ставить  ее на Cpanel/WHM я уже как то писал.

Тем не менее, бенифиты конфигурации очень значительны. Как же она собирается.

В качестве базовых были взяты две очень толковых статьи - эта и эта.

Для начала сносим апач, он нам больше не понадобится

rpm -e httpd –nodeps

тем же образом другие ненужные вам пакеты, я например вынес mysql, почту, спамассасин и еще какой то мусор.

Заводим юзера и группу от которой будет работать веб-сервер

groupadd www-data
useradd -g www-data www-data

Ставим nginx  по этому мануалу. Если вам нужен перл, надо не забыть добавить соответствующий ключ при сборке.
Подкладываем этот
конфиг в /usr/nginx/conf/nginx.conf
Меняем юзера nobody на www-data
Проверяем (service nginx start и смотрим на страничку “Welcome to Nginx”) - работает? Тогда раскомментируем кусок конфига про  php и идем дальше.

Теперь по этому мануалу тупым копи-пастом ничего не выдумывая ставим php-fpm.
Поставили - подкладываем конфиги php.ini и php-fpm.conf в /etc
В конфиге  php-fpm.conf меняем юзера nobody на www-data,  увеличиваем max_children (значение подбирается экспериментально под имеющуюся память, у меня 100). Если прилада имеет свойство течь (кривые скрипты и пр.), уменьшаем max_requests до сотни-другой.

Я также в обеих конфигах поменял listen address c /tmp/php-fpm.sock на 127.0.0.1:9000, на unix сокете почему-то не заработало, разбираться было лень.

Вот пожалуй и все.