nixp.ru v3.0

19 октября 2017,
четверг,
17:44:21 MSK

DevOps с компанией «Флант»
Fatal написал 16 марта 2005 года в 12:03 (580 просмотров) Ведет себя как мужчина; открыл 123 темы в форуме, оставил 484 комментария на сайте.

html-страница имеет следующий код:

здесь три варианта прописи пути для cgi-файла
<center>
<form action=«perl.cgi» name=«form1» method=«post» id=«form1»>

<input type=«submit» value=«click!»>
</form>
</center>
<center>
<form action=«/home/alek/works/perl.cgi» name=«form1» method=«post» id=«form1»>

<input type=«submit» value=«click!»>
</form>
</center>
<center>
<form action=«http://localhost/home/alek/works/perl.cgi» name=«form1» method=«post» id=«form1»>

<input type=«submit» value=«click!»>
</form>
</center>

подскажите, пожалуйста, почему не находит links cgi файла

пишет bad url no such file or directory

cgi файл:

#!/usr/bin/perl

open(COUNTER,«>/home/alek/myfile») or die «can’t open file»;

close COUNTER;

Master

Только links? а другие браузеры как?

Права/владелец на .cgi файл в порядке?

…и ни слова об используемом веб-сервере…

Fatal

все права в норме, я пробовал запускать этот файл без странички — всё в порядке.

веб сервер apache+ipv6-1.3.29_2

Genie

ага, больше всего умиляет то, что для того, чтобы это работало, необходимо, чтобы было установлено DOCUMENT_ROOT=/

супер ;)

а так же разрешение в конфиге апачи выполнять .cgi в любом месте.

Fatal
Genie
DOCUMENT_ROOT=/

это переменная среды? зависит ли она от шелла или шелл не важен?

Дмитрий Шурупов

>> это переменная среды? зависит ли она от шелла или шелл не важен?

Ага, «переменная среды» Apache. Зависит она от httpd.conf.

P.S. А не без «_» ли она? Просто «DocumentRoot» …

Fatal

дело в том, что links мне сообщает, что не может найти файл, но не выводится в /var/log/httpd-error.log информация о том, что apach не может запустить файла.

Genie
P.S. А не без «_» ли она? Просто «DocumentRoot» .

ну, в апаче она — именно так, DocumentRoot

только я ж про апачу-то не говорил, а в общем ;)

1) пути к файлам, запрашиваемым в url, относительны к DocumentRoot, и писать реальное их расположение в запросе — это несколько не правильно. как я уже сказал, от этого несколько страдает безопасность (ну, тут, конечно же, много всяких «но», но…)

как вариант решения этой проблемы:

  • использовать символические ссылки;


  • использовать директиву Alias в конфиге апачи.

2) для апачи дополнительно необходимо разрешать использовать CGI для определённых папок. поэтому без этой опции, даже если, основываясь на п.1, файл всё же будет найден, то от будет отдаваться как есть, а не исполняться.

решения:

  • содержать cgi в одной папке, для которой прописана опция +ExecCGI;


  • использовать ScriptAlias.
Fatal

если это из-за апача, то почему, когда я его убиваю links все равно не находит ссылки? я думаю это не из-за апача… это линкс глюченный — проверю в гноме.

Genie

хааарашо.

DocumentRoot по умолчанию в конфиге выставляется в /var/www

как оно доберётся тебе до указанного тобой /home/alek/works/perl.cgi ??

или этот самый /home/alek/works/perl.cgi находится на самом деле в /var/www/home/alek/works/perl.cgi ?

а? Или DocumentRoot у тебя равен «/» ?

ответы, полные и развёрнутые приветствуются.

Fatal
Genie
хааарашо.

DocumentRoot по умолчанию в конфиге выставляется в /var/www

как оно доберётся тебе до указанного тобой /home/alek/works/perl.cgi ??

или этот самый /home/alek/works/perl.cgi находится на самом деле в /var/www/home/alek/works/perl.cgi ?

а? Или DocumentRoot у тебя равен «/» ?

ответы, полные и развёрнутые приветствуются.

по умолчанию так:

DocumentRoot «/usr/local/www/data»

где data ссылка на дерикторию /usr/local/www/data-dist

копирую perl.cgi в /usr/local/www/data на всякий случай я копирую trial.html туда же

изменяю права на 0777, что бы не париться пока

затем изменяю html код — прописываю путь к perl.cgi:
<form action=«perl.cgi» name=«form1» method=«post» id=«form1»>

потом запускаю

links /usr/local/www/data/trial.html

выдаётся:

Error loading file:////usr/local/www/data/trial.html:

Bad URL syntax
</form>

Genie

может, всё же, links file:///usr/local/www/data/trial.html ?

Fatal
Genie
может, всё же, links file:///usr/local/www/data/trial.html ?

если так запустить выдаётся точно такая же ошибка

anonymous

имхо, челу просто надо было объяснить базовые принципы настройки хттпд.конф

Genie

займёшься? ;)

там же ещё надо будет и механизм работы объяснять..

да и по остальным вопросам — тоже надо бы

ps: иногда ощущаешь себя как-то странно: и можешь объяснить, и понимаешь, что браться за объяснения — нет смысла, так как объяснить толково не дадут, отвлекая постоянно по работе :(

мысль потом, после таких овлечений, поди, поймай..

fly4life
lol-99
имхо, челу просто надо было объяснить базовые принципы настройки хттпд.конф

Ну и объяснил бы. Иначе, твоя реплика как пустой звук — ничего полезного не несёт ни автору вопроса, ни тебе, ни кому либо ещё.