Pull to refresh

phpFastCGI: настоящий FastCGI для PHP

Reading time 2 min
Views 10K
— Добрый день. Вы наверняка уже наслышаны о протоколе FastCGI, он связывает Веб-сервер и сервер приложений, его реализации есть во множестве языков. Однако, в PHP реализация FastCGI до недавних пор была представлена лишь патчем PHP-FPM, который фактически не давал прироста производительности перед mod_php, поскольку он, вопреки идеологии FastCGI, перезапускает скрипт каждый раз заново. Идеология FastCGI подразумевает единовременную инициализацию приложения при запуске (подгрузку нужных классов, соединение с базой данных, и т.д.), и выполнение запросов один за другим.
phpFastCGI — правильная реализация FastCGI, которая позволяет добиться немыслимой производительности.
Разработка идёт очень активно, и новые фичи появляются очень быстро.
Страничка проекта — phpfastcgi.googlecode.com
Пример простого приложения — code.google.com/p/phpfastcgi/source/browse/trunk/example.php
В действии пример можно увидеть здесь — ya-tv.ru/phpfastcgid (может переодически лежать, это нормально, идёт тестирование). Страничка-пример легко выдерживает 5,000 запросов в секунду всего на 20-ти воркерах.
Проект пока в стадии тестирования и живёт только в SVN.
Приглашаю всех заинтересовавшихся принять в нем посильное участие!
$ svn checkout phpfastcgi.googlecode.com/svn/trunk phpfastcgi

Число фич довольно велико, среди прочего поддерживается chroot, плавное обновление рабочего скрипта (ручное и автоматическое), плавный перезапуск (ручное и по достижению максимального кол-ва запросов, предела памяти, времени простоя). Среди прочих бенефитов: теперь вам не придется думать о парсинге %uXXXX в параметрах запроса, это происходит автоматически.
В скором времени будет расширена документация и будет реализован apache-like метод запуска воркеров.

Должен заметить, что Windows-платформы никак не поддерживаются и для работы требуется PHP >= 5.3 собранный с '--enable-pcntl' '--enable-shmop' '--enable-sockets'.

Не судите строго, ведётся разработка, это пока не stable релиз.
Спасибо за внимание!

UPD:
Реализовал поддержку multipart-форм, аплодов, оптимизировал код, реализовал хеш состояний воркеров.
Tags:
Hubs:
+68
Comments 197
Comments Comments 197

Articles