Das Hinzufügen von VirtualHost schlägt fehl: Zugriff auf verbotenen Fehler 403 (XAMPP) (Windows 7)

161

Ich habe eine XAMPP-Installation unter Windows 7.

Sobald ich einen VirtualHost zu httpd-vhosts.conf hinzufüge, funktionieren sowohl der "normale" als auch http://localhostder neue dropbox.local nicht.

Folgendes habe ich zu meinem hinzugefügt 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>

Also habe ich nach dropbox.local-error.logInformationen gesucht :

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

Dieser Fehler scheint durch Hinzufügen behoben zu werden

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

Aber jetzt bekomme ich diesen Fehler in 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/

Wenn ich versuche, darauf zuzugreifen http://localhost, erhalte ich außerdem keinen Fehler im regulären Bereich error.log, obwohl ich den Fehler erhalte, error 403wenn ich versuche, darauf zuzugreifen.

Kann mir jemand helfen ... Es macht mich verrückt: S.

EDIT: Außerdem httpd.confgibt es Folgendes (ich habe es schon mehrfach erwähnt gesehen, also bevor es jemand sagt):

<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>
Highmastdon
quelle
1
Ich habe mir eine Antwort gegeben, kann sie aber noch nicht posten :( Nicht genug Ruf: /
Highmastdon
Keine dieser Antworten funktioniert für mich :(
Pathros
Kann mir bitte jemand hier raushelfen? Ich versuche das gleiche in MAMP stackoverflow.com/q/40405663/4480164
cyber8200

Antworten:

339

Okay: Das habe ich jetzt gemacht und es ist gelöst:

Mein httpd-vhosts.confsieht jetzt so aus:

<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>

Zuerst habe ich gesehen, dass es notwendig ist, die <Directory xx:xx>Optionen eingestellt zu haben . Also habe ich den Teil <Directory > [..] </Directory>IN den <VirtualHost > [..] </VirtualHost>. Danach habe ich AllowOverride AuthConfig Indexesdie <Directory>Optionen hinzugefügt .

http://localhostZeigt jetzt auch auf den dropbox-virtualhost. Also habe ich hinzugefügt dropbox.local, <VirtualHost *:80>was es so macht<VirtualHost dropbox.local:80>

ENDLICH funktioniert es: D!

Ich bin ein glücklicher Mann! :) :) :)

Ich hoffe, jemand anderes kann diese Informationen verwenden.

Highmastdon
quelle
39
FWIW, ich habe das Gleiche getan und hatte immer noch Probleme, meinem vhost beizutreten. Durch das Hinzufügen Require all grantednach Allow from allhat meine Konfiguration jedoch funktioniert.
Camilo Díaz Repka
Das httpd-vhosts.confist eine Konfigurationsdatei für Apache. Apache 'führt' den PHP-Code aus. Laden Sie xamppdie Konfiguration wie oben angegeben herunter, installieren Sie sie und ändern Sie sie.
Highmastdon
6
Ab Apache 2.4 sind die Anweisungen für Zugriffssteuerungsanweisungen , Zulassen, Verweigern und Erfüllen veraltet . Stellen Sie sicher, dass Sie eine niedrigere Version ausführen, wenn Sie diese Anweisungen verwenden, oder verwenden Sie stattdessen Require.
Pascalculator
4
Verwenden Sie Require all granted stattdessen, wie @Pascalculator sagt . Ich möchte das stattdessen hervorheben, weil es nicht funktioniert hat, als ich die anderen Optionen in meiner Konfiguration hatte, aber als ich nur diese zurückgelassen habe, hat es funktioniert.
user2428118
1
@ Davejal Vielen Dank und kein Problem :) Ich möchte kein Idiot sein. In der Tat könnte ein bisschen mehr EQ hier
draußen
60

Für mich hat funktioniert, als ich "Verzeichnis" -Inhalt in diesen geändert habe:

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>
Ich mische
quelle
Apache 2.4.3 - funktioniert jetzt mit dem oben genannten Zusatz. Außerdem habe ich die Apache- und MySQL-Dienste in der Systemsteuerung "überprüft", wodurch XAMPP CP nicht mehr reagierte. Nicht aktivierte Dienste - Apache wurde ausgeführt, aber Access Forbidden-Fehler. Die oben genannten Berechtigungen wurden hinzugefügt und es funktioniert jetzt. Vielen Dank!!
Sean Kendle
2
Grundsätzlich dies - mir fehlte die Options-Direktive. Options Indexes FollowSymLinkswar alles was ich brauchte auf Apache2.2, YMMV
Ed Orsi
Dies funktionierte wunderbar für mich im Gegensatz zu der ausgewählten Antwort. Aus irgendeinem Grund funktionierte "Alle erforderlich" von selbst, da diese Antwort darauf hinweist, dass es nicht funktioniert hat, da XAMPP sofort abgestürzt ist. Aber diese Antwort funktionierte mit denen zwischen <Verzeichnis>, also danke für die Antwort.
Scrydan
Kann mir bitte jemand hier raushelfen? Ich versuche das gleiche in MAMP stackoverflow.com/q/40405663/4480164
cyber8200
NUR Options Allfür mich gearbeitet! Es ist die fehlende Zutat!
Theodore R. Smith
10

