Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
Борьба с mod_fcgid
2012-01-19 14:00 | Автор: Vasile Chelban | Filed under: Vasile
Не люблю малую информативность mod_fcgid. Понять почему не работает по ошибкам вроде "Premature end of script headers" или "can't apply process slot for index.php" сложно. Критические ошибки PHP при этом могут никуда не попадать.
Сегодня вновь боролся. Нашел решение только сравнивая файлы конфигурации с рабочей и нерабочей версией. Публикую наш рабочий файл /etc/httpd/conf.d/fcgid.conf:
LoadModule fcgid_module modules/mod_fcgid.so # Use FastCGI to process .fcg .fcgi & .fpl scripts # Don't do this if mod_fastcgi is present, as it will try to do the same thing <IfModule !mod_fastcgi.c> AddHandler fcgid-script fcg fcgi fpl </IfModule> FCGIWrapper /usr/bin/php-cgi .php # Sane place to put sockets and shared memory file FcgidIPCDir /var/run/mod_fcgid FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm MaxRequestLen 131072000
Отмеченная строка заставила себя искать в течении 30 минут.
Другой нюанс не относящийся к FastCGI - mod_status обыкновенно включается через
<Location /server-status> SetHandler server-status </Location>
Так вот - Location директива имеет меньший приоритет чем Directory, Files или VirtualHost. Так что если первый VirtualHost (хост по умолчанию, который покрывает в том числе 127.0.0.1 адрес сервера) у вас использует, скажем mod_rewrite, то свой /server-status вы не увидите.
Обмануть можно точечной настройкой целевого адреса (127.0.0.1) используемого apachectl fullstatus:
<VirtualHost 127.0.0.1:80> AllowOverride None </VirtualHost>
Метки: FastCGI