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

Сборка и установка PHP 5.5.7 для FastCGI

5 min read DevOps Обновлено 27 Nov 2025
Установка PHP 5.5.7 для FastCGI
Установка PHP 5.5.7 для FastCGI

Введение

Ниже подробное пошаговое руководство по загрузке, сборке и установке PHP 5.5.7 с поддержкой FastCGI и подключению популярных расширений. Все команды приведены для Debian/Ubuntu-подобных систем; при использовании других дистрибутивов пакеты и имена библиотек могут отличаться.

Важно: выполняйте сборку и установку под root или через sudo. Сохраняйте оригинальные пути к файлам; при необходимости адаптируйте –prefix и пути к библиотекам.

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

Создайте каталоги и скачайте исходники:

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

Перейдите в каталог исходников:

cd php-5.5.7/

Установка зависимостей для сборки

Установите необходимые пакеты для компиляции и зависимости PHP (пример для Debian/Ubuntu):

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

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

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

Это устранит ошибку:

checking for crypt in -lcrypt… yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

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

Сконфигурируйте сборку с нужными опциями. Ниже приведён примерный ./configure, используемый для сборки под FastCGI. Отредактируйте опции под свои требования и доступные библиотеки.

./configure \
--prefix=/opt/phpfcgi-5.5.7 \
--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

Последняя опция --enable-cgi гарантирует совместимость с FastCGI. После успешного конфигурирования выполните сборку и установку:

make
make install

Копирование php.ini и включение OPcache

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

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

Чтобы включить Zend OPcache, откройте файл конфигурации:

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

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

[...]
zend_extension=opcache.so

Обратите внимание: при необходимости настройте дополнительные параметры OPcache согласно документации.

Установка дополнительных расширений (APCu, memcache, memcached)

APCu, memcache и memcached можно установить через PECL. Сначала установите PEAR/PECL и инициализируйте каналы:

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

Установка APCu (пример версии из исходного руководства):

pecl -C ./pear.conf install channel://pecl.php.net/apcu-4.0.2

Примите значения по умолчанию при установке. Затем добавьте подключение расширения в php.ini:

vi /opt/phpfcgi-5.5.7/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 требует клиентских библиотек:

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

И затем добавьте в php.ini:

[...]
extension=memcached.so

Установка ionCube Loader

С 3 января доступен ionCube Loader для PHP 5.5. Установите его таким образом:

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

Скопируйте нужный модуль и подключите его в php.ini:

cp ioncube/ioncube_loader_lin_5.5.so /opt/phpfcgi-5.5.7/lib/php/extensions/no-debug-non-zts-20121212/ioncube.so
vi /opt/phpfcgi-5.5.7/lib/php.ini

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

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

Конфигурация в ISPConfig

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

Добавление версии PHP в ISPConfig — вкладка Name

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

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

Проверка установки и базовая отладка

  1. Запустите php-cgi из установленного префикса и проверьте версию:
/opt/phpfcgi-5.5.7/bin/php -v
  1. Создайте phpinfo() скрипт во внутреннем тестовом сайте и откройте через веб-сервер, чтобы убедиться, что расширения загружены и путь к php.ini правильный.

  2. Проверьте логи web/FastCGI и системные логи при ошибках.

Типичные ошибки и решения

  • Ошибка: “Cannot find imap library (libc-client.a)” — создайте симлинк, см. раздел подготовки.
  • Ошибка при загрузке расширения PECL — убедитесь, что pecl использует конфигурацию из /opt/phpfcgi-5.5.7/etc (в руководстве используется pecl -C ./pear.conf).
  • После установки расширений перезапустите веб-сервер/FastCGI-демоны, чтобы загрузить новые .so.

Важно: при работе с несколькими установленными версиями PHP будьте внимательны к путям расширений и php.ini, иначе вы можете редактировать системный php.ini вместо установленного в –prefix.

