Fastcgi не работают скрипты .cgi

Жалоба
Вопрос

Настроил fastcgi через fcgid_module, скрипты PHP (в частности infophp()Smile отлично работает, но вот на файлы расширения .cgi и .fcgi выдает ошибку Internal Server Error - 500. ОС Centos 6.4 в логах error_log пишет Код:Content-type: text/plain Het werkt! Content-type: text/plain Het werkt! Content-type: text/plain Het werkt!(Het werkt! - по немецки "Работает!") - это была задача test.cgi вывести на экран эту надпись. На сайте с php как CGI этот скрипт работает site.ру.error.log Код:[Sun Sep 29 04:18:35 2013] [warn] [client 127.0.0.3] (104)Connection reset by peer: mod_fcgid: error reading data$ [Sun Sep 29 04:18:35 2013] [error] [client 127.0.0.3] Premature end of script headers: test.cgi [Sun Sep 29 04:18:38 2013] [warn] [client 127.0.0.3] (104)Connection reset by peer: mod_fcgid: error reading data$ [Sun Sep 29 04:18:38 2013] [error] [client 127.0.0.3] Premature end of script headers: test.cgi fcgid.conf Код:# This is the Apache server configuration file for providing FastCGI support # through mod_fcgid # # Documentation is available at # httpd.apache.org/mod_fcgid/mod/mod_fcgid.html LoadModule fcgid_module modules/mod_fcgid.so # Use FastCGI to process .fcg .fcgi & .fpl scripts AddHandler fcgid-script cgi fcg fcgi fpl # Sane place to put sockets and shared memory file FcgidIPCDir /var/run/mod_fcgid FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm FcgidMaxRequestsPerProcess 500 PHP_Fix_Pathinfo_Enable 1 FcgidBusyTimeout 3600 FcgidIOTimeout 600VirtualHost в httpd.conf Код:VirtualHost *:80> <IfModule mod_fcgid.c> SuexecUserGroup www3 www3 FcgidBusyTimeout 3600 <Directory "/var/www/user_name/site3.ру/"> Options +ExecCGI AllowOverride All AddHandler fcgid-script .cgi .fcgi .php FCGIWrapper /var/www/user_name/site3.ру/php-fcgi/php-fcgid .php Order allow,deny Allow from all </Directory> </IfModule> ServerAdmin [email protected]ру ServerName site3.ру ServerAlias site3.ру DocumentRoot /var/www/user_name/site3.ру/httpdocs ErrorLog logs/site3.ру-error_log CustomLog logs/site3.ру-access_log common ServerSignature off </VirtualHost>

В процессе 1
Linux 2 года назад 6 Ответов 52410 Просмотров 0

Ответов ( 5 )

    0
    2 года назад
    Ответить

    > Извиняюсь это я тут ошибся. В скрипте все правильноНу, попробуй тогда "Content-type: text/plain\n\n" и "Het werkt!\n" выводить в разных print. В любом случае, The first thing you see written by your program should be a set of HTTP headers, including the Content-Type, followed by a blank line. If you check the Apache error log, you will probably find that it says "Premature end of script headers", possibly along with an error message generated by your CGI program. In this case, you will want to check each of the below sections to see what might be preventing your CGI program from emitting the proper HTTP headers.Т.е. дело таки в некорректном построении HTTP headers скриптом.Может быть у тебя виндовые концы строк?> Что вы имеете в виду и как мне узнать это?Это когда скрипты пишешь в винде, и концы строк кодируются двумя байтами: CR+LF (возврат каретки и перевод строки, наследие печатных телетайпов). Кроме того, убедись что у тебя в конце файла таки есть пустая строка! Почему? См. ru.wikipedia.org/wiki/Конец_строки#.D0.9F.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D0.BD.D1.8F.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B0Я начинаю подозревать что дело именно в этом :)> Вроде нажал лишний enter после текста, результат тот жеИ ошибка в логе не поменялась?Кстати, гугл рекомендует хэдер заканчивать двумя переносами строки, т.е. "print("Content-type:text/plain\r\n\r\n");"

    0
    2 года назад
    Ответить

    Premature end of script headers: test.cgi говорит что у тебя неправильно написан скрипт. Шебанг забыл?

    0
    2 года назад
    Ответить

    Если на сайте появляется ошибка Internal Server Error - 500, первая причина-это некорректный параметр конфигурации FCGI, который не поддерживается системой.Попробуйте по очереди комментировать строчки с параметрами в конфиге FCGI и после этого проверять работу сайта( конечно же после перезагрузки Apache на сервере),чтобы понять какой параметр лишний.

    0
    2 года назад
    Ответить

    Покажите сам cgi/fcgi файл

    0
    2 года назад
    Ответить

    > #!usr/bin/perlОшибка здесь. Сам сообразишь какая? :)

Ваш ответ