Сборка и установка 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-essentialapt-get build-dep php5apt-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-pearcd /opt/phpfcgi-5.5.7/etcpecl -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-devpecl -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) — это имя будет видно в настройках сайтов.

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

Проверка установки и базовая отладка
- Запустите php-cgi из установленного префикса и проверьте версию:
/opt/phpfcgi-5.5.7/bin/php -vСоздайте phpinfo() скрипт во внутреннем тестовом сайте и откройте через веб-сервер, чтобы убедиться, что расширения загружены и путь к php.ini правильный.
Проверьте логи 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 устаревает.
Когда сборка из исходников не подходит:
- Недостаточно времени или опыта для поддержки кастомной сборки.
- Требуется регулярное обновление безопасности — в таком случае предпочтительнее пакетный менеджер или контейнеры.
Мини-методология: повторяемая сборка
- Подготовить чистую окружение (контейнер или VM) с нужной ОС.
- Зафиксировать версии библиотек и конфигурационный набор (файл ./configure).
- Выполнить сборку, сохранить артефакты в /opt/phpfcgi-5.5.7.
- Протестировать с phpinfo(), unit- и интеграционными тестами сайта.
- Автоматизировать процесс (скрипты, конфигурации 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.
Ссылки
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Об авторе
Falko Timme — владелец Timme Hosting (ultra-fast nginx web hosting). Он является ведущим мейнтейнером HowtoForge (с 2005 года) и одним из основных разработчиков ISPConfig (с 2000 года). Также он внес вклад в книгу O’Reilly “Linux System Administration”.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента