Message interdit WAMP 403 sous Windows 7

101

J'ai installé la version 2.1 de WAMP sur ma machine Windows 7. Lorsque je navigue vers localhost dans mon navigateur, la page du serveur WAMP est visible.

Mais lorsque je navigue vers mon IP dans mon navigateur, je reçois le message

403 Interdit: Vous n'êtes pas autorisé à accéder / sur ce serveur.

Aucune suggestion?

Jake
la source
L'accès à votre serveur Apache est interdit à partir d'adresses autres que 127.0.0.1dans httpd.conf(fichier de configuration d'Apache)
Nasreddine
J'ai corrigé cela, maintenant je reçois 403 Forbidden dans mon phpMyAdmin, des suggestions pour cela?
Jake
il y a aussi un phpmyadmin.confqui contient des directives pour l'alias 'localhost / phpmyadmin'
Nasreddine
si vous êtes ici pour Windows 8 chk this stackoverflow.com/questions/13945783/…
minable le

Réponses:

126

L'accès à votre serveur Apache est interdit depuis des adresses autres que 127.0.0.1dans httpd.conf(fichier de configuration d'Apache):

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

Il en va de même pour votre accès PHPMyAdmin, le fichier de configuration est phpmyadmin.conf:

<Directory "c:/wamp/apps/phpmyadmin3.4.5/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
</Directory>

Vous pouvez les configurer pour autoriser les connexions à partir de toutes les adresses IP comme suit:

AllowOverride All
Order allow,deny
Allow from all
Nasreddine
la source
7
Cela ouvrira certainement l'accès à partir de n'importe quelle adresse IP, mais n'est-ce pas un peu dangereux? La règle autorisant «à partir de 127.0.0.1» devrait être suffisante pour autoriser l'accès local, si tel est l'objectif principal ici, le 127.0.0.1 est essentiellement une boucle vers la carte réseau. Si vous tapez dans la barre d'adresse 'http': //127.0.0.1: {portNumber} / {folderOrFileName} 'cela devrait fonctionner correctement. Cela devrait fonctionner de la même manière que l'utilisation de localhost, mais j'ai trouvé que certains navigateurs ont des problèmes avec localhost pour une raison quelconque.
Jeremy
Je n'ai pas pu formater ma ligne d'adresse dans ce dernier commentaire donc il y a un "'" supplémentaire dedans juste ignorer cela désolé si cela déroute quelqu'un.
Jeremy
Remarque: le fichier définit les valeurs par défaut qui sont ensuite remplacées une à une par la suite, alors assurez-vous que ces lignes sont après toutes les remplacements.
rencontre
3
N'oubliez pas de "Redémarrer tous les services" à partir du menu de la barre d'état système de WAMP (ou comment vous le faites.)
Plummer
12
Pour Apache version 2.4.x remplacer Require localpar Require all granteddans le fichier httpd.conf à l' intérieur de la <Directory "c:/wamp/www/">balise puis redémarrer tous les services
Rakesh
62

J'ai trouvé une solution plus simple ...

Bien que l'icône soit verte, WAMP doit toujours être "Mettre en ligne" (dernier élément du menu lors d'un clic gauche sur l'icône).

Après cela, j'ai eu accès comme d'habitude.

Bobs Yeroncle
la source
3
En fait, cela devrait être signalé comme une réponse acceptée. Merci mec.
ummahusla
Cette solution mérite un vote positif car la configuration est mise à jour lorsque vous cliquez sur le bouton de mise en ligne: forum.wampserver.com/read.php?1,119467,119546
Pierre-Yves Guillemet
Cela a réglé le problème pour moi aussi. Bien que dans mon cas, je devais d'abord "Mettre hors ligne", puis "Mettre en ligne" et j'ai travaillé sans autre changement dans mes fichiers de configuration! Je vous remercie!!
Osmar
1
En fait, j'ai commencé à faire toutes ces choses dans la première réponse acceptée. Et cela n'a pas aidé. Ensuite, j'ai vu ça ici, et j'ai pensé: «Pas question que ça puisse être ça ...», mais c'était ça et ça a marché.
Fusseldieb
Supercalifragilisticexpialidocious!
Vahid
25

Pour moi, l'inclusion de "Require local" a aidé à résoudre l'erreur 403. Le fichier de configuration d'alias ressemble à ceci:

Alias /mytest/ "C:/mytest/" 

<Directory "C:/mytest/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
    Require local
</Directory>
Girts Strazdins
la source
3
Cela a également fonctionné pour moi, en utilisant Apache 2.4.9. Je cherche cela depuis longtemps. Merci!
Jonathan Lidbeck
Options Indexes FollowSymLinks MultiViewsest également requis
Hammad Khan
Une raison pour ajouter la partie "C: / mytest /"? Cela ne semble pas avoir d'effet, et le simple fait de laisser un / à la fin tel qu'il est en standard semble tout aussi bien fonctionner
Squazz
Mieux vaut utiliser «Exiger tout accordé» au lieu de «Exiger local» si vous souhaitez ouvrir votre site sur d'autres appareils de votre réseau local
Rakesh
L'ajout de "Autoriser de tout" l'a fait pour moi.
Rex the Strange
10

La solution pour modifier les autorisations dans httpd.conf fonctionnera si vous êtes d'accord pour fournir un accès au serveur WAMP de l'extérieur.

Si vous ne voulez pas faire cela, tout ce que vous avez à faire est d'indiquer à Windows que le domaine "localhost" pointe vers 127.0.0.1. Vous pouvez le faire en éditant le fichier hosts dans votre répertoire système.

Le fichier est placé dans: C: \ Windows \ System32 \ drivers \ etc \ hosts

par défaut, Windows 7 est livré avec:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

Vous devez annuler le commentaire du mappage pour localhost:

# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
#   ::1         localhost

Remarque: vous ne pourrez pas modifier le fichier hosts car il s'agit d'un fichier en lecture seule. Pour éditer, vous devez être l'administrateur, copier le fichier dans un autre emplacement, le modifier puis le recopier dans le répertoire etc.

Je ne recommande pas le changement du fichier hosts. Utilisez les autorisations du fichier httpd.conf. n'utilisez l'approche du fichier d'hôtes que si vous ne souhaitez pas que le serveur soit accessible de l'extérieur.

Punit Raizada
la source
8

Essayez d'ajouter les lignes de code suivantes au fichier httpd-vhosts.conf:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:\wamp\www"
ServerName localhost
</VirtualHost>
WADeveloper
la source
7

Une autre chose que j'ai découverte est que si votre adaptateur réseau utilise IPV6, il ne s'affichera pas comme 127.0.0.1 mais :: 1

Voici ce que j'ai fini par faire:

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
</Directory>

Il en va de même pour votre accès PHPMyAdmin, le fichier de configuration est phpmyadmin.conf:

<Directory "c:/wamp/apps/phpmyadmin3.4.5/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
</Directory>
Geekhuh
la source
Je pense que cette réponse répond vraiment à la chose importante qui est posée, à savoir que lorsque IPv6 est activé, localhost se résout en une adresse IPv6 (:: 1) et ce qui signifie à son tour que l'adresse demandeuse sera également une adresse IPv6 (également :: 1) qui n'est PAS la même que 127.0.0.1 qui est la seule adresse à partir de laquelle les connexions sont autorisées. En outre, localhost résout via le serveur DNS local par défaut (pas les hôtes) et il est tout simplement plus beau selon moi de le laisser ainsi et de désactiver IPv6 pour que localhost se résout en 127.0.0.1 ou de modifier / inclure comme ci-dessus.
fast-reflexes
l'ajout de 'Allow from :: 1' au "fichier c: \ wamp \ alias \ phpmyadmin.conf" a résolu le problème de phpmyadmin 403.
ewroman
4

si vous avez utilisé localhost / phpmyadmin /

utilisez simplement

127.0.0.1/phpmyadmin/ pour PHPMyAdmin

127.0.0.1/sqlbuddy/ pour SQLBuddy

ou si vous avez utilisé localhost: 8080 / phpmyadmin / then

127.0.0.1:8080/phpmyadmin/ pour PHPMyAdmin

127.0.0.1:8080/sqlbuddy/ pour SQLBuddy

suiz
la source
4

N'oubliez pas de supprimer les éléments factices dans httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
user3684707
la source
Merci! Cela l'a corrigé.
Steve
4

Pour la version Apache 2.4.x remplacer simplement Require localavec Require all granteddans httpd.conf fichier à l' intérieur <Directory "c:/wamp/www/">tag puis redémarrez tous les services

Rakesh
la source
1
Cela a fait l'affaire pour moi. Une chose étrange est que 2 autres VirtualHosts (dans httpd-vhosts.conf) n'ont pas «Require local» ou «Require all concédé», et fonctionnent toujours correctement. ¯_ (ツ) _ / ¯
kmdsax
3

Pour Wamp 3.1.3 et Apache 2.4, j'ai simplement dû changer 1 ligne dans mon fichier httpd-vhosts.conf.

  1. Ouvrez httpd-vhosts.conf
  2. Remplacez «Exiger local» par «Exiger tout accordé»
  3. Redémarrez tous les services

J'ai ensuite pu accéder à mon serveur Apache à partir d'autres ordinateurs.

Donnez du crédit à cette vidéo: https://www.youtube.com/watch?v=Sy_f6wBGnjI

EldritchText
la source
2

Il peut y avoir de nombreuses causes à ces problèmes

Ce que j'ai expérimenté sont:
1) l' 127.0.0.1 localhostentrée a été dupliquée dans le fichier d'hôtes
2) Apache mod_rewriten'a pas été activé

Quelle que soit la cause, la sauvegarde de votre wwwdossier, du fichier de configuration vhost (et du fichier de configuration httpd) vous aidera. Et un tel processus prend quelques minutes.

Bonne chance

Ericn
la source
2

J'ai lu et essayé toutes les corrections, mais aucune n'a fonctionné. Enfin, j'ai trouvé que le logo du serveur Wamp est vert mais doit être "MIS EN LIGNE". Si simple et une solution rapide après avoir vérifié votre PHPMyAdmin.Cofget HttPD.cofgcliquez simplement sur METTRE EN LIGNE

Nexones
la source
1

J'ai essayé les configurations ci-dessus et cela n'a fonctionné que pour ma configuration WAMP Apache 2.4.2. Pour plusieurs sites racine sans domaines nommés dans votre fichier d'hôtes Windows, utilisez http://locahost:8080, http://localhost:8081, http://localhost:8082et cette configuration:

#ServerName localhost:80
ServerName localhost

Listen 8080
Listen 8081
Listen 8082
#..... 
<VirtualHost *:8080>
    DocumentRoot "c:\www"
    ServerName localhost
    <Directory "c:/www/">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require local
    </Directory>
</VirtualHost>
<VirtualHost *:8081>
    DocumentRoot "C:\www\directory abc\svn_abc\trunk\httpdocs"
    ServerName localhost
    <Directory "C:\www\directory abc\svn_abc\trunk\httpdocs">
        Options Indexes FollowSymLinks
        AllowOverride all
        Require local
    </Directory>
</VirtualHost>
#<VirtualHost *:8082></VirtualHost>.......
s6712
la source
1

J'ai rencontré ce problème avec wamp sous Windows 7. L'ajout du code suivant à httpd-vhosts.conf a résolu le problème pour moi.

<VirtualHost *:80>
  DocumentRoot "F:/wamp_server/www/"
  ServerName localhost
</VirtualHost>
Vishal
la source
1

Merci pour votre question. J'utilise wamp 3 maintenant. Et je trouve une réponse simple pour le faire sous votre question. Mais cette réponse devrait changer un peu sur wamp 3. Les étapes sont les suivantes:

  1. Cliquez avec le bouton droit sur l'icône wamp
  2. Choisissez le paramètre Wamp
  3. Cliquez sur l'élément de menu: en ligne / hors ligne
  4. Clic gauche sur l'icône wamp
  5. Vous y trouverez un nouvel élément appelé "Mettre en ligne"
Smart Du
la source
Merci, @ miltonb.
Smart Du
1

Il m'a fallu une éternité pour comprendre cela.

C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-vhosts.conf

Dans ce fichier, vous remarquerez plusieurs exemples de fichiers d'hôte virtuel, qui ressemblent à:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

Supprimez simplement ces entrées et remplacez-les par:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:\wamp\www"
    ServerName localhost
</VirtualHost>

