Гид по технологиям

Сборка PHP 5.4.12 (FastCGI)

5 min read PHP Обновлено 18 Nov 2025
Сборка PHP 5.4.12 (FastCGI)
Сборка PHP 5.4.12 (FastCGI)

TL;DR

Сборка PHP 5.4.12 из исходников позволяет запустить эту версию под FastCGI/PHP-CGI и интегрировать в ISPConfig. В статье описаны подготовка окружения, опции конфигурации, установка расширений (APC, memcache, memcached, ionCube) и полезные проверки после установки.

Оглавление

  • Подготовка и загрузка исходников
  • Установка зависимостей
  • Конфигурация и сборка
  • Копирование php.ini и базовая настройка
  • Установка расширений: APC, memcache, memcached, ionCube
  • Интеграция в ISPConfig
  • Критерии приёмки
  • Альтернативы и когда это не подходит
  • Безопасность и рекомендации
  • Чек-лист ролей
  • Краткое резюме

Подготовка и загрузка исходников

Создайте директории для сборки и установки, затем загрузите и распакуйте исходники PHP 5.4.12:

mkdir /opt/phpfcgi-5.4.12
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.4.12.tar.bz2/from/this/mirror -O php-5.4.12.tar.bz2
tar jxf php-5.4.12.tar.bz2

cd php-5.4.12/

Важно: при работе на серверах с разной архитектурой пути могут отличаться. Проверяйте предоставляемые пути к библиотекам перед запуском ./configure.

Установка зависимостей

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

apt-get install build-essential
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev

Если вы планируете включать поддержку IMAP, создайте символическую ссылку на libc-client.a (путь может отличаться на x86/x86_64):

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

Примечание: Без этой ссылки ./configure с –with-imap может завершиться ошибкой типа “Cannot find imap library (libc-client.a)”.

Конфигурация и сборка

Запустите ./configure с набором опций, подходящим под ваши требования. Ниже приведён пример конфигурации, которая включает поддержку FastCGI/CGI и набор популярных расширений.

Прежде чем запускать, просмотрите все доступные опции:

./configure --help

Пример ./configure:

./configure \
--prefix=/opt/phpfcgi-5.4.12 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-cgi

Опция –enable-cgi гарантирует совместимость с FastCGI. После успешного configure выполните:

make
make install

Если сборка завершилась без ошибок, перейдите к установке php.ini.

Копирование php.ini и базовая настройка

Скопируйте production-версию php.ini в каталог установки:

cp /usr/local/src/php5-build/php-5.4.12/php.ini-production /opt/phpfcgi-5.4.12/lib/php.ini

Отредактируйте /opt/phpfcgi-5.4.12/lib/php.ini по месту под ваши окружение и требования по безопасности.

Установка расширений: APC, memcache, memcached

Если хотите ускорить работу приложений, установите кеширующие расширения и менеджеры памяти. Для этого удобно использовать PEAR/PECL, которые требуется установить и инициализировать для кастомной установки PHP.

apt-get -y install php-pear
cd /opt/phpfcgi-5.4.12/etc
pecl -C ./pear.conf update-channels

APC (альтернативы: OPcache для современных версий PHP) можно установить так:

pecl -C ./pear.conf install apc

Принять значения по умолчанию. Затем откройте php.ini:

vi /opt/phpfcgi-5.4.12/lib/php.ini

Добавьте в конец файла:

[...]
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5

Установка memcache:

pecl -C ./pear.conf install memcache

Добавьте в php.ini:

[...]
extension=memcache.so

Установка memcached (клиент на libmemcached):

apt-get install libmemcached-dev
pecl -C ./pear.conf install memcached

Добавьте в php.ini:

[...]
extension=memcached.so

Примечание: memcache и memcached — разные расширения с несовместимыми API. Выбирайте по потребностям приложений.

Установка ionCube Loader

ionCube используется для загрузки защённого PHP-кода. Скачайте соответствующий пакет для архитектуры сервера (x86_64 или x86) и распакуйте:

cd /tmp

Для x86_64:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz

Для x86:

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz

Скопируйте loader в директорию расширений и включите в php.ini:

cp ioncube/ioncube_loader_lin_5.4.so /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/phpfcgi-5.4.12/lib/php.ini

Добавьте в начало файла (до строки [PHP]):

zend_extension = /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
[PHP]
[...]

Интеграция в ISPConfig

В ISPConfig 3.0.5 новая версия PHP добавляется в System > Additional PHP Versions. На вкладке “Name” укажите удобное имя (например, PHP 5.4.12). В настройках сайта эта версия будет доступна под указанным именем.

Форма добавления версии PHP в ISPConfig

