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

Сборка 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
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство