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 verriez également un message de journal sous la forme "client refusé par la configuration du serveur". La fonctionnalité nécessite une identité d'utilisateur pour accéder à un répertoire. Il est activé par DEFAULT dans le fichier httpd.conf fourni avec Apache. Vous pouvez voir l'activation de la fonctionnalité avec la directive
Require all denied
Cela dit essentiellement de refuser l'accès à tous les utilisateurs. Pour résoudre ce problème, supprimez la directive nié (ou bien mieux) ajoutez la directive suivante aux répertoires auxquels vous souhaitez accorder l'accès :
Require all granted
comme dans
<Directory "your directory here">
Order allow,deny
Allow from all
# New directive needed in Apache 2.4.3:
Require all granted
</Directory>
Il peut s'agir d'un problème d'autorisations.
chaque chemin parent vers la racine du document virtuel doit être lisible, inscriptible et exécutable par l'utilisateur httpd du serveur Web
selon cette page sur les erreurs Apache 403.
Puisque vous utilisez Allow from all
, votre ordre ne devrait pas avoir d'importance, mais vous pouvez essayer de le passer à Deny,Allow
pour définir le comportement par défaut sur "autoriser".
Pour apache Ubuntu 2.4.7, j'ai finalement trouvé que vous deviez mettre en liste blanche votre hôte virtuel dans apache2.conf
# access here, or in any related virtual host.
<Directory /home/gav/public_html/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>