20 December 2011

uWSGI включает полноценную поддержку PHP

System administration
uWSGI logo

Сегодня появилась приятная новость о том, что отныне uWSGI сервер поддерживает PHP. Нет, на уровне GGI он поддерживал и раньше, но это не идёт ни в какое сравнение с поддержкой на уровне ядра самого uWSGI.

uWSGI

Для тех, кто по какой-то причине еще не использует этот удобный и стабильный сервер — краткая справка.

uWSGI — быстрый, удобный и, при этом, надежный WSGI-сервер.
  • Быстрый, потому что написан на C.
  • Удобный, потому что легко конфигурируется всеми мыслимыми и немыслимыми видами: .ini, yaml, json, XML или через переменные окружения.
  • Надежный (в оригинале это звучит self-healing), потому что имеет функцию самоуправления: если запрос длится дольше отведенного времени, то master-процесс завершит исполнение текущего worker'a, чтобы не забивать память (функционал носит говорящее название Harakiri mode).
Сборка PHP-плагина

Скачать исходники php, «связать» uwsgi исходники с ними и сконфигурировать среду окружения PHP:

ln -s /usr/src/uwsgi/plugins/php /usr/src/php/sapi/uwsgi
./buildconf --force
./configure --prefix=/opt/php --with-mysql --with-uwsgi=/usr/src/uwsgi

Затем собрать PHP традиционным make, make install.

Использование вместе с Nginx

В энджинксе обработка php-запросов описывается привычной (для связки с WSGI-приложениями через uWSGI) секцией:

location ~ .php$ {
            include uwsgi_params;
            uwsgi_modifier1 14;
            uwsgi_pass 127.0.0.1:3030;
        }

Запуск uWSGI

Пока поддержка PHP (в виде плагина) находится в состоянии альфы, никакой конфигурации плагина не требуется. А запустить сервер в режиме его использования можно так:

uwsgi --plugins php --master --socket :3030 --processes 4

Такими темпами можно будет скоро отказаться не только от Apache, но и ото всех FastCGI-php-fpm вместе взятыми.

Ссылки по теме

Запуск PHP-скриптов в uWSGI: projects.unbit.it/uwsgi/wiki/PHP
Подробнее о «Harakiri mode» в WiKi: projects.unbit.it/uwsgi/wiki
Tags:uwsgiphpnginxweb applicationsweb-разработкаадминистрирование
Hubs: System administration
+6
6.7k 28
Comments 8