LINUX.ORG.RU
ФорумAdmin

Apache CGI - ошибка 500


0

1

ЛОР - последее, куда обращаюсь за советом. Только если уже другие ресурсы бессильны. Виртуальный хост сервера Apache на Ubuntu выдает ошибку 500 при исполнении CGI скриптов. На localhost все скрипты работают.Вот лог ошибки:

(13)Permission denied: exec of '/media/data/HTML/www/cgi/script.cgi' failed
[client 127.0.0.2] Premature end of script headers: script.cgi
Права на все файлы и папки стоят 777. Папка с CGI определяется дерективой
ScriptAlias /cgi/ /media/data/HTML/www/cgi/
которая прописана в файле в директории sites-available. Ума не приложу, в чем проблема. Возможно, потому что с конфигами сталкиваюсь впервые. Возможно кто-нибудь сталкивался с подобным и подскажет?


ЛОР - последее, куда обращаюсь за советом.

Ну и зря.

Права на все файлы и папки стоят 777

Тоже зря :)

Кто владелец /media/data/HTML/www/cgi/? Выложи конфиг куда-нибудь.

o ()

Premature end of script headers

Означает, что скрипт запустился, но либо упал с сегфолтом, либо вернул какую-то фигню.

Так что, копайте, что там у вас в этом CGI.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от o

ЛОР - последее, куда обращаюсь за советом.

Это чтобы не задавать тут «хэлловорлдные» вопросы, которые, как правило, возникают у всех, кто только начинает что-то осваивать.

Вот все конфиги, которые есть: конфиг самого апача(ничего не менял после установки) стандартный конфиг для виртуалхоста мой конфиг

Heleg ()
Ответ на: комментарий от Eddy_Em

Так что, копайте, что там у вас в этом CGI.

скрипт рабочий 100%. Он работает в localhost, ели вы об этом

Heleg ()
Ответ на: комментарий от o

что посмотреть в логах то???? вы меня запутали ps да, кстати владелец - рут

Heleg ()
Ответ на: комментарий от Eddy_Em

это я тоже пробовал - не помогает. может я куда то не туда пихаю этот код?

Heleg ()
Ответ на: комментарий от Heleg

tail -f /var/log/httpd/*

Запускаем CGI и смотрим, что пишут логи.

это я тоже пробовал - не помогает. может я куда то не туда пихаю этот код?

Запросто. Кстати, доступ 777 с владельцем-рутом - нехорошо.

На каком ЯП CGI-то?

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

логи я приводил ведь.

.2] Premature end of script headers: script.cgi
[Tue Aug 16 04:00:20 2011] [error] [client 127.0.0.2] (13)Permission denied: exec of '/media/data/HTML/www/cgi/script.cgi' failed
[Tue Aug 16 04:00:20 2011] [error] [client 127.0.0.2] Premature end of script headers: script.cgi
[Tue Aug 16 04:00:20 2011] [error] [client 127.0.0.2] (13)Permission denied: exec of '/media/data/HTML/www/cgi/script.cgi' failed
[Tue Aug 16 04:00:20 2011] [error] [client 127.0.0.2] Premature end of script headers: script.cgi
[Tue Aug 16 04:01:53 2011] [error] [client 127.0.0.2] (13)Permission denied: exec of '/media/data/HTML/www/cgi/script.cgi' failed
[Tue Aug 16 04:01:53 2011] [error] [client 127.0.0.2] Premature end of script headers: script.cgi
[Tue Aug 16 11:12:41 2011] [error] [client 127.0.0.2] (13)Permission denied: exec of '/media/data/HTML/www/cgi/script.cgi' failed
[Tue Aug 16 11:12:41 2011] [error] [client 127.0.0.2] Premature end of script headers: script.cgi

Почему 777 под рутом не хорошо? на локальной машине вроде не страшно

ЯП — C

Heleg ()
Ответ на: комментарий от Eddy_Em

куда надо прописать?

<Directory "/media/data/HTML/www/cgi/"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory>
я пробовал и в конфиг хоста и в конфиг апача и даже в .htaccess

в логах пишет одно и тоже, нет смысла приводить

Heleg ()
Ответ на: комментарий от Heleg

Ну, например, у меня так работает (/etc/httpd/conf/httpd.conf):

...
DocumentRoot "/var/www/html"
<Directory />
    Options -All -Multiviews -Indexes
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory /home/*/www>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS PROPFIND>
	Order allow,deny
	Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
	Order deny,allow
	Deny from all
    </LimitExcept>
</Directory>
<Directory "/var/www/html">
    Options +Indexes +FollowSymLinks +MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
<Directory "/var/www/cgi-bin">
    AllowOverride All
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>
...

Eddy_Em ☆☆☆☆☆ ()

Кстати, а html-ки то виртуальный хост отдает?

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

эти же директивы будут аналогично работать в sites-available? хтмлки хост отдает и даже пхпшки, а вот cgi не хочет

Heleg ()
Ответ на: комментарий от Heleg

FUUUUUUCK!!! что то с самими файлами на диске или с диском, потому что с переносом виртуального хоста на /home все заработало! изза чего это может быть???

Heleg ()
Ответ на: комментарий от Pinkbyte

Или /media/data подмонтирован с noexec =)

// в общем, телепаты вовсю работают!

Eddy_Em ☆☆☆☆☆ ()

ТС! Ну объясни же ты: зачем пихать корень веб-сервера в /media ?

Ты не в курсе, для чего эта директория?

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Pinkbyte

Да нет, дело не в апаче совсем, как выяснилось. На диске запрещается исполнение файлов всем не только через апач или ещё что-то не так , я пока не разобрался. наверно что-то с монтированием

Heleg ()
Ответ на: комментарий от Eddy_Em

/media/data монтируется через файл fstab вот так

/dev/sdb5 /media/data ntfs-3g umask=0,nls=utf8,user,auto,rw 0 0
а для чего эта директория? я думал, что для всякого говна типа ntfs дисков, которые монтируются при старте системы

Heleg ()
Ответ на: комментарий от Heleg

Для сменных накопителей: флешек, USB-HDD и т.п.

man hier

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

А что, есть принципиальная разница , куда кидать корень локального сервера для тестирования страничек? На нтфс он только, чтобы к файлам был доступ и через винду тоже. А куда тогда правильно монтировать жесткие диски? Где же тогда параметры прав при монтировании? rw? Буковка x к ним ничего не дает

Heleg ()
Ответ на: комментарий от Heleg

Это ntfs! Так что можно забыть о нормальных правах доступа!!!

Как вариант, если уж так хочется «черезжопия», можно создать образ ext2-раздела на этом ntfs-разделе и держать файлы там (монтировать его через loop-device).

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

да нет, не хочется черезжопия. на корень сервака в нтфс я забил уже.

Heleg ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.