Für mich (auch XAMPP unter Windows 7) hat Folgendes funktioniert:

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

Es ist diese Linie, die den 403 verursachen würde:

Order allow,deny
Lequebecois
quelle
.htaccess funktionierte nicht, bis ich zu Ihrer Antwort überging, danke.
SSI-Anik
Wenn index.html fehlt und Sie nur alle Seiten in diesem Ordner Require all grantedOptions Indexes FollowSymLinks
anzeigen
8

Ich verwende XAMPP 1.6.7 unter Windows 7. Dieser Artikel hat für mich funktioniert.

Ich fügte hinzu , die folgenden Zeilen in der Datei httpd-vhosts.confan C:/xampp/apache/conf/extra.
Ich hatte auch die Zeile auskommentiert# 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>

Nach dem Neustart des Apache funktionierte es immer noch nicht. Dann musste ich den im Artikel erwähnten Schritt 9 befolgen, indem ich die Datei bearbeitete 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  

Dann habe ich gearbeitet http://mysite.dev

Sithu
quelle
Das hat wirklich geholfen. Ich danke dir sehr. du hast meinen Tag gerettet. :)
Abhishek Goel
6

Danke, das hat funktioniert! Aber ich habe das ersetzt

AllowOverride AuthConfig Indexes

damit

AllowOverride All

Ansonsten hat der .htaccess nicht funktioniert: Ich habe Probleme mit der RewriteEngine und der Fehlermeldung "RewriteEngine hier nicht erlaubt".

Adam
quelle
3

Die obigen Vorschläge haben bei mir nicht funktioniert. Ich habe es auf meinen Fenstern zum Laufen gebracht, inspiriert von http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html

Für HTTP in 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>

Für die Verwendung von Https (Open SSL) in 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>

Hoffe es hilft jemandem !!

Rahul Gupta
quelle
2

Nach so vielen Änderungen und Versuchen und Antworten. Zum

SOs: Windows 7 / Windows 10

Xampp-Version: Xampp oder Xampp Portable 7.1.18 / 7.3.7 (Control Panel v3.2.4)

Installationsprogramme: win32-7.1.18-0-VC14-Installationsprogramm / xampp-windows-x64-7.3.7-0-VC15-Installationsprogramm

  1. Bearbeiten Sie keine anderen Dateien wie httpd-xampp

  2. Stoppen Sie Apache

  3. Öffnen Sie httpd-vhosts.conf befindet sich in **your_xampp_directory**\apache\conf\extra\(XAMPP Verzeichnis könnte standardmäßig sein: C:/xampp/htdocs)

  4. Entfernen Sie den Hash vor der folgenden Zeile (ca. Zeile 20): NameVirtualHost *:80(Dies kann optional sein.)

  5. Fügen Sie am Ende der Datei unter Berücksichtigung Ihrer Verzeichnispfade die folgenden virtuellen Hosts hinzu:

    ##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. Edit (mit Admin - Zugang) , um Ihre Host - Datei ( die sich auf Windows\System32\drivers\etc, aber mit dem folgenden Tipp, nur ein Loopback - IP für jede Domäne :

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

Wiederholen Sie für jede Instanz den zweiten Block, der erste ist der Hauptblock nur für "Standard" -Zwecke.

Leandro
quelle
1
Das Festlegen unterschiedlicher IP-Adressen für jeden virtuellen Host hat funktioniert! Im Gegensatz zu WAMP interpretiert XAMP jedoch nicht jeden Servernamen, wenn alle in einer IP-Adresse zusammengefasst sind (z 127.0.0.1 localhost,test1.localhost. B. ).
CPHPython
@CPHPython, danke, dass du die Unterschiede erwähnt und meine Antwort verbessert hast. Froh, dass ich Helfen kann! Ich erinnere mich, dass ich viel mit dieser Ausgabe gekämpft habe
Leandro
1
danke, gerne auch helfen! Bevor ich Ihre Antwort fand, hatte ich eine ganze Weile versucht herauszufinden, warum die Hosts der Fenster die Servernamen nicht widerspiegelten.
CPHPython
0

Ich benutze xampp 1.7.3. Inspiration von hier: xampp 1.7.3 Upgrade defekter virtueller Hosts Zugriff verboten

STATT add <Directory> .. </Directory>in httpd-vhosts.conf , füge ich es in httpd.conf direkt nach <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

Folgendes füge ich in httpd.conf hinzu:

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

Und hier ist, was ich in httpd-vhosts.conf hinzufüge

<VirtualHost *:8001>
    ServerAdmin [email protected]
    DocumentRoot "D:/CofeeShop"
    ServerName localhost:8001
</VirtualHost>

Ich füge auch Listen 8001httpd.conf hinzu, um meine Einstellung zu vervollständigen.

Ich hoffe es hilft

Tutompita
quelle
0

Für viele ist es ein Berechtigungsproblem, aber für mich stellt sich heraus, dass der Fehler durch einen Fehler in dem Formular verursacht wurde, das ich einreichen wollte. Um genau zu sein, hatte ich versehentlich ein "Größer als" -Zeichen nach dem Wert von "Aktion" gesetzt. Daher würde ich vorschlagen, dass Sie sich Ihren Code noch einmal ansehen.

Fred
quelle