Vous devez absolument vous assurer que vos autres canards sont dans une rangée, mais cela pour moi avec la solution qui a fonctionné.

Aaron S.
la source
0

salut il y a 2 solutions:

  1. changez le port 80 en 81 dans le fichier texte (httpd.conf) et cliquez sur 127.0.0.1:81

  2. modifier les paramètres du réseau aller au panneau de configuration - réseau et Internet - réseau et centre de partage

cliquez sur -> connexion au réseau local sélectionnez -> propertis check true dans le -allow other ..... et --- allo other .....

يوسف الجرعي
la source
0

J'ai eu ce problème également. L'itinéraire de mon problème était que j'avais fait une erreur dans mon fichier vhosts.conf. Si vous utilisez des vhosts, c'est une autre chose à vérifier

Pattle
la source
0

Cette configuration dans httpd.conf fonctionne très bien pour moi.

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 ::1
</Directory>
Fabio
la source
0

Assurez-vous que vous n'utilisez pas de caractère séparateur de répertoire Windows (barre oblique inverse) dans vos noms de chemin dans votre fichier .conf, même si vous êtes sous Windows. Apache ne les comprend pas mais démarrera quand même, puis produira un fichier 403 Forbidden Message.

faux:

<Directory "c:\websites\my-website\">

droite:

<Directory "c:/websites/my-website/">
David Murdoch
la source
0

Étonnamment, les crochets dans les chemins DocumentRoot (et associés, comme <Directory>) peuvent également provoquer l'erreur 403:

  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master[bang]" a échoué avec 403, tandis que
  • DocumentRoot "P:/TRY/web/fatfree/from_github/fatfree-master" a bien fonctionné.

(Je n'ai pas pris la peine de comprendre le chemin Apache qui s'échappait, le cas échéant, juste renommé le chemin à la place. Si quelqu'un le sait, les commentaires sont les bienvenus.)

Sz.
la source
0

Ma solution a été de désactiver l'encodage des fichiers encodés (ces fichiers sont verts dans les fenêtres). J'ai obtenu ces fichiers sur un ordinateur MAC et ils ont été cryptés par défaut.

Ive select these files > right click > properities > general tab > andvanced > uncheck encrypt files...

Et voila ça marche.

petkopalko
la source
0

J'ai essayé toutes les choses, sauf pour effacer le désordre dans le fichier .htaccess.

Accédez au répertoire www / et faites une copie du fichier .htaccess dans un autre dossier. Effacez ensuite toutes les lignes du fichier d'origine .htaccess . Et ajoutez cette ligne,

RewriteEngine On

Redémarrez ensuite le serveur. Cela a résolu mon problème et a eu accès à tous mes sites localhost. J'espère que cela résoudra le vôtre aussi.

siddhu151dj
la source
0

Également sur Apache 2,4, vous devrez peut-être l'ajouter à la directive de répertoire dans conf, au cas où vous auriez décidé d'inclure httpd-vhosts.conf.

Par défaut, vous pouvez installer wamp dans C: \ mais toujours choisir de déployer votre développement Web dans un autre emplacement.

Pour ce faire dans le vhosts.conf, vous pouvez ajouter cette directive:

<Directory "e:/websites">
    Options Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    AllowOverride All
  <IfDefine APACHE24>
    Require local
  </IfDefine>
  <IfDefine !APACHE24>
    Order Deny,Allow
    Allow from all
    Allow from localhost ::1 127.0.0.1
  </IfDefine>
</Directory>
amresh tripathi
la source
0

assurez-vous que le nom du fichier dans le répertoire c:/wamp/apps/phpmyadmin3.1.3.1/correspond au nom (ou à la version) dans phpMyAdmin.conf ( Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.1.3.1/")

M.Yousif
la source
0

J'ai trouvé que si vous utilisez ammps, pour une raison quelconque, il est toujours interdit lorsqu'il est dans votre dossier racine, alors je le mets dans le répertoire au-dessus de mon dossier racine et j'ai créé un alias en httpd.conf utilisant ce

Alias /phpmyadmin "C:/Program Files (x86)/Ampps/phpMyAdmin"

veuillez noter que j'utilise ammps et que je ne sais pas avec certitude si cela fonctionnera pour les autres, mais cela vaut la peine d'essayer;)

Nik Hendricks
la source