Сборка PHP 5.6.36 (FastCGI)
Краткая инструкция по сборке PHP 5.6.36 из исходников с поддержкой FastCGI (CGI/FastCGI/PHP-FPM совместимость). Приведён набор команд для Debian/Ubuntu, включены шаги по подключению OPcache, APCu и расширений memcache/memcached через PECL, а также рекомендации по отладке и альтернативы для продакшена.
Введение
Эта инструкция описывает последовательность команд и ключевые замечания при компиляции PHP 5.6.36 с включённой поддержкой FastCGI. Предполагается, что вы работаете в среде Debian/Ubuntu с правами root или используя sudo. PHP 5.6 — устаревшая ветка; применяйте её только если у вас есть совместимые приложения и план миграции.
Важно: описанные команды сохраняют все исходные пути и имена файлов; при адаптации под вашу систему убедитесь, что указанные каталоги существуют и на них достаточно прав.
Требования и подготовка окружения
Кратко о том, что потребуется:
- Debian/Ubuntu с доступом к apt
- build-essential и зависимости для сборки
- Доступ в /usr/local/src или аналогичный каталог для исходников
- Понимание рисков использования устаревшей ветки PHP
Минимальные команды подготовки:
mkdir /opt/phpfcgi-5.6.36
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.6.36.tar.bz2/from/this/mirror -O php-5.6.36.tar.bz2
tar jxf php-5.6.36.tar.bz2cd php-5.6.36/Установка базовых пакетов и зависимостей:
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Если вы собираете PHP с поддержкой IMAP, создайте символьную ссылку на libc-client.a:
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.aПримечание: без этой ссылки ./configure может завершиться ошибкой «Cannot find imap library (libc-client.a)».
Конфигурация и сборка
Запустите ./configure с опциями, приведёнными ниже, или откорректируйте набор опций под свои требования. Просмотреть все опции можно командой:
./configure --helpПример команды конфигурации, включающей множество распространённых расширений и важный флаг –enable-cgi для поддержки FastCGI:
./configure --prefix=/opt/phpfcgi-5.6.36 --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-opcache --enable-cgiПосле успешной конфигурации соберите и установите:
make
make installСкопируйте конфигурационный файл php.ini в целевой каталог:
cp /usr/local/src/php5-build/php-5.6.36/php.ini-production /opt/phpfcgi-5.6.36/lib/php.iniЧтобы включить Zend OPcache, в конец файла /opt/phpfcgi-5.6.36/lib/php.ini добавьте:
[...]
zend_extension=opcache.soУстановка APCu, memcache и memcached через PECL
Установите PEAR, инициализируйте каналы и установите расширения через pecl, указывая конфигурацию PEAR в каталогe PHP:
apt-get -y install php-pearcd /opt/phpfcgi-5.6.36/etcpecl -C ./pear.conf update-channelsУстановка APCu:
pecl -C ./pear.conf install channel://pecl.php.net/apcu-4.0.6Затем откройте /opt/phpfcgi-5.6.36/lib/php.ini и добавьте конфигурацию:
[...]
extension=apcu.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
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, ioncube и другие модули; следуйте документации соответствующих расширений.)
Интеграция с ISPConfig
В ISPConfig 3.0.5 новая версия PHP добавляется в System > Additional PHP Versions. На вкладке «Name» задайте имя (например «PHP 5.6.36») — это имя будет отображаться при выборе версии PHP для сайтов.

Перейдите на вкладку FastCGI Settings и заполните поля конфигурации для FastCGI. Вкладку PHP-FPM можно оставить пустой, если вы используете только FastCGI:

Отладка и распространённые ошибки
- Ошибка «Cannot find imap library (libc-client.a)» — создайте символьную ссылку на libc-client.a, как показано выше.
- Если ./configure ругается на отсутствующие библиотеки — установите соответствующие dev-пакеты через apt и повторите.
- Если make прерывается — проверьте свободное место и доступную оперативную память; сборка может требовать значительных ресурсов.
- Если расширения не загружаются после установки через pecl — убедитесь, что путь к php.ini совпадает с тем, который использует установленный бинарный файл php.
Important: PHP 5.6 не поддерживается официально — используйте в изолированных окружениях и планируйте миграцию на поддерживаемые версии.
Альтернативные подходы (когда не собирать из исходников)
- Установка системных пакетов из репозиториев (apt) — проще и безопаснее за счёт автоматических обновлений.
- Использование контейнеров Docker с заранее собранным PHP 5.6 — позволяет изолировать окружение и быстро разворачивать копии.
- Сборка с помощью автоматизированных инструментов (Ansible, Makefile, CI) для повторяемости.
Модель принятия решения — когда собирать из исходников
- Когда требуется кастомный набор расширений или нестандартные пути установки.
- Когда дистрибутивные пакеты не содержат нужных опций.
- Не собирать из исходников для управления большим количеством серверов вручную — лучше использовать пакеты или контейнеры.
Чеклист для системного администратора
- Проверить свободное место в /usr/local/src и /opt
- Установить build-essential и dev-пакеты
- Запустить ./configure и убедиться в отсутствии ошибок
- Выполнить make и make install
- Скопировать php.ini и включить opcache
- Установить нужные расширения через pecl/apt
- Настроить интеграцию в ISPConfig и протестировать сайт
- Запланировать мониторинг и план миграции на поддерживаемую версию PHP
Критерии приёмки
- PHP 5.6.36 запускается из /opt/phpfcgi-5.6.36/bin/php или через FastCGI
- Zend OPcache активирован и не вызывает ошибок в логах
- Необходимые расширения установлены и загружаются
- Сайты в ISPConfig видят новую версию и успешно обрабатывают запросы
Советы по безопасности и эксплуатация
- Отключите опасные функции в php.ini, если они не нужны (disable_functions)
- Включите логирование ошибок и настройте ротацию логов
- Разделяйте окружения: продакшн и тестовые установки
- Планируйте обновление на поддерживаемую ветку PHP как можно скорее
Заключение
Сборка PHP 5.6.36 из исходников даёт гибкость в выборе опций и расположении установки, но требует больше внимания к зависимостям, безопасности и обновлениям. Для долгосрочных проектов рекомендуется использовать поддерживаемые версии PHP и автоматизировать процесс развёртывания.
Ссылки
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента