PHP-FPM — патч к PHP, предоставляющие альтернативный интерфейс FastCGI. Обычно используется с nginx в проектах с высокими нагрузками или дефицитом ресурсов. Для удобной и упрощенной инсталляции мы собрали PHP-FPM в пакет для Debian 5 Lenny. Последнюю пару недель тестировали и тюнили, сейчас выложили в публичный доступ. Над пакетами в поте лица трудился viliar, которому дружно направляем за это благодарности и карму. Багрепорты и замечания приветствуются, лучше комментами к посту.

Инструкция по установке



Устанавливаем PHP-FPM с nginx на минимальную инсталляцию Debian 5.

Настройка нового репозитория

Собранные пакеты лежат в репозитории ftp-pub.truevds.ru/pub/debian. Добавляем репозиторий в конфигурацию apt — создаем файл /etc/apt/sources.list.d/truevds.list с содержимым:

deb ftp://ftp-pub.truevds.ru/pub/debian lenny main
deb-src ftp://ftp-pub.truevds.ru/pub/debian lenny main


Импортируем ключ, которым подписываются пакеты:

apt-key adv --keyserver pgp.mit.edu --recv-key 44BEB7BE

или

wget -O - ftp://ftp-pub.truevds.ru/pub/GPG_TRUEVDS_RU.KEY | apt-key add -


Для того, чтобы при апгрейде системы не переустанавливался PHP без патча, пропишем приоритет в конфгурационном файле /etc/apt/preferences, добавим:

Package: *
Pin: release a=stable
Pin-Priority: 900
 
Package: php php*
Pin: origin ftp-pub.truevds.ru
Pin-Priority: 999


Обновляем индексные файлы архивов:

apt-get update


Установка и конфигурирование

Устанавливаем PHP5 и nginx:

apt-get install php5-cgi nginx

Редактируем /etc/nginx/sites-enabled/default — добавляет в секцию location / привязку расширения .php к php-fpm:

              location ~ \.php$ {
                      fastcgi_pass   unix:/var/run/php-fpm/default.socket;
                      include fastcgi_params;
                      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
              }

Стартуем php-fpm и nginx:

/etc/init.d/php-fpm start
/etc/init.d/nginx start

Система готова к работе.

Проверка работоспособности

Каталогом сервера по умолчанию для nginx является /var/www/nginx-default. Для проверки корректности работы php создаем в нем файл с phpinfo():

echo '<?phpinfo()?>' > /var/www/nginx-default/phpinfo.php

и открываем в браузере http://IP-адрес_сервера/phpinfo.php. Получаем:



Ubuntu


Для Ubuntu 9.10 Karmic есть собранные пакеты от Dreamcat4. Собственно, инструкция по установке PHP-FPM оттуда:

wget https://launchpad.net/~dreamcat4/+archive/ppa/+files/php5-common_5.2.10.dfsg.1-2ubuntu3~pre2_i386.deb
dpkg --install php5-common_5.2.10.dfsg.1-2ubuntu3~pre2_i386.deb

wget https://launchpad.net/~dreamcat4/+archive/ppa/+files/php5-fpm_5.2.10.dfsg.1-2ubuntu3~pre2_i386.deb
dkpg --install php5-fpm_5.2.10.dfsg.1-2ubuntu3~pre2_i386.deb


UPD (2009-12-17) Линки кривые. Репозиторий:
deb http://ppa.launchpad.net/dreamcat4/ppa/ubuntu karmic main 
deb-src http://ppa.launchpad.net/dreamcat4/ppa/ubuntu karmic main 

Или качать напрямую с ppa.launchpad.net/dreamcat4/ppa/ubuntu/pool/main/p/php5

Потрогать своими руками


С этим пакетом мы собрали специальный пресет Оптимизированный PHP, который представляет из себя собранные и настроенные для работы nginx, php-fpm, eaccelerator, mysql и memcached. Для запуска сайта достаточно залить его по FTP. Сейчас этот пресет в статусе беты.

Под его тестирование зарезервировано оборудования и мы можем предоставить бесплатно на месяц несколько десятков серверов c 256 Mb RAM / 480 MHz CPU с этим пресетом. Можно посмотреть, как будут себя вести ваши сайты на связке nginx + php-fpm, можно просто посмотреть, что представляет из себя nginx с php-fpm. Предложение только для хабраюзеров с положительной кармой. В одни руки — один сервер. Заявки на сервер — личным сообщением со своим email. В обмен нужны репорты по различным недочетам, непонятностям, скорости, ну и общие описания ощущений.