Пытаю скрипты из дистрибутива, test-cgi и printenvВ httpd-error.log пишет
[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] (22)Invalid argument: exec of '/usr/local/www/apache22/cgi-bin/test-cgi' failed
[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] Premature end of script headers: test-cgi
[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] File does not exist: /usr/local/www/apache22/data/favicon.ico, referer: http://myhost/cgi-bin/test-cgiПоставил без SUEXEC - не помогло.
Ось фрибзди 6.2
Где копать? В сети много советов об этом, но все о неправильном HTTP-заголовке, но эти скрипты - из дистрибутива. Suexec удалил, Options +ExecCGI добавил. Может кто уже побеждал сей трабл? В стандартном конфиге почти ничего не менял, только включил extra/httpd-ssl.conf и /svn для mod_dav_svn
<Directory "/usr/local/www/apache22/cgi-bin">
AllowOverride None
Options None +ExecCGI
Order allow,deny
Allow from all
</Directory>
>Где копать? В сети много советов об этом, но все о неправильном
>HTTP-заголовке,[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] Premature end of script headers: test-cgi - а это о чем?
Посмотри сам скрипт(test-cgi) может там чего не так, printenv работает?
>>Где копать? В сети много советов об этом, но все о неправильном
>>HTTP-заголовке,
>
>[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] Premature end of script
>headers: test-cgi - а это о чем?
>
>Посмотри сам скрипт(test-cgi) может там чего не так, printenv работает?
Нет, не работают оба. Эти скрипты ставит дистрибутив, посмотри у себя в cgi-bin и их найдёшь, если не удалял. CGI не могу заставить работать, каких-то настроек не хватает Апачу, или прав, хотя вроде всё стоит правильно, ХЗ чё ей нада
>Options None +ExecCGIПопробуйте без None
Options +ExecCGI
chmod +x script_name
>
>>Options None +ExecCGI
>
>Попробуйте без None
>Options +ExecCGIспасибо за совет, но ее помогло даже Options All
а права я первым делом установил-rwxr-xr-x 1 www www 294 11 дек 2004 printenv
-rwxr-xr-x 1 www www 294 11 дек 2004 printenv.cgi
-rwxr-xr-x 1 www www 779 11 дек 2004 test-cgiдумал, может без расширения не понимает - всё равно такая же фигня
[Sat Jun 09 09:54:22 2007] [error] [client 1.1.1.1] (22)Invalid argument: exec of '/usr/local/www/apache22/cgi-bin/printenv.cgi' failed
[Sat Jun 09 09:54:22 2007] [error] [client 1.1.1.1] Premature end of script headers: printenv.cgiНеужели это только у меня гемморой - я из портов дистрибутив поставил, обычная ось, релиз 6.2.0
>Пытаю скрипты из дистрибутива, test-cgi и printenv
>[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] (22)Invalid argument: exec of
>'/usr/local/www/apache22/cgi-bin/test-cgi' failed
>[Fri Jun 08 16:57:00 2007] [error] [client 111.111.111.111] Premature end of script
>headers: test-cgi
Нашёл грабли: Ошибка исчезла, когда пересобрал индейца с WITH_BERKELEYDB=db42 , сначала собрал с db44, хотел типа как лучше, 4.4.20 посвежее. Всё работало, и Subversion с --fs-type=bdb для которого собственно и предназначался бэкенд. Замечательный секс, 2 дня трахался :D Причина неясна, но может кто опят наступит
Началась пляска с бубном: поставил всё то же самое (один в один) на другой машине, на этот раз с WITH_BERKELEYDB=42 (теперь умный!) - та же ошибкаFri Jun 15 19:42:01 2007] [error] (22)Invalid argument: exec of '/usr/local/www/apache22/cgi-bin/test-cgi' failed
[Fri Jun 15 19:42:01 2007] [error] [client 10.0.0.3] Premature end of script headers: test-cgiА на первой машине всё работает. Причём грабли именно c berkeley db, без этого бэкенда всё замечательно. Это типа у неё автоматом - 2 дня гемороя сисадмину положено независимо от опыта и версии ПО?! :D
>[оверквотинг удален]
>
>Fri Jun 15 19:42:01 2007] [error] (22)Invalid argument: exec of '/usr/local/www/apache22/cgi-bin/test-cgi' failed
>
>[Fri Jun 15 19:42:01 2007] [error] [client 10.0.0.3] Premature end of script
>headers: test-cgi
>
>А на первой машине всё работает. Причём грабли именно c berkeley db,
>без этого бэкенда всё замечательно. Это типа у неё автоматом -
>2 дня гемороя сисадмину положено независимо от опыта и версии ПО?!
>:DВсе гораздо проще
sed -i -e 's/usr\/local\/bin/usr\/bin/' /var/www/localhost/cgi-bin/printenv
или
ln -s /usr/bin/perl /usr/local/bin/perl