Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Проще, думаю, будет разобраться на примере. Как написано в... 29.01.05 22:27 Число просмотров: 4260
Автор: Heller <Heller> Статус: Elderman
|
Проще, думаю, будет разобраться на примере. Как написано в статье:
Alias /perl/ /home/httpd/perl/
PerlModule Apache::Registry
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
PerlSendHeader On
allow from all
</Location>
Там есть несколько таких типовых "конфигураций" - для остальных рассуждения аналогичные.
Разбираем по строчкам:
Alias /perl/ /home/httpd/perl/
Создание алиаса, то есть "синонима". Другими словами http://127.0.0.1/perl/ - тоже самое что и file:///home/httpd/perl/. Честно, не знаю как объяснить по-человечески, но, думаю, всё понятно. Эту строчку можно смело удалять - она нам не нужна.
PerlModule Apache::Registry
Подключение mod_perl - без этого никуда, оставляем, только лучше перенести это повыше - в самое начало второй секции.
<Location /perl>
...
</Location>
Внутри этой конструкции указываются настройки, которые будут действовать для директории сервера /perl. Что бы они начали действовать везде, необходимо "то что внутри" прописать для стандартной директории, то есть внутри конструкции
<Directory />
...
</Directory>
Теперь разберёмся с "внутренними" настройками "/perl" и изменим что надо.
SetHandler perl-script
Эта строчка указывает, что в "/perl" лежат perl-скрипты. Если мы хотим использовать их где угодно наряду с другими обработчиками, а не отдельно в одной папке, то нам выгоднее будет использование конструкции
AddHandler perl-script .pl
за пределами
<Directory />
...
</Directory>
(там ниже будет отдельная "подсекция" для AddHander'ов). Эта конструкция заставляет Апач воспринимать .pl-файлы как Перл-скрипты независимо от местоположения (однако сама по себе без PerlModule ничего не значит)
PerlHandler Apache::Registry
PerlSendHeader On
По логике вещей задают тоже обработчики Perl - я не вникал. Попробуй перенести эти строчки опять же для стандартной папки - должно сработать. Если нет, то тогда надо будет дополнительно почитать про эти директивы, хотя проблем возникнуть не должно.
Options ExecCGI
Эта директива говорит о том, что для папки разрешено выполнять CGI-сценарии (Perl к ним относится). Там есть много различных значений, но скорее всего пригодятся только Includes и Indexes - первая для включения SSI, вторая для поддержки "индексных" файлов типа index.html, которые прописываются в DirectoryIndex. То есть должно быть (в общем случае) так:
Options ExecCGI Incdexes Includes
allow from all
Эта директива говорит о том, что доступ до данной папки доступен всем желающим - стоит оставить без изменений. Полезна только тогда, когда есть желание перекрыть доспуп до сайта отдельным пользователям или странам.
Итого должно получиться следующее:
PerlModule Apache::Registry
<Directory />
PerlHandler Apache::Registry
Options ExecCGI Includes Indexes
PerlSendHeader On
allow from all
</Directory>
AddHandler perl-script .pl
Несколько заключительных комментариев.
Указанное выше надо не дополнительно прописывать в httpd.conf, а изменять уже существующие записи для стандартной директории (в начале второй секции уже стоят настройки по умолчанию).
Options и Allow выставляются вообще говоря исключительно по желанию - непосредственно на perl-сценарии они никак не влияют. Однако если есть желание использовать SSI, то для первого Apache должна быть добавлена директива AddHandler server-parsed, а для второго Апача AddOutputFilter, однако если вы уже использовали SSI, то они должны быть и без того настроены как надо.
Как уже говорил, в директивах PerlSendHeader и PerlHandler я не разбирался и возможно где-то наврал. Если это так, то надо будет просто поискать о них информацию - Яндекс, думаю, про них много знает.
|
|
|