L'ajout de VirtualHost échoue: Accès interdit Erreur 403 (XAMPP) (Windows 7)

161

J'ai une installation XAMPP en cours d'exécution sur Windows 7.

Dès que j'ajoute un VirtualHost à httpd-vhosts.conf, le «régulier» http://localhostET le nouveau dropbox.local ne fonctionnent pas.

Voici ce que j'ai ajouté à mon 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>

J'ai donc recherché mon dropbox.local-error.logpour toute information:

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

Cette erreur semble être résolue en ajoutant

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

Mais maintenant, j'obtiens cette erreur dans 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/

De plus, lorsque j'essaie d'accéder http://localhost, je n'obtiens aucune erreur dans la version régulière error.log, bien que j'obtienne le error 403lorsque j'essaye d'y accéder.

Quelqu'un peut-il aider ... Cela me rend fou: S

EDIT: Il httpd.confy a aussi ce qui suit (je l'ai vu mentionné plusieurs fois, donc avant que quiconque le dise):

<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
la source
1
J'ai eu une réponse mais je ne peux pas encore la poster: (Pas assez de réputation: /
Highmastdon
Aucune de ces réponses ne fonctionne pour moi :(
Pathros
Quelqu'un peut-il m'aider ici? J'essaie de réaliser la même chose dans MAMP stackoverflow.com/q/40405663/4480164
cyber8200

Réponses:

340

D'accord: c'est ce que j'ai fait maintenant et c'est résolu:

Mon httpd-vhosts.confressemble maintenant à ceci:

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

Tout d'abord, j'ai vu qu'il était nécessaire d'avoir défini les <Directory xx:xx>options. J'ai donc mis le <Directory > [..] </Directory>-part à l'intérieur du fichier <VirtualHost > [..] </VirtualHost>. Après cela, j'ai ajouté AllowOverride AuthConfig Indexesaux <Directory>options.

Désormais, http://localhostpointe également vers l'hôte virtuel dropbox. J'ai donc ajouté dropbox.localà ce <VirtualHost *:80>qui le rend comme<VirtualHost dropbox.local:80>

ENFIN ça marche: D!

Je suis un homme heureux! :) :)

J'espère que quelqu'un d'autre pourra utiliser ces informations.

Highmastdon
la source
39
FWIW, j'ai fait la même chose et j'ai toujours eu des problèmes pour accéder à mon hôte virtuel. Cependant, l'ajout Require all grantedaprès a Allow from allfait fonctionner ma configuration.
Camilo Díaz Repka
Il httpd-vhosts.confs'agit d'un fichier de configuration pour Apache. Apache «exécute» le code php. Téléchargez et installez xamppet modifiez la configuration comme indiqué ci-dessus.
Highmastdon
6
Depuis Apache 2.4, les directives de contrôle d'accès order, allow, deny et satisf sont obsolètes . Assurez-vous que vous exécutez une version inférieure lorsque vous utilisez ces directives, ou utilisez Require à la place.
Pascalculator
4
Comme le dit @Pascalculator, utilisez Require all granted plutôt . Je veux plutôt insister sur le parce que cela ne fonctionnait pas lorsque j'avais les autres options dans ma configuration, mais quand je n'ai laissé que celle-ci, cela fonctionnait.
user2428118
1
@davejal Merci beaucoup et pas de problème :) Je ne veux pas être un imbécile à ce sujet. En effet, un peu plus d'égalisation pourrait être bien ici :)
Highmastdon
60

Pour moi, j'ai travaillé lorsque j'ai changé le contenu du "répertoire" en ceci:

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>
Je mélange
la source
Apache 2.4.3 - fonctionnant maintenant avec l'ajout ci-dessus, plus j'avais les services Apache et MySQL "vérifiés" dans le panneau de configuration, ce qui empêchait XAMPP CP de répondre. Services non vérifiés - Apache s'est exécuté, mais erreur Access Forbidden. Ajout des autorisations ci-dessus, et cela fonctionne maintenant. Merci!!
Sean Kendle
2
Fondamentalement, il me manquait la directive Options. Options Indexes FollowSymLinksétait tout ce dont j'avais besoin sur Apache2.2, YMMV
Ed Orsi
Cela a fonctionné à merveille pour moi par opposition à la réponse choisie. Pour une raison quelconque, "Exiger tout accordé" par lui-même, comme le suggère cette réponse, n'a pas fonctionné car il a instantanément planté XAMPP. Mais cette réponse a fonctionné avec ceux entre <directory> alors merci pour la réponse.
Scrydan
Quelqu'un peut-il m'aider ici? J'essaie de réaliser la même chose dans MAMP stackoverflow.com/q/40405663/4480164
cyber8200
UNIQUEMENT Options Alltravaillé pour moi! C'est l'ingrédient manquant!
Theodore R. Smith
10

Pour moi (également XAMPP sur Windows 7), c'est ce qui a fonctionné:

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

C'est cette ligne qui provoquerait la 403:

Order allow,deny
lequebecois
la source
.htaccess ne fonctionnait pas jusqu'à ce que je change de réponse, merci.
ssi-anik
lorsque index.html est manquant et que vous souhaitez simplement afficher toutes les pages de ce dossier, vous pouvez ajouter uniquement les éléments suivants sous la directive <Directory>: Require all grantedetOptions Indexes FollowSymLinks
tatskie
8

J'utilise XAMPP 1.6.7 sur Windows 7. Cet article a fonctionné pour moi.

J'ai ajouté les lignes suivantes dans le fichier httpd-vhosts.confà C:/xampp/apache/conf/extra.
J'avais également décommenté la ligne# 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>

Après avoir redémarré l'apache, cela ne fonctionnait toujours pas. Ensuite, j'ai dû suivre l'étape 9 mentionnée dans l'article en éditant le fichier 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  

Puis j'ai travaillé http://mysite.dev

Sithu
la source
Cela a vraiment aidé. Merci beaucoup. tu as sauvé ma journée. :)
Abhishek Goel
6

Merci, cela a fonctionné! Mais j'ai remplacé ça

AllowOverride AuthConfig Indexes

avec ça

AllowOverride All

Sinon, le .htaccess n'a pas fonctionné: j'ai eu des problèmes avec le RewriteEngine et le message d'erreur "RewriteEngine not allowed here".

Adam
la source
3

Les suggestions ci-dessus n'ont pas fonctionné pour moi. Je l'ai fait fonctionner sur mes fenêtres, en utilisant l'inspiration de http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html

Pour Http dans 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>

Pour utiliser Https (Open SSL) dans 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>

J'espère que cela aide quelqu'un !!

Rahul Gupta
la source
2

Après tant de changements et d'essais et de réponses. Pour

SO: Windows 7 / Windows 10

Version Xampp: Xampp ou Xampp portable 7.1.18 / 7.3.7 (panneau de contrôle v3.2.4)

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

  1. Ne modifiez pas d'autres fichiers comme httpd-xampp

  2. Arrêtez Apache

  3. Ouvert httpd-vhosts.conf situé dans **your_xampp_directory**\apache\conf\extra\(votre répertoire XAMPP pourrait être par défaut: C:/xampp/htdocs)

  4. Supprimer le hachage avant la ligne suivante (environ ligne 20): NameVirtualHost *:80(cela peut être facultatif)

  5. Ajoutez les hôtes virtuels suivants à la fin du fichier, en tenant compte des chemins de vos répertoires:

    ##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. Modifiez (avec accès administrateur) votre fichier hôte (situé à Windows\System32\drivers\etc, mais avec le conseil suivant, une seule adresse IP de bouclage pour chaque domaine :

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

Pour chaque instance, répétez le deuxième bloc, le premier est le bloc principal uniquement à des fins "par défaut".

Leandro
la source
1
La définition d'adresses IP différentes pour chaque hôte virtuel a fonctionné! Contrairement à WAMP cependant, XAMP n'interprète pas chaque nom de serveur quand ils sont tous regroupés dans une adresse IP (par exemple 127.0.0.1 localhost,test1.localhost).
CPHPython
@CPHPython merci d'avoir mentionné les différences et d'améliorer ma réponse. Heureux de vous aider! Je me souviens avoir beaucoup combattu avec ce problème
Leandro
1
merci, heureux d'aider aussi! Avant de trouver votre réponse, j'avais passé un certain temps à essayer de comprendre pourquoi les hôtes de Windows ne reflétaient pas les noms de serveur.
CPHPython
0

J'utilise xampp 1.7.3. En utilisant l'inspiration d'ici: mise à niveau de xampp 1.7.3 accès aux hôtes virtuels cassés interdit

AU LIEU DE l'ajout <Directory> .. </Directory>dans httpd-vhosts.conf , je l'ajoute dans httpd.conf juste après <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

Voici ce que j'ajoute dans httpd.conf:

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

Et voici ce que j'ajoute dans httpd-vhosts.conf

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

J'ajoute également Listen 8001httpd.conf pour terminer mon paramétrage.

J'espère que ça aide

Tutompita
la source
0

Pour beaucoup, c'est un problème d'autorisation, mais pour moi, il s'avère que l'erreur a été causée par une erreur dans la forme que j'essayais de soumettre. Pour être précis, j'avais accidentellement mis un signe «supérieur à» après la valeur de «action». Je vous suggère donc de jeter un second regard sur votre code.

Fred
la source