Ув. All !Подскажите пожалуйста как организовть запуск скриптов из корневого каталога, и всем вложенным папкам. Другими словами я хочу организовать запуск скриптов из любогй директории внутри DocumentRoot, а от /cgi-bin/ отказаться навсегда. Стоит Apache2(FreeBSD 5.3). Пробовал ставить ExecCGI на директорию - ноль эмоций. Помогло только ScriptAlias / "/www/site_root/", cgi запускаются, php - нет. А во всех других случаях: php - OK, CGI - source code. Что делать ?
>Ув. All !
>
>Подскажите пожалуйста как организовть запуск скриптов из корневого каталога, и всем вложенным
>папкам. Другими словами я хочу организовать запуск скриптов из любогй директории
>внутри DocumentRoot, а от /cgi-bin/ отказаться навсегда. Стоит Apache2(FreeBSD 5.3). Пробовал
>ставить ExecCGI на директорию - ноль эмоций. Помогло только ScriptAlias /
>"/www/site_root/", cgi запускаются, php - нет. А во всех других случаях:
>php - OK, CGI - source code. Что делать ?mod_perl рулит однозначно. Можно свзязать по расширению скрипты.
Если без mod_perl - то покажите ваш httpd.conf
>
>mod_perl рулит однозначно. Можно свзязать по расширению скрипты.
>По расширению - да. Скрипты с расширением можно обработать с помощью "AddHandler cgi-script". А вот что делать с приложениями и скриптами не имеющие расширений. Самое интересное что в cgi-bin запускается, лишь бы "chmod +x" был, запустит что угодно. А вот как бы это распространить на все остальные папки. Заметил ещё что опция ExecCGI не дает абсолютно никакого эффекта. Апач ставился из стандактного порта.
>
>Если без mod_perl - то покажите ваш httpd.conf
>
Какой участок ? Он же огромный.
После многих своих экспериментов над апачем - я его переставил, т.ч. там сейчас std конфиг, только директории прописаны. Но если действительно надо - скажите какой участок и я покажу.
Спасибо за участие и помощь.
>>
>>mod_perl рулит однозначно. Можно свзязать по расширению скрипты.
>>
>
>По расширению - да. Скрипты с расширением можно обработать с помощью "AddHandler
>cgi-script". А вот что делать с приложениями и скриптами не имеющие
>расширений. Самое интересное что в cgi-bin запускается, лишь бы "chmod +x"
>был, запустит что угодно. А вот как бы это распространить на
>все остальные папки. Заметил ещё что опция ExecCGI не дает абсолютно
>никакого эффекта. Апач ставился из стандактного порта.
>
>>
>>Если без mod_perl - то покажите ваш httpd.conf
>>
>Какой участок ? Он же огромный.
>После многих своих экспериментов над апачем - я его переставил, т.ч. там
>сейчас std конфиг, только директории прописаны. Но если действительно надо -
>скажите какой участок и я покажу.
>
>
>Спасибо за участие и помощь.
А зачем вам скрипты без расширений потребовались?
Файл httpd.conf не такой уж и огромный, просто коментарии вырежте и покажите. Ну если говорить об участке - то именно тот участок где вы прописывали ExecCGI. Но только не дефолтный конфиг, его я и так видел.
>А зачем вам скрипты без расширений потребовались?Ну это как бы не скрипты, это приложения с html-stdout. Самое нехорошее то, что файл нельзя переназвать, например добавив ему pl или cgi расширение. Не будут работать связные с ним приложения :(
>Файл httpd.conf не такой уж и огромный, просто коментарии вырежте и покажите.
>Ну если говорить об участке - то именно тот участок где
>вы прописывали ExecCGI. Но только не дефолтный конфиг, его я и
>так видел.Вот. Повырезал стандартные значения типа параметров CodePage и LOG-файлов...
--------------------------------------------------------------------
ServerRoot "/usr/local"
PidFile /var/run/httpd.pid
Listen 80
User www
Group www
UseCanonicalName Off
DocumentRoot "/usr/local/www/data"<Directory />
AllowOverride All
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory><Directory "/usr/local/www/data">
Options ExecCGI FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>DirectoryIndex index.php index.html index.htm
DefaultType text/html
HostnameLookups On
ServerTokens Full
ServerSignature OnScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"
<Directory "/usr/local/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>IndexOptions FancyIndexing VersionSort
DefaultLanguage ru
AddDefaultCharset WINDOWS-1251AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps#AddHandler cgi-script .cgi
<IfModule mod_ssl.c>
Include etc/apache2/ssl.conf
</IfModule># VirtualHost отключены все
ScriptAlias / "/usr/local/www/"<Directory "/usr/local/www/">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>Попробуйте вот так.
>ScriptAlias / "/usr/local/www/"
>
><Directory "/usr/local/www/">
> AllowOverride None
> Options ExecCGI
> Order allow,deny
> Allow from all
></Directory>
>
>Попробуйте вот так.Пробовал. Всё работает на ура, за исключением прямого доступа к файлам (не скриптам). Т.е. чтение, запись файлов посредством вызова из скрипта работает отлично, а через прямой линк - получаю либо 403 либо 500. В логах пишет что не верный заголовок скрипта. Апач воспринимает все файлы как скрипты (стандартно, как для /cgi-bin/). Казалось бы ничего, в моей ситуации это не страшно, страшно - что тогда перестает работать php. Я даже пробовал отключать mod_php и пользоватся php как интерпретатором (#!/usr/local/bin/php). Результатов не дало.
Начинаю думать что может и не умеет он то что я хочу с настройками по умолчанию (из порта), может как-то собрать его надо по хитрому, со спец. эфектами. Если я не ошибаюсь, то кажется в Apache 1.xx это решалось проще. Там кажеться было достаточно указания ExecCGI в опциях. А вот в моём случае она точно не работает, даже со скриптами с расширением. Если ScriptAlias указан - запускается даже с Options None и Deny from all. А если нету алиаса - то даже Options All не спасает, на экране видно исходный код скрипта. На php вообще никак не влияет, единственный аргумент - наличие chmod +x, ExecCGI тоже не влияет на запуск .php
SetHandler cgi-script