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

Сборка PHP 5.3.22 с поддержкой FastCGI

• 5 min read • DevOps • Обновлено 26 Nov 2025
Сборка PHP 5.3.22 для FastCGI
Сборка PHP 5.3.22 для FastCGI

Введение

Ниже приведён пошаговый процесс сборки PHP 5.3.22 из исходников для использования через FastCGI. Инструкция подходит для RPM-базированных дистрибутивов (yum). Все команды выполняйте от имени пользователя с привилегиями root или через sudo.

Определения: FastCGI — протокол взаимодействия веб-сервера и внешнего процесса (PHP-CGI/PHP-FPM). APC, memcache, memcached, ionCube — распространённые расширения и загрузчики для PHP.

Требования и подготовка

  1. Создайте папки для сборки и установки:
mkdir /opt/phpfcgi-5.3.22
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
  1. Скачайте и распакуйте архив с исходниками PHP 5.3.22:
wget http://de.php.net/get/php-5.3.22.tar.bz2/from/this/mirror -O php-5.3.22.tar.bz2
tar jxf php-5.3.22.tar.bz2
cd php-5.3.22/
  1. Установите группы и пакеты, необходимые для сборки (список длинный — приведён полностью):
yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel

Примечание: список зависит от опций, которые вы укажете в ./configure. Если будете использовать другие флаги, могут потребоваться дополнительные -devel пакеты.

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

Запустите конфигуратор. Рекомендуется сначала посмотреть все доступные опции:

./configure --help

Пример конфигурации, используемой в оригинальной инструкции (настройте по своим требованиям):

./configure \
--prefix=/opt/phpfcgi-5.3.22 \
--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 \
--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=apache \
--with-fpm-group=apache \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-cgi

Важно: опция –enable-cgi гарантирует совместимость с FastCGI (PHP-CGI). Если вы хотите использовать PHP-FPM, дополнительно проверьте поддержку –enable-fpm (в старых релизах флаг мог отличаться).

Сборка и установка:

make
make install

После установки скопируйте пример php.ini в нужное место:

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

Установка популярных расширений (APC, memcache, memcached)

Вы можете установить расширения APC, memcache и memcached через PECL. Для этого требуется php-pear и инициализация PEAR/PECL с конфигурацией, расположенной рядом с установленной версией PHP.

  1. Установить php-pear (системный пакет):
yum install php-pear
  1. Перейти в директорию конфигурации новой сборки:
cd /opt/phpfcgi-5.3.22/etc
  1. Обновить каналы PEAR/PECL (используя локальный pear.conf):
pecl -C ./pear.conf update-channels

APC (пример установки):

pecl -C ./pear.conf install apc

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

vi /opt/phpfcgi-5.3.22/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 |

Примечание: при проблемах с mmap попробуйте закомментировать apc.mmap_file_mask или использовать рекомендованные параметры для вашего дистрибутива.

Установка memcache:

pecl -C ./pear.conf install memcache

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

| [...] extension=memcache.so |

Установка memcached (клиентская библиотека libmemcached + расширение PECL):

yum install libmemcached-devel
pecl -C ./pear.conf install memcached

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

| [...] extension=memcached.so |

Установка ionCube Loader

  1. Перейдите в /tmp и скачайте пакет для архитектуры сервера (x86_64 или x86). Например, для x86_64:
cd /tmp
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
  1. Скопируйте соответствующий loader в директорию расширений PHP и подключите его в начале php.ini:
cp ioncube/ioncube_loader_lin_5.3.so /opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
vi /opt/phpfcgi-5.3.22/lib/php.ini

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

| zend_extension = /opt/phpfcgi-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so [PHP] [...] |

После этого перезапустите FastCGI-процесс (или веб-сервер), чтобы загрузчик вступил в силу.

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

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

Скриншот добавления версии PHP в ISPConfig

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

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

Важно: корректно указывайте путь к бинарнику PHP и php.ini в настройках ISPConfig, чтобы сервер запускал именно собранную версию.

Отладка и частые ошибки

  • Ошибка при конфигурации: значит, отсутствует -devel пакет для одной из опций. Проверьте вывод ./configure и установите недостающие зависимости.
  • Расширение не загружается: убедитесь, что путь и имя .so совпадают с указанными в php.ini и что сборка расширения прошла успешно.
  • Проблемы с правами: проверьте владельца/группу файлов и директории, особенно если используете –with-fpm-user/–with-fpm-group.
  • Несовместимость библиотек (libdir): флаг –with-libdir=lib64 нужен на x86_64 системах; на 32-битных — не используйте его.

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

  • Использовать дистрибутивные пакеты RPM/DEB: быстрее и безопаснее с точки зрения обновлений, но не всегда доступны старые версии.
  • Собрать только модуль PHP-FPM (если нужен именно FPM), а не CGI.
  • Использовать контейнеры (Docker) с заранее собранным образом PHP 5.3.22 — удобно для изоляции и отката.

Когда этот способ не подойдёт

  • Если вам нужна поддержка безопасности и обновлений — PHP 5.3 EOL, лучше мигрировать на поддерживаемую версию.
  • На хостингах с ограниченным доступом к установке системных пакетов или без возможности запускать свои бинaрные CGI-процессы.

Чеклист перед вводом в эксплуатацию

  • Проверить, что php -v указывает на /opt/phpfcgi-5.3.22 (или соответствующий путь в конфиге FastCGI).
  • Убедиться, что phpinfo() отображает установленные расширения (APC, memcached, ionCube).
  • Настроить резервное копирование php.ini и списка установленных расширений.
  • Провести нагрузочное тестирование на тестовой среде (в особенности если меняли параметры памяти для APC).
  • Обновить документацию и конфигурацию в ISPConfig.

Снижение рисков и безопасность

  • Не используйте устаревшие версии PHP в публичных сервисах без строгого контроля доступа.
  • Отключите ненужные расширения. Минимизируйте набор установленных модулей.
  • Отключите display_errors в production конфиге php.ini.
  • Регулярно проверяйте журналы сервера и FastCGI-процесса.

Краткая терминологическая шпаргалка (1 строка)

  • FastCGI — протокол для запуска внешних процессов (PHP) веб-сервером.
  • PECL — репозиторий расширений PHP; используется для установки модулей.
  • ionCube — загрузчик зашифрованных PHP-скриптов.

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

  • PHP 5.3.22 успешно запускается как FastCGI-процесс и обслуживает запросы.
  • Отклик приложения соответствует ожидаемому поведению на тестовой нагрузке.
  • Все требуемые расширения загружены и работают (APC, memcache(s), ionCube).

Итог

Эта инструкция даёт исчерпывающий процесс сборки и установки PHP 5.3.22 для FastCGI, включая необходимые зависимости и установку часто используемых расширений. Для продакшена рассматривайте более современные версии PHP и контейнеризацию. Если нужны подсказки по конкретным ошибкам на этапе ./configure или make — приложите вывод ошибок, и я подскажу следующий шаг.

Примечание: безопасность и поддержка важнее обратной совместимости. По возможности планируйте миграцию на поддерживаемые версии PHP.

Поделиться: 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 быстро