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

Как собрать mod_fastcgi для Apache2 на OpenSUSE 12.2

• 4 min read • Администрирование • Обновлено 22 Nov 2025
Собрать mod_fastcgi для Apache2 на OpenSUSE 12.2
Собрать mod_fastcgi для Apache2 на OpenSUSE 12.2

Версия 1.0
Автор: Falko Timme
Следите за автором в Twitter

Задача и почему это нужно

mod_fastcgi требуется для совместной работы старых версий Apache (до 2.4) с PHP-FPM. В пакете apache2-mod_fastcgi для OpenSUSE есть баг: он запрещает использование директивы FastCgiExternalServer внутри секции VirtualHost, хотя официальная документация mod_fastcgi разрешает это. В результате Apache отказывается стартовать с конфигурацией, где FastCgiExternalServer задан в vhost.

Короткий пример ошибки при проверке конфигурации:

apache2ctl -t

И вывод:

server1:/etc/apache2/sites-available # apache2ctl -t  
Syntax error on line 57 of /etc/apache2/sites-enabled/100-example.com.vhost:  
FastCgiExternalServer cannot occur within  section  
server1:/etc/apache2/sites-available #

Официальная документация mod_fastcgi указывает, что FastCgiExternalServer можно использовать как в глобальной конфигурации, так и в конфигурации виртуальных хостов. Поэтому корректный путь — собрать модуль самостоятельно из исходников и установить его вместо проблемного пакета.

Что нужно заранее

  • Рабочая система OpenSUSE 12.2.
  • Права root (или sudo) для установки пакетов и перезапуска Apache.
  • Рекомендуется сохранить резервную копию текущего /etc/apache2 перед изменениями.

Важно: я не даю гарантий, что инструкция подойдёт во всех окружениях. Она описывает практику, проверенную на OpenSUSE 12.2 в типичной конфигурации Apache2.

Подготовка

Убедитесь, что установлен пакет разработки для Apache2:

zypper install apache2-devel

Если у вас уже установлен apache2-mod_fastcgi через zypper, можно сохранить его RPM или пометить пакет как удалённый перед заменой. Опция удаления зависит от вашей политики управления пакетами.

Скачивание и сборка mod_fastcgi

  1. Скачайте исходники и распакуйте их:
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz  
tar xvfz mod_fastcgi-2.4.6.tar.gz  
cd mod_fastcgi-2.4.6/
  1. Скопируйте Makefile для Apache 2:
cp Makefile.AP2 Makefile
  1. Создайте симлинк к заголовочному файлу MPM (если он отсутствует):
ln -s /usr/include/apache2-worker/mpm.h /usr/include/apache2/
  1. Скомпилируйте и установите модуль, указывая каталог верхнего уровня Apache:
make top_dir=/usr/share/apache2
make top_dir=/usr/share/apache2 install

Эти команды создадут модуль mod_fastcgi.so и поместят его в каталог модулей Apache.

Проверка загрузки модуля

Убедитесь, что в конфигурации Apache присутствует строка загрузки модуля:

LoadModule fastcgi_module modules/mod_fastcgi.so

Обычно эту строку добавляют в файл /etc/apache2/sysconfig.d/loadmodule.conf.

После этого перезапустите Apache:

/etc/init.d/apache2 restart

Если Apache успешно перезапускается, значит вы заменили модуль OpenSUSE на собственный собранный модуль.

Отладка и типичные проблемы

  • Ошибка компиляции из-за отсутствующих заголовков: убедитесь, что apache2-devel установлен и симлинки созданы правильно.
  • Конфликт версий MPM: mod_fastcgi нужно собирать для той реализации MPM, которую использует ваш Apache (worker/event/prefork). Проверьте текущий MPM и заголовочные файлы в /usr/include/apache2*.
  • Если после установки Apache не стартует, посмотрите журнал ошибок: /var/log/apache2/error_log или соответствующий для вашей системы.

Важно: если вы используете пакетный менеджер, помните — он не будет знать о вручную установленном модуле. Обновления системы могут перезаписать файлы или вставить конфликтные версии.

Альтернативы и рекомендации

  • Использовать Apache 2.4 и модуль mod_proxy_fcgi (рекомендуется для новых установок).
  • Если возможно, переключиться на поставляемые дистрибутивом пакеты, но при проблемах — собрать модуль вручную, как показано выше.
  • Рассмотрите использование контейнеризации (Docker) или виртуальных машин для изоляции устаревших стеков.

Краткая методология (чеклист)

  • Сделать резервную копию /etc/apache2.
  • Установить apache2-devel.
  • Скачать и распаковать исходники mod_fastcgi.
  • Применить Makefile.AP2 → Makefile.
  • Создать симлинк mpm.h в /usr/include/apache2 при необходимости.
  • Выполнить make и make install с top_dir=/usr/share/apache2.
  • Добавить LoadModule в /etc/apache2/sysconfig.d/loadmodule.conf.
  • Перезапустить Apache и проверить конфигурацию apache2ctl -t.

Когда это не сработает

  • Ваш Apache использует несовместимый MPM или сильно модифицированную сборку.
  • Система получила обновление, которое заменяет файлы модулей на версии из репозиториев. В этом случае стоит создать пакет RPM из собранного модуля и установить его через zypper, чтобы пакетный менеджер «видел» модуль.

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

  • Не собирайте двоичные файлы под учётной записью root без крайней необходимости.
  • Проверяйте права на модуль и конфигурационные файлы.
  • Поддерживайте актуальность PHP-FPM и Apache, по возможности мигрируйте на поддерживаемые версии.

Часто задаваемые вопросы

Можно ли собрать модуль и оставить пакет apache2-mod_fastcgi установленным?

Да, но это может привести к конфликтам. Если вы устанавливаете модуль вручную, удалите или отключите пакетный модуль, чтобы избежать дублирования.

Подойдёт ли эта инструкция для OpenSUSE более новых версий?

Принцип тот же, но пути, пакеты и MPM-заголовки могут отличаться. На новых версиях лучше использовать модуль mod_proxy_fcgi и Apache 2.4+.

Ссылки

Итого: при проблеме с директивой FastCgiExternalServer в vhost на OpenSUSE 12.2 сборка mod_fastcgi из исходников — рабочий путь. Следуйте чеклисту, проверяйте логи и по возможности планируйте миграцию на современные модули и версии Apache.

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