Чек-лист для системного администратора

  • Созданы каталоги /opt/phpfcgi-5.5.7 и /usr/local/src/php5-build
  • Скачан и распакован php-5.5.7.tar.bz2
  • Установлены build-essential и зависимости (build-dep php5 и остальное)
  • Выполнен ./configure с корректными флагами
  • Выполнены make && make install
  • Скопирован php.ini-production в /opt/phpfcgi-5.5.7/lib/php.ini
  • Включён zend_extension=opcache.so
  • Установлены и подключены APCu, memcache, memcached (при необходимости)
  • Установлен ionCube Loader (при необходимости)
  • Добавлена версия в ISPConfig и настроены FastCGI Settings
  • Проверен phpinfo() и работоспособность сайтов

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

  • PHP запускается из /opt/phpfcgi-5.5.7/bin/php и выводит корректную версию.
  • phpinfo() показывает правильный путь к php.ini (/opt/phpfcgi-5.5.7/lib/php.ini).
  • Установленные расширения (opcache, apcu, memcache/memcached, ionCube) отображаются как загруженные.
  • Сайт(ы), использующие эту версию PHP через FastCGI, обслуживаются корректно без ошибок в логах.

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

  • Использовать системные пакеты (apt-get install php5-fpm) — быстрее и проще для большинства сценариев; предпочтительно для долгосрочной поддержки и безопасности.
  • Docker-контейнеры — изолируют среду и упрощают откат/повторяемость сборки.
  • Если нужна поддержка продвинутых функций PHP 7+, лучше собрать или установить версию 7.x/8.x, так как PHP 5.5 устаревает.

Когда сборка из исходников не подходит:

  • Недостаточно времени или опыта для поддержки кастомной сборки.
  • Требуется регулярное обновление безопасности — в таком случае предпочтительнее пакетный менеджер или контейнеры.

Мини-методология: повторяемая сборка

  1. Подготовить чистую окружение (контейнер или VM) с нужной ОС.
  2. Зафиксировать версии библиотек и конфигурационный набор (файл ./configure).
  3. Выполнить сборку, сохранить артефакты в /opt/phpfcgi-5.5.7.
  4. Протестировать с phpinfo(), unit- и интеграционными тестами сайта.
  5. Автоматизировать процесс (скрипты, конфигурации Ansible/Chef/Puppet или Dockerfile).

Диаграмма выбора: собирать ли из исходников

flowchart TD
  A[Нужна конкретная версия/кастомные флаги?] -->|Да| B[Сборка из исходников]
  A -->|Нет| C[Использовать системные пакеты]
  B --> D{Требуется изоляция}
  D -->|Да| E[Docker]
  D -->|Нет| F[Прямая установка на хост]
  C --> G[Управляемые обновления и поддержка]

Глоссарий (1‑строчные определения)

  • FastCGI — протокол между веб-сервером и процессами интерпретатора (PHP‑CGI).
  • php.ini — основной файл конфигурации PHP.
  • PECL/PEAR — менеджеры расширений и библиотек для PHP.
  • ionCube — загрузчик и шифратор закрытого PHP-кода.

Советы по безопасности

  • После сборки и тестирования откройте только необходимые порты и ограничьте доступ к административным интерфейсам.
  • Держите артефакты сборки и скрипты в системе контроля версий, но не публикуйте секреты.
  • Для production-систем рассмотрите использование системного менеджера пакетов или контейнеров с поддержкой обновлений безопасности.

Краткое резюме

Сборка PHP 5.5.7 для FastCGI требует подготовки зависимостей, правильной конфигурации ./configure, сборки и установки, затем настройки php.ini и подключения требуемых расширений. Для управления версиями и использования в панели ISPConfig добавьте новую версию через System > Additional PHP Versions и заполните FastCGI Settings.

Ссылки

Об авторе

Falko Timme — владелец Timme Hosting (ultra-fast nginx web hosting). Он является ведущим мейнтейнером HowtoForge (с 2005 года) и одним из основных разработчиков ISPConfig (с 2000 года). Также он внес вклад в книгу O’Reilly “Linux System Administration”.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро