Aggiunta di VirtualHost non riuscita: accesso all'errore proibito 403 (XAMPP) (Windows 7)


161

Ho un'installazione XAMPP in esecuzione su Windows 7.

Non appena aggiungo un VirtualHost a httpd-vhosts.conf, ENTRAMBI i "normali" http://localhostE i nuovi dropbox.local non funzionano.

Questo è ciò che ho aggiunto al mio 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>

Quindi ho cercato il mio dropbox.local-error.logper qualsiasi informazione:

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

Questo errore sembra essere risolto aggiungendo

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

Ma ora ho questo errore 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/

Inoltre, quando provo ad accedere http://localhost, non ricevo alcun errore nel normale error.log, anche se ottengo il error 403momento in cui provo ad accedervi.

Qualcuno può aiutare ... Mi sta facendo impazzire: S

EDIT: Anche httpd.confqui c'è il seguente (l'ho visto menzionato più volte, quindi prima che qualcuno lo dica):

<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
Mi sono procurato una risposta ma non riesco ancora a pubblicarla :( Non abbastanza reputazione: /
Highmastdon

Nessuna di queste risposte funziona per me :(
Pathros

Qualcuno può aiutarmi qui? Sto cercando di ottenere la stessa cosa in MAMP stackoverflow.com/q/40405663/4480164
cyber8200

Risposte:


340

Ok: questo è quello che ho fatto ora ed è risolto:

Il mio httpd-vhosts.confsembra così ora:

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

Innanzitutto, ho visto che è necessario impostare le <Directory xx:xx>opzioni. Quindi ho inserito la <Directory > [..] </Directory>parte INSIDE the <VirtualHost > [..] </VirtualHost>. Successivamente, ho aggiunto AllowOverride AuthConfig Indexesalle <Directory>opzioni.

Ora http://localhostpunta anche al dropbox-virtualhost. Quindi ho aggiunto dropbox.locala <VirtualHost *:80>quale lo rende come<VirtualHost dropbox.local:80>

FINALMENTE funziona: D!

Sono un uomo felice! :) :)

Spero che qualcun altro possa usare queste informazioni.


39
FWIW, ho fatto lo stesso e ho ancora problemi ad accedere al mio vhost. Tuttavia, aggiungendo Require all granteddopo la Allow from allmia configurazione ha funzionato.
Camilo Díaz Repka,

Il httpd-vhosts.confè un file di configurazione per Apache. Apache "esegue" il codice php. Scarica e installa xamppe modifica la configurazione come indicato sopra.
Highmastdon,

6
A partire da Apache 2.4, le direttive sul controllo degli accessi , consentire, negare e soddisfare sono obsolete . Assicurati di utilizzare una versione precedente quando usi queste direttive o usa Richiedi al posto.
Pascalculator,

4
Come dice @Pascalculator, utilizzare Require all granted invece . Voglio enfatizzare invece perché non funzionava quando avevo le altre opzioni nella mia configurazione, ma quando ho lasciato solo questo alle spalle ha funzionato.
user2428118

1
@davejal Grazie mille e nessun problema :) Non voglio essere un idiota a riguardo. In effetti un po 'più di equalizzazione potrebbe essere bello qui :)
Highmastdon,

60

Per me ha funzionato quando ho cambiato il contenuto "directory" in questo:

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

Apache 2.4.3 - ora funzionante con l'aggiunta precedente, in più ho avuto i servizi Apache e MySQL "controllati" nel Pannello di controllo che causava il blocco del CP XAMPP. Servizi non controllati: Apache è stato eseguito, ma errore Accesso vietato. Aggiunte le autorizzazioni di cui sopra e funziona ora. Grazie!!
Sean Kendle,

2
Fondamentalmente questo - mi mancava la direttiva Opzioni. Options Indexes FollowSymLinksera tutto ciò di cui avevo bisogno su Apache2.2, YMMV
Ed Orsi,

Questo ha funzionato meravigliosamente per me in contrapposizione alla risposta selezionata. Per qualche motivo "Richiedi tutto concesso" da solo in quanto tale risposta suggerisce che non ha funzionato poiché ha subito l'arresto anomalo di XAMPP. Ma questa risposta ha funzionato con quelle tra <directory>, quindi grazie per la risposta.
Scrydan,

Qualcuno può aiutarmi qui? Sto cercando di ottenere la stessa cosa in MAMP stackoverflow.com/q/40405663/4480164
cyber8200

Ha Options Allfunzionato SOLO per me! È l'ingrediente mancante!
Theodore R. Smith,

10

Per me (anche XAMPP su Windows 7), questo è ciò che ha funzionato:

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

È questa linea che causerebbe il 403:

Order allow,deny

.htaccess non funzionava fino a quando non ho cambiato la tua risposta, grazie.
ssi-anik,

quando index.html non è presente e si desidera solo mostrare tutte le pagine di questa cartella, è possibile aggiungere solo quanto segue in <Directory> direttiva: Require all grantedeOptions Indexes FollowSymLinks
tatskie

8

Sto usando XAMPP 1.6.7 su Windows 7. Questo articolo ha funzionato per me.

Ho aggiunto le seguenti righe nel file httpd-vhosts.confall'indirizzo C:/xampp/apache/conf/extra.
Avevo anche decommentato la linea# 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>

Dopo aver riavviato l'apache, non funzionava ancora. Quindi ho dovuto seguire il passaggio 9 menzionato nell'articolo modificando il file 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  

Poi ho iniziato a lavorare http://mysite.dev


Questo ha davvero aiutato. Grazie mille. mi hai salvato la giornata. :)
Abhishek Goel,

6

Grazie, ha funzionato! Ma ho sostituito questo

AllowOverride AuthConfig Indexes

con quello

AllowOverride All

Altrimenti, il .htaccess non ha funzionato: ho avuto problemi con RewriteEngine e il messaggio di errore "RewriteEngine non consentito qui".


3

I suggerimenti sopra non hanno funzionato per me. L'ho fatto funzionare su Windows, ispirandomi a http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html

Per http all'interno di 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>

Per l'utilizzo di Https (Open SSL) all'interno di 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>

Spero che aiuti qualcuno !!


2

Dopo tanti cambiamenti, tentativi e risposte. Per

SO: Windows 7 / Windows 10

Versione Xampp: Xampp o Xampp Portable 7.1.18 / 7.3.7 (pannello di controllo v3.2.4)

Installatori: win32-7.1.18-0-VC14-installer / xampp-windows-x64-7.3.7-0-VC15-installer

  1. Non modificare altri file come httpd-xampp

  2. Ferma Apache

  3. Aperto httpd-vhosts.conf situato nel **your_xampp_directory**\apache\conf\extra\(la directory di XAMPP potrebbe essere per difetto: C:/xampp/htdocs)

  4. Rimuovi l'hash prima della seguente riga (aprox. Riga 20): NameVirtualHost *:80(potrebbe essere facoltativo)

  5. Aggiungi i seguenti host virtuali alla fine del file, considerando i percorsi delle tue directory:

    ##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. Modifica (con accesso amministratore) il tuo file host (che si trova in Windows\System32\drivers\etc, ma con il seguente suggerimento, un solo IP loopback per ogni dominio :

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

Per ogni istanza, ripetere il secondo blocco, il primo è il blocco principale solo per scopi "predefiniti".


1
Impostare diversi indirizzi IP per ogni host virtuale ha funzionato! A differenza di WAMP, XAMP non interpreta ogni nome di server quando sono tutti raggruppati in un indirizzo IP (ad es 127.0.0.1 localhost,test1.localhost.).
CPHPython,

@CPHPython grazie per aver menzionato le differenze e migliorare la mia risposta. Felice di aiutare! Ricordo di aver combattuto molto con questo problema
Leandro,

1
grazie, felice di aiutare anche! Prima di trovare la tua risposta, avevo passato parecchio tempo a cercare di capire perché gli host di Windows non riflettessero i nomi dei server.
CPHPython,

0

Sto usando xampp 1.7.3. Usando l'ispirazione da qui: xampp 1.7.3 aggiorna vietato l'accesso agli host virtuali non funzionanti

INSTEAD OF aggiunge <Directory> .. </Directory>in httpd-vhosts.conf , lo aggiungo subito dopo in httpd.conf<Directory "D:/xampplite/cgi-bin"> .. </Directory> .

Ecco cosa aggiungo in httpd.conf:

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

Ed ecco cosa aggiungo in httpd-vhosts.conf

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

Aggiungo anche io Listen 8001 httpd.conf per completare la mia impostazione.

Spero che sia d'aiuto


0

Per molti è un problema di autorizzazione, ma per me risulta che l'errore è stato causato da un errore nel modulo che stavo cercando di inviare. Per essere precisi avevo accidentalmente messo un segno "maggiore di" dopo il valore di "azione". Quindi ti suggerisco di dare una seconda occhiata al tuo codice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.