Добавление VirtualHost завершается неудачно: Access Forbidden Error 403 (XAMPP) (Windows 7) - PullRequest
147 голосов
/ 02 февраля 2012

У меня установлена ​​ОС XAMPP на Windows 7.

Как только я добавлю VirtualHost в httpd-vhosts.conf, ОБА 'обычный' http://localhost И новый dropbox.local arenне работает.

Это то, что я добавил в свой httpd-vhosts.conf:

<VirtualHost *:80>
    ServerAdmin postmaster@dummy-host.localhost
    DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
    ServerName dropbox.local
    ServerAlias www.dropbox.local
    ErrorLog "logs/dropbox.local-error.log"
    CustomLog "logs/dropbox.local-access.log" combined
</VirtualHost>

Поэтому я посмотрел свой файл dropbox.local-error.log для получения любой информации:

[Thu Feb 02 10:41:57 2012] [error] [client 127.0.0.1] client denied by server configuration: E:/Documenten/Dropbox/Dropbox/dummy-htdocs/

Эта ошибка, кажется, решается добавлением

<directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
     Allow from all
</directory>

Но теперь я получаю эту ошибку в dropbox.local-error.log:

[Thu Feb 02 10:45:56 2012] [error] [client ::1] Directory index forbidden by Options directive: E:/Documenten/Dropbox/Dropbox/dummy-htdocs/

Кроме того, когдаЯ пытаюсь получить доступ к http://localhost, я не получаю никакой ошибки в обычном error.log, хотя я получаю error 403, когда пытаюсь получить к нему доступ.

Может кто-нибудь помочь ... Это сводит меня с ума: S

РЕДАКТИРОВАТЬ: Также в httpd.conf есть следующее (я видел, что это упоминалось несколько раз, поэтому, прежде чем кто-то скажет это):

<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

Ответы [ 9 ]

319 голосов
/ 02 февраля 2012

Хорошо: это то, что я сделал сейчас, и это решено:

Мой httpd-vhosts.conf выглядит следующим образом:

<VirtualHost dropbox.local:80>
    DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
    ServerName dropbox.local
    ErrorLog "logs/dropbox.local-error.log"
    CustomLog "logs/dropbox.local-access.log" combined
    <Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
        # AllowOverride All      # Deprecated
        # Order Allow,Deny       # Deprecated
        # Allow from all         # Deprecated

        # --New way of doing it
        Require all granted    
    </Directory>
</VirtualHost>

Сначала я увидел, что необходимо установить параметры <Directory xx:xx>. Поэтому я положил <Directory > [..] </Directory> -часть ВНУТРИ <VirtualHost > [..] </VirtualHost>. После этого я добавил AllowOverride AuthConfig Indexes в опции <Directory>.

Теперь http://localhost также указывает на dropbox-virtualhost. Поэтому я добавил dropbox.local к <VirtualHost *:80>, что делает его <VirtualHost dropbox.local:80>

НАКОНЕЦ работает: D!

Я счастливый человек! :):)

Я надеюсь, что кто-то еще может использовать эту информацию.

57 голосов
/ 15 октября 2012

У меня сработало, когда я поменял содержимое "каталога" на это:

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>
9 голосов
/ 14 марта 2013

Для меня (также XAMPP в Windows 7) вот что сработало:

<Directory "C:\projects\myfolder\htdocs">`
   AllowOverride All
   Require all granted
   Options Indexes FollowSymLinks
</Directory>` 

Именно эта строка вызовет 403:

Order allow,deny
8 голосов
/ 02 августа 2013

Я использую XAMPP 1.6.7 в Windows 7. Эта статья работает для меня.

Я добавил следующие строки в файл httpd-vhosts.conf в C:/xampp/apache/conf/extra.
Я также раскомментировал строку # NameVirtualHost *:80

<VirtualHost mysite.dev:80>
    DocumentRoot "C:/xampp/htdocs/mysite"
    ServerName mysite.dev
    ServerAlias mysite.dev
    <Directory "C:/xampp/htdocs/mysite">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

