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;
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Только links? а другие браузеры как?
Права/владелец на .cgi файл в порядке?
…и ни слова об используемом веб-сервере…
все права в норме, я пробовал запускать этот файл без странички — всё в порядке.
веб сервер apache+ipv6-1.3.29_2
ага, больше всего умиляет то, что для того, чтобы это работало, необходимо, чтобы было установлено DOCUMENT_ROOT=/
супер ;)
а так же разрешение в конфиге апачи выполнять .cgi в любом месте.
это переменная среды? зависит ли она от шелла или шелл не важен?
>> это переменная среды? зависит ли она от шелла или шелл не важен?
Ага, «переменная среды» Apache. Зависит она от httpd.conf.
P.S. А не без «_» ли она? Просто «DocumentRoot» …
дело в том, что links мне сообщает, что не может найти файл, но не выводится в /var/log/httpd-error.log информация о том, что apach не может запустить файла.
ну, в апаче она — именно так, DocumentRoot
только я ж про апачу-то не говорил, а в общем ;)
1) пути к файлам, запрашиваемым в url, относительны к DocumentRoot, и писать реальное их расположение в запросе — это несколько не правильно. как я уже сказал, от этого несколько страдает безопасность (ну, тут, конечно же, много всяких «но», но…)
как вариант решения этой проблемы:
2) для апачи дополнительно необходимо разрешать использовать CGI для определённых папок. поэтому без этой опции, даже если, основываясь на п.1, файл всё же будет найден, то от будет отдаваться как есть, а не исполняться.
решения:
если это из-за апача, то почему, когда я его убиваю links все равно не находит ссылки? я думаю это не из-за апача… это линкс глюченный — проверю в гноме.
хааарашо.
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>
может, всё же, links file:///usr/local/www/data/trial.html ?
если так запустить выдаётся точно такая же ошибка
имхо, челу просто надо было объяснить базовые принципы настройки хттпд.конф
займёшься? ;)
там же ещё надо будет и механизм работы объяснять..
да и по остальным вопросам — тоже надо бы
ps: иногда ощущаешь себя как-то странно: и можешь объяснить, и понимаешь, что браться за объяснения — нет смысла, так как объяснить толково не дадут, отвлекая постоянно по работе :(
мысль потом, после таких овлечений, поди, поймай..
Ну и объяснил бы. Иначе, твоя реплика как пустой звук — ничего полезного не несёт ни автору вопроса, ни тебе, ни кому либо ещё.