Ставим mod_fcgid для Apache под SuSe 10.3

Недавно решил попробовать MovableType в качестве платформы для своих блогов. Эта платформа мне очень понравилась вот чем:

  • может весь блог сгенерировать в виде статики
  • платформа бесплатная и с открытым кодом
  • поддерживает XML-RPC, что очень облегчает процесс удаленного постинга
  • умеет пинговать другие блогосервисы

Собственно, только из-за генерации статики я и выбрал эту платформу; то же самое умеет делать и Blogger – но у меня все-таки доверие больше софтине с открытым кодом, установленной на моих серверах, чем стороннему бесплатному сервису.

Разочаровал же меня Movable Type тем, что по умолчанию он выполнялся как cgi-скрипт. Слишком много времени уходило на интерпретацию скриптов, чувствовались существенные задержки в работе – но памяти при этом кушалось немного.

Увеличить быстродействие платформы можно двумя способами, прикрутив к Apache mod_perl или заставив выполнять скрипты Movable Type как FastCGI.

Первый вариант сразу отпадает, мне даром не нужен каждый процесс апача, который бы съедал значительный объем памяти из-за загруженного модуля mod_perl; поэтому я и выбрал второй вариант.
Настроить mod_fcgid под Debian на свой Apache 2.2.6 у меня получилось с первого раза совершенно без проблем.

Все свелось буквально к набору только одной команды:

apt-get install libapache2-mod-fcgid

ну и к последующей правке httpd.conf и перезапуску Apache.
Решил сделать нечто подобное и под OpenSUSE 10.3, с помощью Yast установил apache2-mod_fcgid, дописал заветные строчки в httpd.conf и … получил болт. При выполнении скрипта Perl как Fast CGI стала появляться ошибка:

mod_fcgid: Can’t create share memory for size %zu byte

Как оказалось, это лечится добавлением всего лишь одной строчки в mod_fcgid.conf:

SharememPath /var/lib/apache2/fcgid_shm

Для этого модуля сборщики пакета не удосужились прописать одну единственную строчку, которая не позволяла полноценно работать Perl-скриптам как FastCGI. Это действительно зарегистрированный баг OpenSUSE, который в недалеком будущем исправят (я надеюсь).