После перезапуска apache он все еще не работал.Затем я должен был выполнить шаг 9, упомянутый в статье, отредактировав файл C:/Windows/System32/drivers/etc/hosts.

# localhost name resolution is handled within DNS itself.
     127.0.0.1       localhost
     ::1             localhost
     127.0.0.1       mysite.dev  

Затем я приступил к работе http://mysite.dev

5 голосов
/ 11 октября 2012

Спасибо, что сработало!Но я заменил

AllowOverride AuthConfig Indexes

на

AllowOverride All

. В противном случае .htaccess не работал: у меня возникли проблемы с RewriteEngine и появилось сообщение об ошибке «RewriteEngine здесь не разрешен».

3 голосов
/ 01 ноября 2014

Выше предложения не работали для меня.Я запустил его на своих окнах, используя вдохновение http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html

Для Http внутри httpd-vhosts.conf

<Directory "D:/Projects">       
AllowOverride All
Require all granted
</Directory>

##Letzgrow
<VirtualHost *:80>
DocumentRoot "D:/Projects/letzgrow"
ServerName letz.dev
ServerAlias letz.dev    
</VirtualHost>

Для использования Https (Open SSL) внутри httpd-ssl.conf

<Directory "D:/Projects">       
AllowOverride All
Require all granted
</Directory>

##Letzgrow
<VirtualHost *:443>
DocumentRoot "D:/Projects/letzgrow"
ServerName letz.dev
ServerAlias letz.dev    
</VirtualHost>

Надеюсь, это кому-нибудь поможет !!

0 голосов
/ 28 февраля 2019

После стольких изменений, попыток и ответов.Для

SO: Windows 7
Версия Xampp: Портативная версия Xampp или Xampp 7.1.18
Установщик: win32-7.1.18-0-VC14-installer

  • Не редактируйте другие файлы, такие как httpd-xampp
  • Остановите Apache
  • Добавьте следующее в httpd-vhosts.conf находится в: **your_xampp_directory**\apache\conf\extra\
  • Удалите хеш перед следующей строкой (приблизительно строка 20): NameVirtualHost *:80
  • Добавьте свой код с изменениями в каталогах:

      <VirtualHost *:80>
           DocumentRoot "F:/Web/htdocs/"
           ServerName localhost
    </VirtualHost>
      <VirtualHost *:80>
      DocumentRoot "F:/myapp/htdocs/"
      ServerName test1.localhost
      <Directory  "F:/myapp/htdocs/">
                Options All
                AllowOverride All
                Require all granted  
            </Directory>
      </VirtualHost>
    
  • Отредактируйте (с правами администратора) свой файл хоста (расположенный в Windows \ System32 \ drivers \ etc, но со следующим советом, только один ip loopback для каждого домена:

127.0.0.1 localhost 127.0.0.2 test1.localhost 127.0.0.3 test2.localhost Для каждого экземпляра повторите второй блок, первый является основным блоком только для значений по умолчанию

0 голосов
/ 21 апреля 2016

Для многих это проблема с разрешениями, но для меня оказывается, что ошибка была вызвана ошибкой в ​​форме, которую я пытался отправить.Чтобы быть конкретным, я случайно поставил знак «больше чем» после значения «действие».Поэтому я бы посоветовал вам еще раз взглянуть на свой код.

0 голосов
/ 19 июля 2015

Я использую xampp 1.7.3. Используя вдохновение отсюда: xampp 1.7.3 обновление сломанных виртуальных хостов запрещено

ВМЕСТО добавьте <Directory> .. </Directory> в httpd-vhosts.conf , я добавлю его в httpd.conf сразу после <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

Вот что я добавляю в httpd.conf:

<Directory "D:/CofeeShop">
    AllowOverride All
    Options  All
    Order allow,deny
    Allow from all
</Directory>

А вот что я добавляю в httpd-vhosts.conf

<VirtualHost *:8001>
    ServerAdmin postmaster@dummy-host2.localhost
    DocumentRoot "D:/CofeeShop"
    ServerName localhost:8001
</VirtualHost>

Я также добавляю Listen 8001 в httpd.conf, чтобы завершить настройку.

Надеюсь, это поможет

...