Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как настроить Perl-Apache?
 
 автор: ck   (12.11.2005 в 17:52)   письмо автору
 
 

Сейчас DocumentRoot установлен как c:\Home_server\Pages . В этой папке есть подкаталог cgi-bin. Сам сервер работает, однако при вводе адреса http://localhost/cgi-bin/ сообщает, что доступ к папке закрыт, а файлы внутри нее не находит (404).
Настройка cgi-bin в файле конфигурации выглядит так:

ScriptAlias /cgi-bin/ "C:\Home_server\Pages\cgi-bin"
ScriptAlias /cgi/ "C:Home_server\cgi-bin\"

AddHandler выглядит так:

AddHandler cgi-script .cgi .bat .exe .pl

Заранее большое спасибо.

   
 
 автор: glsv (Дизайнер)   (12.11.2005 в 22:11)   письмо автору
 
   для: ck   (12.11.2005 в 17:52)
 

>однако при вводе адреса http://localhost/cgi-bin/ сообщает, что доступ к папке закрыт, а файлы внутри нее не находит (404).
А как вы обращаетесь к cgi-скрипту? Приведите URL.

Попробуйте так:

Alias /cgi/  "C:/Home_server/cgi-bin/"
<Directory "C:/Home_server/cgi-bin">
  Options ExecCGI
  AddHandler cgi-script .cgi .bat .exe .pl
</Directory>

Обратите внимание в какую сторону повернуты слеши в путях. Закомментируйте все директивы ScriptAlias.

   
 
 автор: ck   (13.11.2005 в 03:28)   письмо автору
 
   для: glsv (Дизайнер)   (12.11.2005 в 22:11)
 

Настройки уже именно так и выглядят.
URL, приводящее к ошибке 403:
http://localhost/cgi-bin/
к 404:
http://localhost/cgi-bin/untitled.pl

Жду ответа. Заранее большое спасибо.

   
 
 автор: glsv (Дизайнер)   (13.11.2005 в 19:28)   письмо автору
 
   для: ck   (13.11.2005 в 03:28)
 

Прикрепите Ваш httpd.conf в форум.

   
 
 автор: ck   (15.11.2005 в 22:00)   письмо автору
 
   для: glsv (Дизайнер)   (13.11.2005 в 19:28)
 

Выкладываю. Спасибо за участие, Дизайнер.
ps. С господином Симдяновым мне уже доводилось общаться здесь, а с Вами нет, поэтому, пользуясь случаем, хочу поблагодарить Вас за замечательную книгу. (Я имею в виду "PHP 5. Практика создания web-сайтов").

   
 
 автор: glsv (Дизайнер)   (15.11.2005 в 23:41)   письмо автору
 
   для: ck   (15.11.2005 в 22:00)
 

Вместо

ScriptAlias /cgi-bin/ "C:/Home_server/Pages/cgi-bin"

нужно писать

ScriptAlias /cgi-bin/ "C:/Home_server/Pages/cgi-bin/"

Закрывающий слеш пропущен.
Ошибка также фиксируется в лог-файле error.log

>пользуясь случаем, хочу поблагодарить Вас за замечательную книгу.
Спасибо за добрый отзыв.

   
 
 автор: ck   (17.11.2005 в 21:48)   письмо автору
 
   для: glsv (Дизайнер)   (15.11.2005 в 23:41)
 

Огромное спасибо. Действительно, Perl заработал. Вопрос из любопытства - то, что при попытке прямого доступа из адресной строки в саму папку ("http://localhost/cgi-bin/") сообщается о закрытом доступе (403) - это в порядке вещей? Потому что это есть и сейчас, хотя ни на что, конечно, на практике не влияет.

   
 
 автор: glsv (Дизайнер)   (18.11.2005 в 08:56)   письмо автору
 
   для: ck   (17.11.2005 в 21:48)
 

>это в порядке вещей
Да, так и должно быть. Это сделано для увеличения пассивной безопасности.
Попробуйте добавить директиву Options Indexes в контейнер директории cgi

<Directory "C:/Home_server/cgi-bin"> 
  Options Indexes ExecCGI 
  AddHandler cgi-script .cgi .bat .exe .pl 
</Directory>

   
 
 автор: ck   (17.11.2005 в 22:00)   письмо автору
 
   для: glsv (Дизайнер)   (15.11.2005 в 23:41)
 

Дизайнер, я только что выяснил, что теперь есть другая проблемка - если файл с расширением, например, ".pl" разместить не с папке cgi-bin, а, скажем, в корневой, то при обращении к нему - та же ошибка доступа (403). Это можно исправить, или так и должно быть? Выходит, если я разрабатываю на localhost разные файлы и они размещаются, соответственно, в подкаталогах "localhost/cat1", "localhost/cat2"...'localhost/catn", то серверные скрипты Perl-а все предстоит хранить в одной папке корневого каталога?

   
 
 автор: glsv (Дизайнер)   (18.11.2005 в 08:51)   письмо автору
 
   для: ck   (17.11.2005 в 22:00)
 

Так и должно быть.
Ведь ScriptAlias указывается только на строго определеные папки

ScriptAlias /cgi-bin/ "C:/Home_server/Pages/cgi-bin/

Соответсвенно только в них и будут исполняться cgi. Добавьте аналогичные директивы для других директорий, если это необходимо.

   
 
 автор: tel   (18.11.2005 в 15:23)
 
   для: glsv (Дизайнер)   (18.11.2005 в 08:51)
 

ScriptAlias /cgi-bin/ "C:/App/Apache2/cgi-bin/"
ScriptAlias /cgi-bin/ "C:/App/Apache2/htdocs/"
не работает

   
 
 автор: tel   (18.11.2005 в 15:33)
 
   для: tel   (18.11.2005 в 15:23)
 

Как настроить? У меня Forbidden на http://127.0.0.1/p.pl и http://127.0.0.1/php.php

ScriptAlias /cgi-bin/ "C:/App/Apache2/cgi-bin/"
ScriptAlias /cgi-bin/ "C:/App/Apache2/htdocs/"

<Directory "C:/App/Apache2/cgi-bin">
    AllowOverride All 
Options  Indexes ExecCGI 
    Order allow,deny
    Allow from all
</Directory>

не работает пхп
а перл только с .pl Хм.. c .cgi он выдает код

AddType application/x-perl .cgi .pl
AddHandler cgi-script .bat .exe .pl .cgi .php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps    

почему

   
 
 автор: glsv (Дизайнер)   (20.11.2005 в 22:47)   письмо автору
 
   для: tel   (18.11.2005 в 15:33)
 

>не работает пхп
Для подключения php руководствуйтесь статьей по ссылке

http://www.softtime.ru/info/articlephp.php?id_article=24

   
 
 автор: glsv (Дизайнер)   (20.11.2005 в 22:46)   письмо автору
 
   для: tel   (18.11.2005 в 15:23)
 

Кроме прописывания псевдонима для cgi

ScriptAlias /cgi-bin/ "C:/App/Apache2/htdocs/"

Нужно также указать для этой директории, что в ней можно исполнять cgi-приложения.

<Directory "C:/Apache2/htdocs"> 
  Options ExecCGI 
</Directory>


Но здесь очень важный момент. Вы НЕ ДОЛЖНЫ размещать свои cgi-скрипты по всему серверу, а тем более в директории htdocs.
CGI скрипты должны размещаться вне дерева документов web-сервера. Т.е. если DocumentRoot указывает на htdocs, например:

DocumentRoot /www/htdocs

То каталог с CGI-скриптами не должен лежать внутри htdocs и нельзя разрешать выполнение CGI в самом каталоге htdocs. Каталог в cgi-скриптами должен лежать выше, либо на одном уровне с htdocs

ScriptAlias /cgi-bin/ "/www/cgi-bin/"


Конечно, в случае локального сервера, предназначенного для тестирования, эти рекомендации не имеют значения. Это важно для защиты интернетовского сервера.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования