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-essentialapt-get build-dep php5apt-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-pearcd /opt/phpfcgi-5.4.12/etcpecl -C ./pear.conf update-channelsAPC (альтернативы: 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-devpecl -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). В настройках сайта эта версия будет доступна под указанным именем.

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

Критерии приёмки
- 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)
- Подготовить окружение и установить build-dep.
- Скачать и распаковать исходники.
- Настроить ./configure с нужными опциями.
- make && make install.
- Скопировать php.ini и включить расширения.
- Проверить через phpinfo() и журнал.
Краткое руководство по откату
- Сохраните текущую рабочую версию (бэкап /opt и php.ini).
- Если после установки возникают критические ошибки — переключитесь в ISPConfig на предыдущую версию PHP и перезапустите веб-сервер.
- По возможности держите контактные точки: мониторинг процессов и доступ к логам.
Риск-матрица и смягчение
- Риск: несовместимость расширений → Смягчение: тестирование на тестовом хосте перед продом.
- Риск: уязвимости в старой версии → Смягчение: ограничение доступа и WAF.
- Риск: неправильные пути библиотек → Смягчение: проверка ./configure и зависимостей.
Сводка
Сборка PHP 5.4.12 из исходников даёт гибкость и контроль над параметрами сборки, но требует дополнительных усилий по поддержке и безопасности. Для продакшена рассмотрите использование системных пакетов или современных версий PHP. Следуйте чек-листам и критериям приёмки, чтобы обеспечить корректную интеграцию с ISPConfig и надёжную работу сайтов.
Ссылки
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Об авторе
Фалко Тимме — владелец Timme Hosting (высокоскоростной nginx хостинг), ведущий участник HowtoForge (с 2005) и один из основных разработчиков ISPConfig (с 2000). Он также участвовал в подготовке материалов для книги по администрированию Linux.
Похожие материалы
Максимум от микрофона Blue Yeti
Запустить вентилятор HVAC через Nest
Автообои Bing для Ubuntu — с водяным знаком и без
Google Assistant на Galaxy Watch 4
AI‑поиск YouTube: как включить и использовать