Erreur 403 après la mise à niveau vers apache2.4

34

Après la mise à niveau du serveur Ubuntu 13.04, les pages www ne s’afficheront pas.

  

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

J'ai changé les sauvegardes de contrôle d'accès de apache2.2 à apache2.4, mais cela n'a pas fonctionné. Que pouvais-je faire d'autre?

    
posée user205336 20.10.2013 - 22:53
la source

3 réponses

59

Ce qui s’est passé, c’est que la syntaxe des fichiers de configuration dans apache2.4 a changé.

Source: Cela m’est arrivé aussi après que je suis passé à 13.10

fichiers conf.d

Tous les fichiers contenus dans /etc/apache2/conf.d doivent être déplacés vers /etc/apache2/conf-available .

Ils fonctionnent maintenant de la même façon sites et mods work. Mettez simplement vos fichiers conf dans le dossier conf-available et activez celui que vous voulez avec a2enconf <config-file-name> .

Exemple:

J'ai un fichier conf.d/httpd.conf qui avait la directive ServerName.
Pour que cela fonctionne, je devais le déplacer dans le répertoire conf-available et l'activer manuellement.

sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd

fichiers de sites

Auparavant, les fichiers dans /etc/apache2/sites-available n'avaient pas d'extension. Par exemple /etc/apache2/sites-available/default . Maintenant, une extension .conf est requise.

Exemple:

Si vous aviez /etc/apache2/sites-available/some-site , vous pouvez simplement l'activer en 13.04 en utilisant sudo a2ensite some-site . Maintenant, cela vous donnera une erreur en disant

  

ERREUR: site-site n'existe pas!

Pour résoudre ce problème, ajoutez un .conf à tous vos fichiers de configuration dans sites-available . Vous pouvez faire la même chose dans sites-enabled , ou vous pouvez supprimer tous les fichiers et les réactiver manuellement.
Je vous recommande de les faire manuellement car vous devez probablement réparer chaque VHost (étape suivante).

sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;

si vous avez décidé de les faire manuellement:

sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name

Directives de l'hôte virtuel:

autoriser / refuser vs exiger

Si vous aviez les éléments suivants:

<Directory /path/to/your/site/>
    order allow,deny
    allow from all
</Directory>

Il devrait devenir:

<Directory /path/to/your/site/>
    Require all granted
</Directory>

Pour plus d'informations, consultez les commentaires par DaveRandom sur une réponse au débordement de la pile.

En termes simples, si vous avez mis à niveau vers apache2.4 et conservé l’ancien httpd.conf d’apache2.2, allow directive doit continuer à fonctionner correctement. Si vous avez mis à niveau votre httpd.conf (ce que je suggère), vous obtiendrez des erreurs 403 jusqu'à ce que vous remplaciez les directives Order / Allow / Deny par leur équivalent Require .

Options de répertoire

Si vous aviez des options de répertoire, notez qu’elles doivent toutes être ajoutées avec + ou - ou aucune d’entre elles. Un mélange des deux n'est pas autorisé:

Exemple:

Ceci est autorisé:

<Directory /path/to/your/site/>
    Options +Indexes +FollowSymLinks -MultiViews
</Directory>

Il en est de même (Notez que ces exemples ne font pas tous les deux la même chose, le précédent désactive l’option MultiViews , le prochain ne le fait pas):

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks MultiViews
</Directory>

Ce n'est plus autorisé:

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks -MultiViews
</Directory>

La dernière option de configuration lance l'erreur de syntaxe en disant:

  

Toutes les options doivent commencer par + ou - ou aucune option ne le peut.

Redémarrez apache

Une fois que tout est fait, vous devez redémarrer votre serveur Apache pour que les modifications soient prises en compte:

 sudo apache2ctl restart

Vous trouverez un guide de mise à niveau détaillé de 2.2 à 2.4 sur la documentation officielle.

    
réponse donnée Dan 21.10.2013 - 12:56
la source
0

Je suppose que les sites Web fonctionnent sur votre serveur Ubuntu.

Vérifiez votre httpd.conf pour vous assurer que votre paramètre DocumentRoot pointe vers le bon endroit.

Vérifiez que les autorisations de fichiers sur le dossier référencé par DocumentRoot peuvent être lues par l'utilisateur sous lequel le serveur Web s'exécute.

Vérifiez que vous avez un index.html / index.htm, etc. approprié et que le serveur Web n'essaie pas de faire une liste de répertoires.

    
réponse donnée Matt 20.10.2013 - 23:57
la source
-1

Je suis en train de servir des fichiers à partir d'un répertoire non standard. Pour effectuer la mise à niveau, j'ai dû modifier /etc/apache2/apache2.conf et ajouter:     Options Indexes FollowSymLinks     AllowOverride Aucun     Exiger tout accordé

Après cela, et les modifications recommandées ci-dessus, l'erreur 403 a disparu.

    
réponse donnée kupy pupy 28.06.2015 - 23:30
la source

Lire d'autres questions sur les étiquettes