171 votes

L'ajout de VirtualHost échoue : Access Forbidden Error 403 (XAMPP) (Windows 7)

J'ai une installation XAMPP fonctionnant sous Windows 7.

Dès que j'ajoute un VirtualHost au fichier httpd-vhosts.conf, les DEUX serveurs "normaux" et "normaux" sont remplacés par des serveurs virtuels. http://localhost ET le nouveau dropbox.local ne fonctionnent pas.

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

Alors j'ai regardé mon dropbox.local-error.log pour 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'ai pas d'erreur dans le programme régulier error.log bien que je comprenne que error 403 lorsque j'essaie d'y accéder.

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

EDIT : Également dans httpd.conf il y a ce qui suit (j'ai vu qu'il a été mentionné plusieurs fois, donc avant que quelqu'un ne 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>

1 votes

J'ai trouvé une réponse mais je ne peux pas encore la poster :( Pas assez de réputation :/)

0 votes

Aucune de ces réponses ne fonctionne pour moi :(

0 votes

Quelqu'un peut-il m'aider ? J'essaie de faire la même chose avec MAMP. stackoverflow.com/q/40405663/4480164

354voto

Highmastdon Points 1966

Ok : C'est ce que j'ai fait maintenant et c'est résolu :

Mon httpd-vhosts.conf ressemble à ça maintenant :

<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 est nécessaire d'avoir défini l'option <Directory xx:xx> options. Donc j'ai mis le <Directory > [..] </Directory> -partie INSIDE de la <VirtualHost > [..] </VirtualHost> . Après cela, j'ai ajouté AllowOverride AuthConfig Indexes à la <Directory> options.

Maintenant http://localhost pointe également vers le dropbox-virtualhost. J'ai donc ajouté dropbox.local a <VirtualHost *:80> ce qui le rend aussi <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.

39 votes

Pour info, j'ai fait la même chose et j'ai toujours eu des problèmes pour accéder à mon serveur virtuel. Cependant, en ajoutant Require all granted après Allow from all a fait fonctionner ma configuration.

0 votes

El httpd-vhosts.conf est un fichier de configuration pour Apache. Apache "exécute" le code php. Téléchargez et installez xampp et modifiez la configuration comme indiqué ci-dessus.

0 votes

J'ai également dû ajouter "Options FollowSymLinks" parce que mes règles de réécriture n'étaient pas autorisées.

61voto

Imix Points 311

Pour moi, ça a marché quand j'ai changé le contenu du "répertoire" en ceci :

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

0 votes

Apache 2.4.3 - fonctionne maintenant avec l'ajout ci-dessus, de plus j'avais les services Apache et MySQL "cochés" dans le panneau de contrôle ce qui faisait que XAMPP CP ne répondait plus. Services décochés - Apache fonctionnait, mais l'erreur Access Forbidden. J'ai ajouté les permissions ci-dessus, et ça fonctionne maintenant. Merci !

2 votes

En gros, il me manquait la directive Options. Options Indexes FollowSymLinks était tout ce dont j'avais besoin sur Apache2.2, YMMV

0 votes

Cela a fonctionné à merveille pour moi, contrairement à la réponse choisie. Pour une raison quelconque, "Require all granted" par lui-même, comme le suggère cette réponse, n'a pas fonctionné, car il a fait planter XAMPP instantanément. Mais cette réponse a fonctionné avec ceux entre <directory> donc merci pour la réponse.

11voto

lequebecois Points 63

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 serait à l'origine de la 403 :

Order allow,deny

0 votes

Le fichier .htaccess ne fonctionnait pas jusqu'à ce que j'adopte votre réponse, merci.

0 votes

Lorsque le fichier index.html est absent et que vous souhaitez simplement afficher toutes les pages de ce dossier, vous pouvez ajouter seulement ce qui suit sous la directive <Directory> : Require all granted y Options Indexes FollowSymLinks

9voto

Sithu Points 1061

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 à l'adresse 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. J'ai alors 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 je me suis mis à travailler http://mysite.dev

0 votes

Cela a vraiment aidé. Merci beaucoup. Vous avez sauvé ma journée. :)

6voto

Adam Points 31

Merci, ça a marché ! Mais j'ai remplacé ceci

AllowOverride AuthConfig Indexes

avec cela

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X