Додавання помилок VirtualHost: Помилка доступу до заборони 403 (XAMPP) (Windows 7)


161

У мене установка XAMPP працює на Windows 7.

Як тільки я додаю VirtualHost до httpd-vhosts.conf, БОТИ "звичайні" http://localhostІ нові dropbox.local не працюють.

Це те, що я додав до свого 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>

1
Я отримав собі відповідь, але поки не можу її опублікувати :( Недостатньо репутації: /
Highmastdon

Жодна з цих відповідей для мене не працює :(
Pathros

Може хтось, будь ласка, допоможе мені тут? Я намагаюся домогтися того ж в MAMP stackoverflow.com/q/40405663/4480164
cyber8200

Відповіді:


340

Гаразд: Це те, що я зробив зараз, і це вирішено:

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

Я щаслива людина! :) :)

Я сподіваюся, що хтось ще може використовувати цю інформацію.


39
FWIW, я зробив те ж саме, і все ще виникли проблеми приєднатися до мого шуму. Однак додавання Require all grantedпісля того, як Allow from allмоя конфігурація працювала.
Каміло Діас Репка

httpd-vhosts.confЦе конфігураційний файл для Apache. Apache 'запускає' php-код. Завантажте та встановіть xamppта змініть конфігурацію, як зазначено вище.
Хаймастдон

6
Станом на Apache 2.4 директиви щодо контролю доступу упорядковують , дозволяють, забороняють та задовольняють . Переконайтеся, що ви використовуєте нижчу версію під час використання цих директив або використовуєте Require замість цього.
Pascalculator

4
Як говорить @Pascalculator, використовуйте Require all granted замість цього . Натомість я хочу наголосити на тому, що він не працював, коли у мене були інші параметри в моїй конфігурації, але коли я залишив лише цей, він працював.
користувач2428118

1
@davejal Дякую дуже багато і жодних проблем :) Я не хочу бути придурками з цього приводу. Дійсно, трохи більше EQ могло б бути приємним тут :)
Highmastdon

60

Для мене працювало, коли я змінював вміст "каталогу" на цей:

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>

Apache 2.4.3 - зараз працюю з вищезгаданим доповненням, плюс мені довелося служби Apache та MySQL "перевірити" на панелі керування, через що XAMPP CP перестала реагувати. Не перевірені служби - Apache запущено, але помилка доступу заборонена. Додано вищевказані дозволи, і воно працює зараз. Дякую!!
Шон Кендл

2
В основному це - я бракував директиви щодо опцій. Options Indexes FollowSymLinksбуло все, що мені було потрібно в Apache2.2, YMMV
Ed Orsi

Це чудово працювало для мене на відміну від обраної відповіді. Чомусь "Вимагати всіх наданих" саме по собі, оскільки ця відповідь підказує, що вона не спрацювала, оскільки вона моментально розбила XAMPP. Але ця відповідь співпрацювала з тими, хто знаходиться між <directory>, тому дякую за відповідь.
Скридан

Може хтось, будь ласка, допоможе мені тут? Я намагаюся домогтися того ж в MAMP stackoverflow.com/q/40405663/4480164
cyber8200

ТІЛЬКИ Options Allпрацював на мене! Це відсутній інгредієнт!
Теодор Р. Сміт

10

Для мене (також XAMPP в Windows 7) це те, що працювало:

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

Саме ця лінія буде причиною 403:

Order allow,deny

.htaccess не працював, поки я не змінив вашу відповідь, дякую.
ssi-anik

коли index.html відсутній , і ви просто хочете , щоб показати всі сторінки на цю папку, ви можете додати тільки наступне під <Directory> директива: Require all grantedіOptions Indexes FollowSymLinks
tatskie

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>

Після перезапуску апаша він все ще не працював. Тоді мені довелося виконати крок 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


Це справді допомогло. Дуже дякую. ти врятував мій день. :)
Абхішек Гоель

6

Дякую, що спрацювало! Але я замінив це

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>

Сподіваюся, це комусь допоможе !!


2

Після стількох змін, спроб і відповідей. Для

ТА: Windows 7 / Windows 10

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

Установники: win32-7.1.18-0-VC14-інсталятор / xampp-windows-x64-7.3.7-0-VC15-інсталятор

  1. Не редагуйте інші файли, такі як httpd-xampp

  2. Зупиніть Apache

  3. Відкритий HTTPD-vhosts.conf знаходиться в **your_xampp_directory**\apache\conf\extra\(директорії XAMPP може бути за замовчуванням: C:/xampp/htdocs)

  4. Видаліть хеш перед наступним рядком (aprox. Рядок 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. Відредагуйте (з доступом до адміністратора) вашого хост- файлу (розташований у Windows\System32\drivers\etc, але з наступним підказом, лише один IP-код із зворотним зв'язком для кожного домену :

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

Для кожного випадку повторіть другий блок, перший - основний блок лише для цілей "за замовчуванням".


1
Налаштування різних IP-адрес для кожного віртуального хоста! На відміну від WAMP, XAMP не інтерпретує кожне ім'я сервера, коли всі вони об'єднані в одну IP-адресу (наприклад 127.0.0.1 localhost,test1.localhost).
CPHPython

@CPHPython дякую за згадку про відмінності та покращення моєї відповіді. Радий допомогти! Пам’ятаю, з цим питанням багато боролися
Леандро

1
дякую, рада також допомогти! Перш ніж знайти вашу відповідь, я витратив досить багато часу, намагаючись з’ясувати, чому хости Windows не відображають імена серверів.
CPHPython

0

Я використовую 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, щоб завершити налаштування.

Сподіваюся, це допомагає


0

Для багатьох це питання дозволу, але для мене виявляється, що помилка була спричинена помилкою у формі, яку я намагався подати. Щоб бути конкретним, я випадково поставив знак "більший за" після значення "дії". Тому я б запропонував вам поглянути ще раз на свій код.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.