В последнее время стал очень сильно популярен вебсервер nginx. Выгода заключается в том, что он более легкий, и позволяет легко выносить различные атаки на нагрузку. nginx установлен на таких проектах как vkontakte.ru и rambler.ru (для второго он собственно и разрабатывался) Минус заключается в том, что он не сильно документирован, а мануалы найденные в интернетах неполные, и приходится некоторые моменты додумывать самому. Существует несколько способов прицепить php к nginx: apache2 в качестве прокси сервера, fastcgi-php. Мы рассмотрим второй способ, т.к. он является более кошерный с моей точки зрения. Установка рассматривается для debian подобных систем (debian, ubuntu).
1. Установка требуемых пакетов.
Для начала поставим из репозитария nginx, php5, php5-cgi, lighttpd:
Код:
apt-get install nginx, php5, php5-cgi, lighttpd
lighttpd нам понадобится только для того, чтобы запускать fastcgi. Есть отдельные скрипты для его запуска, но ни один у меня не заработал, а запущенный php5-cgi руками постоянно падал
Итак, нужные пакеты поставились, и теперь уберем lighttpd из автозагрузки и потушим его:
2. Запуск fastcgi-php
К чему мы собственно и подбирались. spawn-fcgi будет слушать localhost на порту 9000. Для его запуска используем следующее колдунство:
Это можно запихнуть в файл, или автозагрузку, или вбивать каждый раз в консоль руками после перезагруки машины, это уже додумаете сами на сколько фантазии хватит
3. Настройка php.
Проста до безобразия. Ищем файл /etc/php5/cgi/php.ini, открываем его через любой доступный текстовый редактор, находим в нем подобие строки
Код:
; cgi.fix_pathinfo = 0
и превращаем её в
Код:
cgi.fix_pathinfo = 1
4. Настройка nginx
Если у вас доступ к серверу идет по ип адресу, или всего 1 домен, то для прицепки php достаточно отредактировать файл /etc/nginx/sites-available/default
Открываем его через текстовый редактор, и ищем закоментированную секцию location ~ \.php$ { и разкоментируем её.
Делаем /etc/init.d/nginx restart, создаем в папке с файлами сайта файл index.php, в него помещаем следующий текст:
Код:
<?php phpinfo(); ?>
Открываем [Ссылки могут видеть только зарегистрированные пользователи. ]. Если вы увидели информацию о системе php, то значит все зергуд, и можно смело лить сайт/радостно прыгать по комнате/пить пиво/etc. Если увидели что-то духе ошибки 502, значит fastcgi-php не запустился, и ещё раз перечитываем мануал, и смотрим что забыли.