Мой Blog или что интересно web разработчику

Debian Squeeze 6 and php 5.2 and php-fpm

Задача — установить на компьютер с Debian-Ubuntu системой php 5.2 с демоном php-fpm (тут — про 64 разряда). Тут и далее — мое решение.

Лирическое отступление. В интернете десятки советов, самые распространенные из которых — собрать php самому.
Не спорю, выход. Но при полном отсутствии опыта решения проблем компиляции (как у меня) мне этот вариант не подошел.
Конечно, основная проблема — неустановленные зависимости, но иногда бывает такая магия, что проще отказатся от 5.2.

Следующий совет: бери ссылку на репозиторий, фиксируй версии пакетов для php и будет тебе счастье.
На практике — все репо дохлые. Или мне так везло на момент написания статьи. Парочку оказалис живыми, но вот fpm демона в них не оказалось.

И наконец третье, самое неправильное, но все-таки работающее решение. Установка deb пакетов нужных версий.
Конечно, никакой красоты при обновлении системы, возможные проблемы с зависимостями ( если что-то придется доставлять ), но по крайней мере — рабочий вариант.

Итак, манипуляции с зависимостями. Для начала, необходимо установить на систему все, чего тебе будет не хватать. Для этого набираем в консоли магическую команду

apt-cache search php5

или

aptitude search php5

Я предпочитаю aptitude, так что буду давать примеры с ним. Далее руками, через пробел (копипастом) заполняем список

aptitude install php5-tidy php5-gd ...

И ставим все с версией php 5.3. Стараемся ничего не забыть. Лучше сейчас поставить что-то лишнее. Но все подряд тоже, ни в коем случае, не ставим.
Это необходимо для установки всех библиотек по зависимостям.

Получаем полностью рабочее свое окружение, только с завышенной версией php. Узнаем, что же у нас непосредственно установлено из 5.3

dpkg -l|grep php

В результате должен получится список типа

ii  libapache2-mod-php5             5.3.15-1~dotdeb.0            server-side, HTML-embedded scripting language (Apache 2 module)
ii  php-pear                        5.3.15-1~dotdeb.0            PEAR - PHP Extension and Application Repository
ii  php5                            5.3.15-1~dotdeb.0            server-side, HTML-embedded scripting language (metapackage)
ii  php5-cgi                        5.3.15-1~dotdeb.0            server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                        5.3.15-1~dotdeb.0            command-line interpreter for the php5 scripting language
ii  php5-common                     5.3.15-1~dotdeb.0            Common files for packages built from the php5 source
ii  php5-curl                       5.3.15-1~dotdeb.0            CURL module for php5
ii  php5-dev                        5.3.15-1~dotdeb.0            Files for PHP5 module development
ii  php5-fpm                        5.3.15-1~dotdeb.0            server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php5-gd                         5.3.15-1~dotdeb.0            GD module for php5
ii  php5-geoip                      5.3.15-1~dotdeb.0            geoip module for php5
ii  php5-memcache                   5.3.15-1~dotdeb.0            memcache module for php5
ii  php5-mysql                      5.3.15-1~dotdeb.0            MySQL module for php5
ii  php5-suhosin                    5.3.15-1~dotdeb.0            suhosin module for php5

Теперь нам нужно снести эти пакеты, и поставить свои. из 5.2 упаковки.

aptitude purge libapache2-mod-php5 php5 php-pear ...

И наконец — где взять 5.2 пакеты? Можно у меня в конце поста. Я, в свою очередь, взял их с какого-то репозитория убунты. Они были собраны для ubuntu, но на дебиан вполне подошли.
Минус — я забэкапил для 64 разрядной системы. Для 32 надо где-то искать отдельно.
Потом этот репозиторий тоже умер, по крайней мере я его не нашел.

Итак, качаем отсюда deb пакеты. Особо хочу отметить наличие пакета для Mongo. Ранее собирал драйвер руками и это было нечто.

wget http://mudruy.com/wp-content/uploads/2012/08/deb/libapache2-mod-php5_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/libapache2-mod-php5filter_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5_5.2.10.dfsg.1-2ubuntu3~pre18_all.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-cgi_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-cli_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-common_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-curl_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-dev_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-fpm_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-gd_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-ldap_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-mongodb_5.2.13-1.fortrabbit-1_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-mysql_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-snmp_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-tidy_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php5-xmlrpc_5.2.10.dfsg.1-2ubuntu3~pre18_amd64.deb;
wget http://mudruy.com/wp-content/uploads/2012/08/deb/php-pear_5.2.10.dfsg.1-2ubuntu3~pre18_all.deb;

потом устанавливаем их(если цель — установка ngnix + php-fpm демон, то апачевские пакеты не ставим.)

dpkg -i *.deb

В результате имеем

ii  php-pear                            5.2.10.dfsg.1-2ubuntu3~pre18 PEAR - PHP Extension and Application Repository
ii  php5                                5.2.10.dfsg.1-2ubuntu3~pre18 server-side, HTML-embedded scripting language (metapackage)
ii  php5-cgi                            5.2.10.dfsg.1-2ubuntu3~pre18 server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                            5.2.10.dfsg.1-2ubuntu3~pre18 command-line interpreter for the php5 scripting language
ii  php5-common                         5.2.10.dfsg.1-2ubuntu3~pre18 Common files for packages built from the php5 source
ii  php5-curl                           5.2.10.dfsg.1-2ubuntu3~pre18 CURL module for php5
ii  php5-dev                            5.2.10.dfsg.1-2ubuntu3~pre18 Files for PHP5 module development
ii  php5-fpm                            5.2.10.dfsg.1-2ubuntu3~pre18 server-side, HTML-embedded scripting language (FPM binary)
ii  php5-gd                             5.2.10.dfsg.1-2ubuntu3~pre18 GD module for php5
ii  php5-ldap                           5.2.10.dfsg.1-2ubuntu3~pre18 LDAP module for php5
ii  php5-mongodb                        5.2.13-1.fortrabbit-1        MongoDB PHP5 Client
ii  php5-mysql                          5.2.10.dfsg.1-2ubuntu3~pre18 MySQL module for php5
ii  php5-snmp                           5.2.10.dfsg.1-2ubuntu3~pre18 SNMP module for php5
ii  php5-tidy                           5.2.10.dfsg.1-2ubuntu3~pre18 tidy module for php5
ii  php5-xmlrpc                         5.2.10.dfsg.1-2ubuntu3~pre18 XML-RPC module for php5

И работающий php-fpm демон! Не забываем что в дебиане для fpm отдельная инишка:

aptitude install mc;mcedit /etc/php5/fpm/php.ini 

После каждого изменения которой необходимо рестартовать демон

/etc/init.d/php5-fpm restart

Также можно заставить fpm работать через сокет. Теоретически — это быстрее. Ищем файл

mcedit /etc/php5/fpm/php5-fpm.conf

Ищем там слова типа

<value name="listen_address">127.0.0.1:9000</value>

и изменяем их на

<value name="listen_address">/var/run/php5-fpm.sock</value>

затем

/etc/init.d/php5-fpm restart

И если все завелось — вперед.

Об авторе mudruy

Занимаюсь WEB разработкой с 2007. Оновной язык PHP. Плотно работал с Agile методологиями, первый толчок под руководством - http://www.scrumguides.com/search/label/krivitsky . Интересуюсь адаптацией систем под высокие нагрузки. Есть широкий опыт внедрения автоматического тестирования. Хочу чтобы в любой компании Симферополя хотелось работать.

Все посты автора mudruy

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

  • RSS
  • Gmail
  • LinkedIn
  • Skype
e-mail: mudruy@mail.ru
skype: mudruy
Copyright © 2012 / iMiracle
Powered by WordPress