LINUX.ORG.RU

[Apache] содержание скрипта вместо исполнения

 


0

0

Есть некий скрипт в /cgi-bin/script, на который сделан симлинк в /htdocs/script. При попытке исполнить скрипт как http://server/script, апач выдает его содержание, вместо результата работы. Как можно поправить?

anonymous
Ответ на: комментарий от friday

ScriptAlias равно ли Options +ExecCGI? Второе у меня не заработало :(

Если сделать ScriptAlias к директории то все файлы в ней начинают трактоваться сервером как выполняемые, т.е. при запросе статического .html из такой директории получаем 403 Forbidden.

Давайте я опишу задачу более конкретно?

/srv/www/cgi-bin/download-calc -- шелл скрипт для подсчета времени загрузки файла
/srv/www/cgi-bin/download-calc-run-cgiwrap -- враппер для download-calc, делает echo "Content-encoding" перед выводом download-calc. Для непосредственной работы "руками" или в ссылках.
/srv/www/cgi-bin/download-calc-form-cgiwrap -- враппер, обрабатывает GET запросы из формочек, передает параметры download-calc.

/srv/www/htdocs/download-calc/index.html -- страничка с формами
/srv/www/htdocs/download-calc/calc -> ../../cgi-bin/download-calc-run-cgiwrap
/srv/www/htdocs/download-calc/calc-form -> ../../cgi-bin/download-calc-form-cgiwrap

Я хочу чтобы при запросе http://server/download-calc передавался index.html. В то же время, чтобы можно было вызывать скрипты примерно так http://server/download-calc/calc?-s+128k+-v+700m

Как я говорил, если сделать ScriptAlias /download-calc/ "/srv/www/htdocs/download-calc/", получаем 403 при запросе индекса.

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

Вот, кстати, как оно работает на практике :) :

http://xuantaiyang.dyndns.org/download-calc

Но проблему я все-равно не решил, т.е. скрипты вызываются не из ./, а из ../../cgi-bin/, что немножко неуклюже. Может есть какое-то решение?

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

> Если сделать ScriptAlias к директории то все файлы в ней начинают трактоваться сервером как выполняемые, т.е. при запросе статического .html из такой директории получаем 403 Forbidden.

Ну мозги-то тоже включать не забываем. Ясен пень, что не ко всей директории, а а только к тем файлам, которые надо выполнять. Можешь покурить апачемануал на предмет <Files> и <Location>

> Как я говорил, если сделать ScriptAlias /download-calc/ "/srv/www/htdocs/download-calc/", получаем 403 при запросе индекса.

А разве download-calc - это каталог? Так зачем ты его как каталог прописываешь?

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

> Ясен пень, что не ко всей директории, а а только к тем файлам, которые надо выполнять. Можешь покурить апачемануал на предмет <Files> и <Location>

Спасибо за наводку, посмотрю.

> А разве download-calc - это каталог? Так зачем ты его как каталог прописываешь?

Да, вполне себе каталог (во втором посте это есть)

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

Блин, какая-то ерунда :(

Вариант 1:
ScriptAlias /download-calc/	"/srv/www/htdocs/download-calc/"
<Files "/srv/www/htdocs/download-calc/index.html">
    Options -ExecCGI
</Files>
# -или-
<Location "/download-calc/index.html">
    Options -ExecCGI
</Location>

Вариант 2:
#ScriptAlias /download-calc/	"/srv/www/htdocs/download-calc/"
<Files "/srv/www/htdocs/download-calc/calc">
    Options +ExecCGI
</Files>

Оба варианта не работают, т.е. либо 403 для index.html, либо содержание скрипта
вместо исполнения :(

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