Перейдите на вкладку FastCGI Settings и заполните поля в соответствии с путями установки (поле PHP-FPM Settings можно оставить пустым, если вы используете CGI/FastCGI):

Настройки FastCGI в ISPConfig для новой версии PHP

Критерии приёмки

  • PHP запускается под FastCGI и возвращает корректный PHP info через веб-сервер.
  • Загружаемые расширения (apc, memcache/memcached, ionCube) видны в phpinfo().
  • Нет ошибок в /opt/phpfcgi-5.4.12/logs или в системных журналах при старте CGI-процессов.
  • В ISPConfig новая версия отображается и может быть выбрана для сайтов.

Проверки:

curl -I -s http://localhost/info.php
php -m | grep apc
php -v

Альтернативы и когда это не подходит

  • Используйте системный пакет PHP из репозитория, если доступна подходящая версия — меньше работы с зависимостями и патчами.
  • Рассмотрите использование более современных версий PHP (7.x/8.x) ради безопасности и производительности.
  • Сборка вручную подходит для нестандартных опций, но увеличивает стоимость поддержки и обновлений.

Когда не собирать вручную:

  • Если нужна долгосрочная поддержка безопасности.
  • Если важна минимизация времени на обслуживание сервера.

Безопасность и рекомендации

  • Не запускайте старые версии PHP на публичных сайтах без компенсирующих мер (WAF, ограничение доступа).
  • Ограничьте права файлов в /opt/phpfcgi-5.4.12 и доступ к php.ini.
  • Минимизируйте набор включённых расширений — отключайте ненужные.
  • Мониторьте журналы ошибок и обновляйте зависимости ОС.

Чек-лист ролей

Администратор:

  • Создать директории и установить зависимости.
  • Собрать и установить PHP.
  • Настроить права и SELinux/AppArmor правила.

DevOps / Разработчик:

  • Проверить работоспособность приложений на новой сборке.
  • Проверить совместимость расширений.
  • Обновить CI/CD или playbook для деплоя.

Оператор/Support:

  • Проверить метрики процессов FastCGI (память, число воркеров).
  • Настроить журналирование и оповещения.

Миграция и совместимость

  • При переходе с системного PHP убедитесь, что расширения и пути совпадают.
  • Проверяйте API устаревших функций (в PHP 5.4 некоторые расширения ведут себя иначе).
  • Для многократной инсталляции используйте шаблоны systemd/upstart и конфигурационные шаблоны для ISPConfig.

Краткая методология сборки (mini-SOP)

  1. Подготовить окружение и установить build-dep.
  2. Скачать и распаковать исходники.
  3. Настроить ./configure с нужными опциями.
  4. make && make install.
  5. Скопировать php.ini и включить расширения.
  6. Проверить через phpinfo() и журнал.

Краткое руководство по откату

  • Сохраните текущую рабочую версию (бэкап /opt и php.ini).
  • Если после установки возникают критические ошибки — переключитесь в ISPConfig на предыдущую версию PHP и перезапустите веб-сервер.
  • По возможности держите контактные точки: мониторинг процессов и доступ к логам.

Риск-матрица и смягчение

  • Риск: несовместимость расширений → Смягчение: тестирование на тестовом хосте перед продом.
  • Риск: уязвимости в старой версии → Смягчение: ограничение доступа и WAF.
  • Риск: неправильные пути библиотек → Смягчение: проверка ./configure и зависимостей.

Сводка

Сборка PHP 5.4.12 из исходников даёт гибкость и контроль над параметрами сборки, но требует дополнительных усилий по поддержке и безопасности. Для продакшена рассмотрите использование системных пакетов или современных версий PHP. Следуйте чек-листам и критериям приёмки, чтобы обеспечить корректную интеграцию с ISPConfig и надёжную работу сайтов.

Ссылки

Об авторе

Фалко Тимме — владелец Timme Hosting (высокоскоростной nginx хостинг), ведущий участник HowtoForge (с 2005) и один из основных разработчиков ISPConfig (с 2000). Он также участвовал в подготовке материалов для книги по администрированию Linux.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Максимум от микрофона Blue Yeti
Аудио

Максимум от микрофона Blue Yeti

Запустить вентилятор HVAC через Nest
Умный дом

Запустить вентилятор HVAC через Nest

Автообои Bing для Ubuntu — с водяным знаком и без
Linux

Автообои Bing для Ubuntu — с водяным знаком и без

Google Assistant на Galaxy Watch 4
Гаджеты

Google Assistant на Galaxy Watch 4

AI‑поиск YouTube: как включить и использовать
Технологии

AI‑поиск YouTube: как включить и использовать

Нет устройства вывода аудио в Windows — исправление
Устранение неполадок

Нет устройства вывода аудио в Windows — исправление