Je reçois
[Tue Apr 24 12:12:55 2012] [error] [client 127.0.0.1] client refusé par la configuration du serveur: / labs / Projects / Nebula / bin /
Ma structure de répertoires ressemble à (j'utilise Symfony 2, devrait être une structure similaire pour d'autres frameworks Web)
J'ai des vhosts comme:
<VirtualHost nebula:80>
DocumentRoot "/labs/Projects/Nebula/web/"
ServerName nebula
ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
Order allow,deny
Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>
Je me demande quel est le problème et comment le résoudre?
Réponses:
Apache 2.4.3 (ou peut-être un peu plus tôt) a ajouté une nouvelle fonctionnalité de sécurité qui entraîne souvent cette erreur. Vous verrez également un message de journal de la forme "client refusé par la configuration du serveur". La fonctionnalité nécessite une identité d'utilisateur autorisé pour accéder à un annuaire. Il est activé par DEFAULT dans le httpd.conf fourni avec Apache. Vous pouvez voir l'activation de la fonctionnalité avec la directive
Cela dit essentiellement de refuser l'accès à tous les utilisateurs. Pour résoudre ce problème, supprimez la directive refusée (ou bien mieux) ajoutez la directive suivante aux répertoires auxquels vous souhaitez accorder l'accès:
un péché
la source
Satisfy Any
après leRequire all granted
Satisfy any
dans ce contexte? Je demande parce que je tirais mes cheveux ici, et en ajoutant cela, tout fonctionnait pour moi. La chose étrange est que l'application fonctionnait avec l'entrée vhost existante jusqu'à une récente mise à niveau d'Apache vers2.4.9
. Encore plus étrange, c'est que cela fonctionne bien sur un autre serveur avec les mêmes versions app / vhost et Apache / PHP. Différents serveurs cependant - AWS Linux et Ubuntu 14.10 respectivement. Étrange ... je suppose que je dois comparer leshttpd.conf
fichiers de chaque serveur pour voir s'il y a une différence de configuration là-bas ...htaccess
sur le cheminOK, j'utilise la mauvaise syntaxe, je devrais utiliser
la source
Require all granted
, comme suggéré par @ Phil-LDans Apache 2.4, l'ancienne syntaxe d'autorisation d'accès a été obsolète et remplacée par un nouveau système utilisant Require .
Ce que vous voulez alors, c'est quelque chose comme ce qui suit:
Cela autorisera les connexions provenant soit de l'hôte local, soit d'adresses IP commençant par «192.168.1».
Il existe également un nouveau module disponible qui permet à Apache 2.4 de reconnaître l'ancienne syntaxe si vous ne souhaitez pas mettre à jour votre configuration tout de suite:
la source
Pouvez-vous essayer de changer "Autoriser de 127.0.0 192.168.1 :: 1 localhost" à "Autoriser de tous". Si cela résout votre problème, vous devez être moins restrictif quant à l'endroit où le contenu peut être demandé
la source
Voici mon fichier hôte virtuel symfony 1.4 sur Debian, qui fonctionne très bien.
Si vous ne souhaitez pas restreindre l'accès à une plage d'adresses IP spécifique, par exemple localhost, utilisez ceci:
Le mod_authz_host est responsable du filtrage des plages d'adresses IP. Vous pouvez y rechercher des informations détaillées.
Mais peut-être que le problème pourrait être lié à une sorte de mauvaise configuration dans votre "apache2.conf".
Sur quel système d'exploitation l'Apache fonctionne-t-il?
la source
si vous avez le
dans httpd.conf puis assurez-vous que nous avons
comme dans la ligne ci-dessous dans httpd.conf
la source
J'ai eu ce problème avec Vesta CP et pour moi, l'astuce était de supprimer .htaccess et d'essayer à nouveau d'accéder à n'importe quel fichier.
Cela a abouti à la régénération du fichier .htaccess et j'ai pu accéder à mes fichiers.
la source
Dans mon cas, la clé était:
dans la définition de vhost. J'espère que cela aide quelqu'un.
la source
Ce code a fonctionné pour moi.
J'espère que cela aide les autres
la source