Apache VirtualHost 403 Interdit

J’ai récemment essayé de configurer un serveur de test avec Apache. Le site doit fonctionner sous le domaine www.mytest.com . Je reçois toujours une erreur 403 Forbidden . Je suis sur l’édition du serveur Ubuntu 10.10. La racine de la doc est sous dir /var/www . Voici mes parameters:

Contenu de / var / www

 ls -l /var/www/ total 12 drwxr-xr-x 2 root root 4096 2011-08-04 11:26 mytest.com -rwxr-xr-x 1 root root 177 2011-07-25 16:10 index.html 

Contenu du fichier hôte sur le serveur (avec l’adresse IP 192.168.2.5)

 cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 americano 192.168.2.5 americano.mytest.com www.mytest.com # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 

Configuration du site

  ServerAdmin [email protected] ServerName www.mytest.com ServerAlias mytest.com DocumentRoot "/var/www/mytest.com" ErrorLog /var/log/apache2/mytest-error_log CustomLog /var/log/apache2/mytest-access_log combined # # This should be changed to whatever you set DocumentRoot to. #  Options -Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all   

Je n’ai pas de fichier .htaccess dans mon répertoire racine. Les permissions sont définies correctement (lisibles par www-data).

Si je tape l’adresse IP de mon bureau, le site s’affiche correctement. J’ai changé le fichier hosts sur mon bureau pour pointer www.mytest.com sur l’adresse IP du serveur. Quand je l’utilise, je reçois 403 . Étant donné que de nombreuses fonctions de ce site sont sensibles aux noms de sites, je dois pouvoir accéder au site par le nom de domaine.

Une autre chose géniale est que, même si tous les fichiers journaux sont créés correctement, ils n’ont aucune information concernant cette erreur.

Je suis coincé. Quelqu’un peut-il aider?

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 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 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’access à tous les utilisateurs. Pour résoudre ce problème, supprimez la directive refusée (ou mieux) ajoutez la directive suivante aux répertoires auxquels vous souhaitez accorder l’access:

 Require all granted 

un péché

  Order allow,deny Allow from all # New directive needed in Apache 2.4.3: Require all granted  

Pour apache Ubuntu 2.4.7, j’ai finalement trouvé que vous deviez mettre votre hôte virtuel en liste blanche dans apache2.conf

 # access here, or in any related virtual host.  Options FollowSymLinks AllowOverride None Require all granted  

Cela peut être un problème de permissions.

chaque chemin d’access parent à la racine du document virtuel doit être lisible, inscriptible et exécutable par l’utilisateur du serveur Web httpd

selon cette page sur les erreurs Apache 403.

Puisque vous utilisez Allow from all , votre commande ne devrait pas avoir d’importance, mais vous pouvez essayer de la Deny,Allow autorisant le comportement par défaut .

Déplacez la clause Directory du virtualhost et mettez-la avant de déclarer virtualhost.

M’a conduit pendant longtemps aussi. Je ne sais pas pourquoi. C’est une chose Debian.

Je viens de passer plusieurs heures sur ce problème stupide

Tout d’abord, modifiez les permissions en utilisant ce terminal

 find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} + 

Je ne sais pas quelle est la différence entre 664 et 775 J’ai fait les deux 775 comme ça Aussi htdocs a besoin du chemin de répertoire par exemple pour moi c’était

 /usr/local/apache2/htdocs find htdocs -type f -exec chmod 775 {} + -o -type d -exec chmod 775 {} + 

Ceci est l’autre chose stupide aussi

assurez-vous que votre image src link est votre nom de domaine par exemple

 src="http://img.zgserver.com/linux/f" 

Assurez-vous d’avoir

 EnableSendfile off in httpd.conf file EnableMMAP off in httpd.conf file 

Vous éditez ceux utilisant pico dans le terminal

J’ai également créé un répertoire pour les images afin que, lorsque vous tapez dans la barre d’adresse du navigateur, domainname.com/images, vous obtiendrez une liste de photos pouvant être téléchargées et téléchargées pour indiquer que les fichiers d’image fonctionnent correctement.

  AddType images/png .png  

Et ce sont les solutions que j’ai essayées, maintenant j’ai des images qui fonctionnent … yay !!!

Sur le prochain problème (s)

J’avais le même problème avec un hôte virtuel sur Ubuntu 14.04

Pour moi, la solution suivante a fonctionné:

http://ubuntuforums.org/showthread.php?t=2185282

Il suffit d’append une à /etc/apache2/apache2.conf

mon problème était que l’autorisation d’access aux fichiers était incorrecte, j’ai changé les permissions du répertoire et cela a fonctionné pour moi

Si vous avez tout fait correctement, donnez simplement le répertoire de permission comme:

 sudo chmod o+x $HOME 

puis

 sudo systemctl restart apache2