Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров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-форм, аплодов, оптимизировал код, реализовал хеш состояний воркеров.
Теги:
Хабы:
Всего голосов 80: ↑74 и ↓6+68
Комментарии197

Публикации

Истории

Работа

PHP программист
119 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн