Невозможно настроить виртуальные хосты на apache2 под windows 7 - возвращает ошибку 403 - PullRequest
0 голосов
/ 04 марта 2012

Доброе время суток! Я успешно использовал apache + php на Windows 7, но теперь я решил создать пару виртуальных хостов. Я добавил в конец конфига apache такой раздел:

<virtualhost> 
ServerAdmin yourmail@domain.com 
ServerName jiifirst 
DocumentRoot "c :/ apache2/web/jiifirst/htdocs" 
ScriptAlias ​​/ cgi-bin / "c :/ apache2/web/jiifirst/cgi-bin /" 
ErrorLog c :/ apache2 / web / jiifirst / logs / error.log 
CustomLog c :/ apache2/web/jiifirst/logs/access.log common 
</ virtualhost>

Затем созданы соответствующие папки. Однако, когда я пытаюсь позвонить http://127.0.0.2/test.php появляется такая ошибка:

ошибка запрещена У вас нет прав доступа к / test.php на этом сервере.

В то же время я могу получить доступ к localhost без проблем. Я также изменил права на папки. Какие настройки apache я должен изменить, чтобы решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Реальное решение моей проблемы было в разделе

Опции FollowSymLinks AllowOverride Нет Заказать отказать, разрешить Отрицать все

Мне просто нужно было изменить Запретить со всех на Разрешить со всех Теперь все работает довольно хорошо!

0 голосов
/ 12 марта 2012

Во-первых, что со всеми пробелами в конфигурации?Например, "c :/ apache2/web/jiifirst/htdocs".Это не ваш настоящий конфиг;как ты вырезал и вставлял это?

Во-вторых, вы говорите с сервером как http://127.0.0.2.Да, это IP-адрес сервера, но в HTTP (не ниже 1.1 и более поздних) адрес означает нечто большее, чем просто идентификация сетевой карты на компьютере.Он идентифицирует домен веб-сайта.Адрес входит в протокол, и веб-сервер может решить, какой веб-сайт предоставить клиенту (с тем же IP-адресом).

Ваш VirtualHost определяет веб-сайт, чейдоменное имя jiifirst.Это не соответствует IP-доступу 127.0.0.2.

Однако, в любом случае, может соответствовать VirtualHost.В вашем VirtualHost отсутствуют поля соответствия адресов и портов, но если оно выглядит примерно так:

<VirtualHost *:80>

, это означает, что VirtualHost может сопоставить запрос на основе IP с любого адресапорт 80. Если Apache не может найти точное совпадение для имени хоста среди каких-либо записей VirtualHost (и у вас нет специального VirtualHost по умолчанию), он выберет первое в порядке появления, совпадающее с адресом,

Отсутствие адреса на <VirtualHost> может быть причиной того, что вещи не происходят (и, возможно, пробелы, если они действительно реальны).

...