Вход:  Пароль:  
FreeSource: Статьи/PhpFastCGI ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

PHP FastCGI

Вступление


Данная заметка лишь для того, чтобы все стали обращать внимание на пакеты, которые есть в Сизифе (или обратили внимание на их необычные свойства). Итак, кажется я уже жаловался в Сизифе на притеснение cgi версии php и о том, что это вполне себе engine для рендеринга. К частью, скоро в Сизиф будет залит новый php с починенным fcgi и все станет намного лучше.


Итак, что мы будем делать. Мы будем делать web сервер без apache. Почему? Ну во-первых, он не всегда нужен, а во-вторых он плохо работает с fcgi приложениями (да да, все хаки в sapi/cgi именно для mod_fcgi ;) Кроме того, в Сизифе уже давно есть альтернатива – это nginx. Это просто радость для параноидальных и рукастых hostmaster'ов. Кроме того, оно умеет работать с Fast CGI? (например с php-cgi c поддержкой fastcgi) или как frontend proxy для медленного backend'а (например httpd-perl).


Поехали. Наша цель – nginx php-cgi imp (типа будем им читать почту вместо thun
1000
derbird ;)

Подготовка


Ждем нового php-cgi или исправляем существующий. Что нужно поправить в существующем:


1) заменить старые CFLAGS на новые вида export CFLAGS="%optflags -DPHP_FASTCGI -DDEBUG_FASTCGI"


2) добавить в configure параметры --enable-discard-path и --enable-force-cgi-redirect. Все это превратит php-cgi в полноценный Fast CGI? сервер, а не в жалкую перделку для apache.


3) Добавить в php.ini.cgi.alt строку cgi.fix_pathinfo=1. Для чего – см. 2)


Ставим nginx


Теперь самое веселое – нам нужно самостоятельно чем-то запускать собранный php-cgi. Для этих целей все рекомендуют использовать spawn-fcgi из пакета lighttpd, фиг с ним, будем использовать его. Но тут есть одна трабла – конечно, можно spawn'ить его руками (через .sh обвязку вида spawn-php.sh из того же lighttpd), но это некошерно. Поэтому я маленько подхачил spawn-fcgi, чтобы он умел делать pidfile. Патчик есть тут – http://lakostis.elektrostal.ru/patches/spawn-fcgi.c-pidfile.diff Далее уже дело техники, и вот, у нас есть init.d запускалка fcgi приложений – http://lakostis.elektrostal.ru/src/spawn-fcgi.init и ее конфигурационный файл http://lakostis.elektrostal.ru/src/spawn-fcgi.sysconfig (кладется в /etc/sysconfig под именем spawn-fcgi).

Настройка


Ссылки

Страницы, ссылающиеся на данную: Статьи/TracNginx


 
Файлов нет. [Показать файлы/форму]
Много комментариев (5). [Показать комментарии/форму]