Ошибка добавления VirtualHost: ошибка доступа 403 (XAMPP) (Windows 7)

У меня есть установка 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

РЕДАКТИРОВАТЬ: Также в 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>

person Highmastdon    schedule 02.02.2012    source источник
comment
Я получил ответ, но пока не могу его опубликовать :( Недостаточно репутации: /   -  person Highmastdon    schedule 02.02.2012
comment
Ни один из этих ответов не работает для меня :(   -  person Pathros    schedule 07.03.2016
comment
Может ли кто-нибудь помочь мне здесь? Я пытаюсь добиться того же в MAMP stackoverflow.com/q/40405663/4480164   -  person cyb3rZ    schedule 03.11.2016
comment
stackoverflow.com/questions/27754367/   -  person maytham-ɯɐɥʇʎɐɯ    schedule 14.09.2017


Ответы (9)


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

Мой 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!

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

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

person Community    schedule 02.02.2012
comment
FWIW, я сделал то же самое, и все еще были проблемы с подключением к моему vhost. Однако добавление Require all granted после Allow from all заставило мою конфигурацию работать. - person Camilo Díaz Repka; 06.10.2012
comment
httpd-vhosts.conf - это файл конфигурации для Apache. Apache «запускает» php-код. Загрузите и установите xampp и измените конфигурацию, как указано выше. - person Highmastdon; 12.11.2012
comment
Мне также пришлось добавить «Options FollowSymLinks», потому что мои правила перезаписи были запрещены. - person funwhilelost; 23.10.2013
comment
Начиная с Apache 2.4, директивы управления доступом упорядочивают, разрешают, запрещают и удовлетворять устарели. Убедитесь, что вы используете более раннюю версию при использовании этих директив, или используйте Require вместо него. - person Pascalculator; 21.11.2013
comment
Как говорит @Pascalculator, используйте вместо этого Require all granted . Я хочу выделить вместо, потому что он не работал, когда у меня были другие параметры в моей конфигурации, но когда я оставил только этот, он работал. - person user2428118; 08.05.2014
comment
Могу подтвердить, что все, что мне нужно было сделать, это добавить строки, предложенные @ CamiloDíazRepka. Больше мне ничего не нужно было делать. - person Doidgey; 10.01.2015
comment
Хороший человек. Все, что мне было нужно, это Require all granted и все исправлено для меня. - person Doidgey; 05.02.2015
comment
В моей настройке (xampp 3.2.1) наличие # ‹< Новый способ сделать это в конце строки мешало правильному запуску Apache. После удаления этой части строки все заработало! - person JMac; 07.02.2015
comment
@JMac ough, это странная вещь ... Спасибо, что упомянули - person Highmastdon; 08.02.2015
comment
@davejal слишком плохо, что вы удаляете личную сторону stackoverflow, это означает, что мы должны действовать как роботы и больше не можем выражать человеческие чувства, даже в Stackoverflow? (Я знаю, что это намекает: и, возможно, косвенно способствует успеху этого поста?) - person Highmastdon; 28.01.2016
comment
Извините, я не хотел удалять его, чтобы причинить вам боль, поэтому я положил его обратно, я лично считаю, что здесь также должно быть больше эквалайзера, но я был brainwashed - person davejal; 28.01.2016
comment
@davejal Большое спасибо и никаких проблем :) Я не хочу быть придурком из-за этого. Действительно, здесь было бы неплохо немного больше эквалайзера :) - person Highmastdon; 29.01.2016
comment
Большое спасибо. Я застрял с этой проблемой - person Anoop saju; 09.05.2016
comment
Может ли кто-нибудь помочь мне здесь? Я пытаюсь добиться того же в MAMP stackoverflow.com/q/40405663/4480164 - person cyb3rZ; 03.11.2016

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

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>
person Imix    schedule 15.10.2012
comment
Apache 2.4.3 - теперь работает с вышеуказанным дополнением, плюс я проверил службы Apache и MySQL в панели управления, из-за чего XAMPP CP переставал отвечать. Непроверенные службы - Apache запущен, но ошибка «Доступ запрещен». Добавлены указанные выше разрешения, и теперь он работает. Спасибо!! - person Sean Kendle; 05.05.2014
comment
В основном это - мне не хватало директивы Options. Options Indexes FollowSymLinks было всем, что мне было нужно на Apache2.2, YMMV - person Ed Orsi; 10.05.2014
comment
Это отлично сработало для меня, в отличие от выбранного ответа. По какой-то причине Требовать все предоставлено само по себе, поскольку этот ответ предполагает, что не сработал, поскольку он мгновенно разбил XAMPP. Но этот ответ работал с теми, кто находится между ‹directory›, поэтому спасибо за ответ. - person Scrydan; 18.03.2015
comment
Может ли кто-нибудь помочь мне здесь? Я пытаюсь добиться того же в MAMP stackoverflow.com/q/40405663/4480164 - person cyb3rZ; 03.11.2016
comment
У меня работало ТОЛЬКО Options All! Это недостающий ингредиент! - person Theodore R. Smith; 28.03.2017

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

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

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

