January 24, 2013

Как скомпилировать и установить php-5.4.x на Debian OS (squeeze)

Недавно я попытался установить последнюю версию PHP 5.4.x (на момент написания статьи это было 5.4.10) на мою стабильную ОС Debian OS (v6.0-squeeze-32bit).

Как вы возможно знаете, стабильная версия Debian имеет по-умолчанию в своих репозиториях версию PHP-5.3.4. Я же захотел использовать встроенный в PHP-5.4 веб-сервер.

Тогда мне казалось, что установка PHP-5.4 будет более быстрым процессом, чем конфигурированию виртуального хоста Apache. Да, я настолько ленив! 🙂

Что ж, забегая наберед, должен сообщить, что вся процедура заняла у меня 2-2.5 часа времени пока я смог запустить свои скрипты.

По правде говоря, то был первый раз когда я компилировал PHP из исходников, зато теперь я чувствую, что получил замечательный опыт в этом деле!

Ладно, давайте пройдемся по процессу пошагово.

Во-первых, вам может понадобиться установка Linux библиотеки «libxml2-dev» (хотя я не помню зачем..)

А, вспомнил! Похоже, что вы не сможет сконфигурировать PHP установщик без этой библиотеки!

sudo apt-get install libxml2-dev

Также я уверен, что большинству веб-разработчиков прийдется работать с БД из скриптов (скажем, MySQL), а в частности с расширением PDO.

Поэтому, вам необходимо скомпилировать PHP с такими опциями:

configure --with-pdo-mysql --with-mysql

(обратитесь к http://php.net/manual/en/ref.pdo-mysql.php за детальным пояснением)

Обычно, хороший разработчик активно использует дебаггер в его каждодневной работе. Как нам всем известно, самым популярным PHP отладчиком является xdebug. Это расширение может быть установлено из pecl репозиториев.

Но, прежде чем просить pecl установить для нас xdebug, удостовертесь, что у вас установлены пакет разработки php5-dev.

С этим пакетом поставляется phpize, что является необходимым условием для установки PHP пакетов через pecl.

Если у вас еще не установлен php5-dev, вы получите следующее сообщение об ошибке:

ERROR: `phpize’ failed

и вот вам команда в помощь:

sudo apt-get install php5-dev

После этого, вы сможет установить xdebug с помощью pecl:

sudo pecl install xdebug

Идем дальше. Скажем, вам приходится работать с документами, написаными не только на английском, но и на других языках (Итальянский, Португальский, Русский, Немецкий и т.д.). И предположим также, что вам необходимо обрабатывать даты в различиных форматах, который встречаются в таких документах (кстати, об этом будет моя другая публикация).

Здесь на помощь приходит расширение php5-intl! По этой ссылке — http://php.net/manual/en/intl.installation.php — вы найдете детальную информацию.

В двух словах, чтобы включить это расширение, необходимо указать опцию:

configure --enable-intl

Если вдруг конфигуратор PHP сообщит о следующей ошибке:

«configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.»

вам понадобится установить пакет Linux для работы с интернациональными данными (icu — International Components for Unicode):

apt-get install libicu-dev

Для того, чтобы иметь возможность загружать удаленные http ресурсы из ваших php скриптов, понадобится включить php5-curl.

У меня не получилось сделать это без дополнительных телодвижений, ибо я получил сообщение об ошибке следующего содержания:

configure: error: Please reinstall the libcurl distribution

Если у вас похожая ситуация, то попробуйте установить такие Linux пакеты:

sudo apt-get install libcurl4-gnutls-dev

(спасибо to http://phpconfigure.com/2011/04/configure-error-please-reinstall-the-libcurl-distribution/)

Если вам необходимо работать с мультибайтовыми кодировками и использовать функции PHP с префиксом mb_*,

понадобится включить и эту опцию:

configure --with-mbstring

Итого, после несколько часовой борьбы мне все же удалось сконфигурировать PHP необходимым образом.

Окончательный вариант выглядел так:

sudo ./configure --with-pdo-mysql --with-mysql --with-curl --enable-intl --enable-mbstring=all

Что ж, как я и сказал, я надеялся, что установка PHP-5.4 займет у меня меньше времени, чем конфигурирование виртуального хоста Apache.

Как же я ошибался!.. 🙂

Тем не менее, я ни капельки не сожалею о своем выборе, ибо теперь я чувствую себя намного уверенне в области конфигурирования и установки PHP.

Мой профессиоальный уровень вырос и я открыл для себя новые интересные вещи.

Буду рад ответить на ваши вопросы и комментарии.