Установка MySQL, PHP и PHP-FPM под Debian linux

Установка MySQL:

# apt-get install mysql-server-50
# apt-get install mysql-client-50

Скачиваем PHP и патч PHP-FPM (выбрать в списке » php-fpm-0.6~5.2.patch» или в командной строке wget http://launchpad.net/php-fpm/master/0.6/+download/php-fpm-0.6~5.2.patch).
Распаковка php из архива

bzip2 -cd php-5.2.11.tar.bz2 | tar xf -

Патчим php

# patch -d php-5.2.11 -p1 < php-fpm-0.6~5.2.patch

Тут возникли большие проблемы - после запуска ничего не выводит, но вроде выполняется. Оказалось - забыл "<" написать. Далее устанавливаем php

# cd php-5.2.11
# ./buildconf --force

Указываем конфигурационные параметры

./configure --enable-fastcgi --with-fpm --with-mcrypt --with-zlib --enable-mbstring --with-mysql --with-mysql-sock --with-mysqli=shared,/usr/bin/mysql_config --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --without-sqlite --disable-pdo --disable-reflection --disable-embedded-mysqli 

Пришлось повозиться с libxml, zlib, libjpeg, libpng, libmcrypt, mysql unix socket

# apt-get install libxml2-dev
# apt-get install zlib-bin
# apt-get install zlib1g-dev
# apt-get install libjpeg-dev
# apt-get install libpng-dev
# apt-get install libmcrypt-dev
# apt-get install libmysqlclient15-dev  (после этого появляется директория /usr/bin/mysql_config)

Далее возимся с libevent (т.к. пишет Libevent minimum version >= 1.4.3 could not be found.):

# apt-get remove --purge libevent1 //удаляем старый

Потом скачиваем новый libevent и устанавливаем:

# ./configure
# make && make install

))
(можно посмотреть эту статью)
В итоге всё ставится в /usr/local/lib/php/ (/usr/local/bin/ — CLI-бинарник).
Осталось прописать php-fpm в автозагрузку (я обошёлся без создания символической ссылки):

# ln -s /usr/local/bin/php-fpm /etc/init.d/php-fpm
# /usr/sbin/update-rc.d -f php-fpm defaults

(см. Создание символической ссылки в linux).
Если при вводе php-fpm start ругается [ERROR] fpm_unix_conf_wp(), line 114: cannot get gid for group ‘nobody’, pool ‘default’, то нужно попробовать создать группу ‘nobody’:

# groupadd nobody

Вроде бы всё.
Файл конфига — в /etc/php-fpm.conf , логи пишутся в /var/log/php-fpm.log, айди родительского процесса задано здесь — /var/run/php-fpm.pid. Сам php установлен здесь — /usr/local/include/php.

Полезные ссылки по теме:
официальная wiki проекта
faq по сборке php на debian
наткнулся на статью Установка PHP-FPM на Debian из пакетов — может кому понадобится
ещё 3 фака по установке и настройке связки php-fpm + nginx — 1 и 2, 3 (для freeBSD).

Кстати, долго выводилась надпись после того, как всё конфигурировалось:
«Thank you for using PHP.
Notice: Following unknown configure options were used:
—with-fpm
»
Дело было в забытом ключе patch -d php-5.2.11 -p1 < php-fpm-0.6~5.2.patch

3 комментария so far.

  1. Spasibo!

    Running «addgroup nobody» does indeed fix the error «cannot get gid for group ‘nobody’, pool ‘default'»

    Are you using nginx?

  2. bullgare:
    Yes, all this stuff is meant to be run with nginx.
  3. OZ:
    Спасибо!
    Ошибку

    Cannot find MySQL header files under /usr/lib. Note that the MySQL client library is not bundled anymore!

    исправил с помощью подсказанного Вами

    apt-get install libmysqlclient15-dev

LEAVE A COMMENT