Order allow,deny
person lequebecois    schedule 14.03.2013
comment
.htaccess не работал, пока я не перешел на ваш ответ, спасибо. - person ssi-anik; 14.06.2015
comment
если index.html отсутствует, а вы просто хотите показать все страницы в этой папке, вы можете добавить только следующее в директиве ‹Directory›: Require all granted и Options Indexes FollowSymLinks - person tatskie; 22.03.2017

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

person Sithu    schedule 02.08.2013
comment
Это действительно помогло. Большое спасибо. ты спас мне день. :) - person Abhishek Goel; 29.05.2014

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

AllowOverride AuthConfig Indexes

с этим

AllowOverride All

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

person Adam    schedule 11.10.2012

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

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

person Rahul Gupta    schedule 01.11.2014

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

ОС: Windows 7 / Windows 10.

Версия Xampp: Xampp или Xampp Portable 7.1.18 / 7.3.7 (панель управления v3.2.4)

Установщики: win32-7.1.18-0-VC14-installer / xampp-windows-x64-7.3.7-0-VC15-installer.

  1. Не редактируйте другие файлы, такие как httpd-xampp

  2. Остановить Apache

  3. Откройте httpd-vhosts.conf, расположенный в **your_xampp_directory**\apache\conf\extra\ (ваш каталог XAMPP может быть по умолчанию: C:/xampp/htdocs)

  4. Удалите хеш перед следующей строкой (примерно строка 20): NameVirtualHost *:80 (это может быть необязательно)

  5. Добавьте следующие виртуальные хосты в конец файла, учитывая пути к вашим каталогам:

    ##127.0.0.1
    <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs"
        ServerName localhost
        ErrorLog "logs/localhost-error.log"
        CustomLog "logs/localhost-access.log" common
    </VirtualHost>
    
    ##127.0.0.2
    <VirtualHost *:80>
        DocumentRoot "F:/myapp/htdocs/"
        ServerName test1.localhost
        ServerAlias www.test1.localhost
        ErrorLog "logs/myapp-error.log"
        CustomLog "logs/myapp-access.log" common
        <Directory  "F:/myapp/htdocs/">
            #Options All # Deprecated
            #AllowOverride All # Deprecated
            Require all granted  
        </Directory>
    </VirtualHost>
    
  6. Отредактируйте (с правами администратора) ваш файл host (расположенный по адресу Windows\System32\drivers\etc, но со следующим советом: только один IP-адрес обратной петли для каждого домена:

    127.0.0.1 localhost
    127.0.0.2 test1.localhost
    127.0.0.2 www.test1.localhost
    

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

person Leandro Bardelli    schedule 28.02.2019
comment
Установка разных IP-адресов для каждого виртуального хоста сработала! Однако, в отличие от WAMP, XAMP не интерпретирует каждое имя сервера, когда все они объединены в один IP-адрес (например, 127.0.0.1 localhost,test1.localhost). - person CPHPython; 19.07.2019
comment
@CPHPython спасибо, что упомянули различия и улучшили мой ответ. Рад помочь! Я помню, много боролся с этой проблемой - person Leandro Bardelli; 22.07.2019
comment
спасибо, тоже рада помочь! Прежде чем найти ваш ответ, я довольно долго пытался выяснить, почему хосты Windows не отражают имена серверов. - person CPHPython; 22.07.2019

Я использую 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 [email protected]
    DocumentRoot "D:/CofeeShop"
    ServerName localhost:8001
</VirtualHost>

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

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

person Tutompita    schedule 18.07.2015

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

person Fred    schedule 21.04.2016