Добавление VirtualHost завершается неудачно: Access Forbidden Error 403 (XAMPP) (Windows 7)

130

У меня есть установка XAMPP, работающая в Windows 7.

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

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

<VirtualHost *:80>
    ServerAdmin [email protected]
    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

EDIT: Также в 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>
  • 1
    Я получил ответ, но пока не могу опубликовать его :( Недостаточно репутации: /
  • 0
    Ни один из этих ответов не работает для меня :(
Показать ещё 2 комментария
Теги:
windows-7
xampp
vhosts
virtualhost

8 ответов

282
Лучший ответ

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

Теперь мой 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> -part INSIDE <VirtualHost > [..] </VirtualHost>. После этого я добавил AllowOverride AuthConfig Indexes в параметры <Directory>.

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

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

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

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

  • 36
    FWIW, я сделал то же самое, и все еще были проблемы с присоединением к моему vhost. Однако добавление Require all granted после Allow from all заставило мою конфигурацию работать.
  • 0
    httpd-vhosts.conf - это файл конфигурации для Apache. Apache «запускает» php-код. Скачайте и установите xampp и измените конфигурацию, как указано выше.
Показать ещё 15 комментариев
50

Для меня это сработало, когда я изменил содержимое каталога:

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  </Directory>
  • 6
    после многих попыток он работает с "options all"
  • 0
    Apache 2.4.3 - теперь работает с вышеупомянутым дополнением, плюс у меня на панели управления были «проверены» службы Apache и MySQL, из-за которых XAMPP CP перестал отвечать. Не проверенные сервисы - Apache запустился, но ошибка Access Forbidden. Добавлены вышеуказанные разрешения, и теперь это работает. Спасибо!!
Показать ещё 5 комментариев
8

Я использую 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

  • 0
    Это действительно помогло. Огромное спасибо. ты спас мой день :)
  • 0
    Это работает на xampp 1.7.7 работает на Windows 7
8

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

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

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

Order allow,deny
  • 0
    .htaccess не работал, пока я не изменил ваш ответ, спасибо.
  • 0
    когда index.html отсутствует и вы просто хотите показать все страницы в этой папке, вы можете добавить только следующее в директиву <Directory>: Require all granted и Options Indexes FollowSymLinks
5

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

AllowOverride AuthConfig Indexes

с этим

AllowOverride All

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

3

Выше предложения не сработали для меня. Я запустил его на своих окнах, используя вдохновение из 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

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

0

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

INSTEAD OF add <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 [email protected]
    DocumentRoot "D:/CofeeShop"
    ServerName localhost:8001
</VirtualHost>

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню