Maison  >  Article  >  Opération et maintenance  >  Comment résoudre Apache 403 interdit

Comment résoudre Apache 403 interdit

藏色散人
藏色散人original
2019-12-16 14:34:174282parcourir

Comment résoudre Apache 403 interdit

Comment résoudre Apache 403 interdit ?

Problème interdit du serveur Apache httpd 403

1. Description du problème

Dans la configuration httpd d'Apache2, 403 apparaîtra dans de nombreuses situations.

Je viens d'installer le service httpd, bien sûr il n'y aura pas de problème 403. Cela s'est produit principalement après modification de certaines configurations. Le problème est décrit comme suit :

Après modification du pointage du répertoire DocumentRoot, une erreur 403 s'est produite sur le site.

La configuration d'un répertoire d'hôte virtuel peut également provoquer un message 403.

Le service httpd d'Apache a démarré avec succès, et il semble normal, mais il n'a pas l'autorisation d'accéder

Le journal apparaît : accès à / refusé (chemin du système de fichiers '/srv/lxyproject/wsgi/ django.wsgi') car les autorisations de recherche sont manquantes sur un composant du chemin

Après avoir paramétré le répertoire virtuel, le journal des erreurs apparaît : client refusé par configuration du serveur : /srv/lxyproject/wsgi/django.wsgi

2. Analyse des problèmes et des solutions

Faites attention au contenu du journal des erreurs lors de la résolution du problème étape par étape ci-dessous. OK, commence.

1. Le fichier de configuration du répertoire dans httpd.conf

S'il montre que le DocumentRoot a été modifié, par exemple, il est remplacé par "/usr/local/site/test". Le répertoire du site et le répertoire de test sont créés à l'aide de mkdir, puis un index.html est placé sous le répertoire de test. Dans ce cas, vous devez vérifier la configuration dans httpd.conf.

Votre 44959c48efc243fe6a6b243300a73353 doit être cohérent avec DocumentRoot, car ce répertoire est le paramètre d'autorisation d'accès d'Apache pour le répertoire. Seul le répertoire correct est défini, DocumentRoot prendra. effet.

<Directory "/usr/local/site/test">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn&#39;t give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None
    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

2. Autorisations d'accès au répertoire

La première étape est correcte mais 403 apparaît toujours. Vérifiez s'il y a un refus depuis dans la configuration du répertoire 05e0d138f24d9dda0cfe34ffd50158d5 tous. Dans le cas contraire, tout accès sera refusé, bien entendu, 403.

peut être défini sur Autoriser tout ou Exiger que tout soit accordé pour le traitement.

Ne modifiez pas Deny from all dans le répertoire racine du 7d50add1c973852b0a9343a1c5b78333.

3. Autorisations du répertoire

S'il s'agit toujours de 403, il peut s'agir d'un problème d'autorisation avec le répertoire du site Web.

Apache nécessite que le répertoire ait des autorisations d'exécution, ce qui est x. Il convient de noter que votre arborescence de répertoires doit avoir ces autorisations.

Si votre répertoire est /usr/local/site/test, alors assurez-vous des quatre niveaux de /usr, /usr/local, /usr/local/site, /usr/local/site/test Tous les répertoires avoir 755 autorisations.

#chmod 755 /usr/local/site
#chmod 755 /usr/local/site/test

Une erreur que j'ai commise est de définir uniquement les autorisations du répertoire de dernier niveau et de ne pas définir les autorisations du répertoire de niveau supérieur, ce qui donne 403.

4. Annuaire virtuel

[Je n'ai jamais rencontré ce problème car je ne l'ai jamais écrit comme ça Les informations en ligne disent ceci, qui peut être utilisé comme référence]

S'il s'agit d'un répertoire virtuel, alors vous devez définir un répertoire virtuel dans httpd.conf, et il ressemble au fragment suivant :

Alias /folder "/usr/local/folder"                       
<Directory "/usr/local/folder">                         
    Options FollowSymLinks                            
    AllowOverride None                              
    Order deny,allow                               
    Deny from all                                 
    Allow from 127.0.0.1 192.168.1.1                       
</Directory>

Si tel est le cas et que vous écrivez quelque chose de similaire à mon code ci-dessus, trois Chaque dossier est le même, ce sera certainement 403 ! Comment résoudre ce problème est de changer la chaîne après la barre oblique après Alias. Remplacez-la par quelque chose qui n'a pas le même nom que le dossier du répertoire virtuel. Ensuite, je peux utiliser le répertoire virtuel modifié pour y accéder. Les dossiers conviennent également, tant que vous n'avez pas peur des ennuis et tant que les caractères de définition du répertoire virtuel (rouges) derrière Alias ​​​​et le nom réel du dossier (noir) sont différents, tout ira bien.

5. Problème Selinux

S'il s'agit toujours de 403, alors selinux pose problème. Par conséquent, vous pouvez définir les autorisations selinux sur votre répertoire.

C'est le problème que j'ai rencontré aujourd'hui.

#chcon -R -t httpd_sys_content_t /usr/local/site
#chcon -R -t httpd_sys_content_t /usr/local/site/test

Les informations en ligne indiquent que la majeure partie de cette étape ne se produira pas. Mais mon problème est effectivement que cela peut être lié au système, et je ne comprends pas bien le principe précis.

6. Problèmes avec wsgi

Ma configuration d'hôte virtuel est :

<VirtualHost *:80>
WSGIScriptAlias / /srv/lxyproject/wsgi/django.wsgi
Alias /static/ /srv/lxyproject/collectedstatic/
ServerName 10.1.101.31
#ServerName example.com
#ServerAlias www.example.com
<Directory /srv/lxyproject/collectedstatic>
  Options Indexes  FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
<Directory /srv/lxyproject/wsgi/>
    Allow from all
</Directory>
ErrorLog   /etc/httpd/logs/lxyproject.error.log
LogLevel warn
</VirtualHost>

Lorsque j'accède au

erreur de journal :

client denied by server configuration: /srv/lxyproject/wsgi/django.wsgi

Méthode résolue :

Modifier Autoriser de tous dans a84c9d6c966af598e4332f18bd310657 pour : Exiger que tout soit accordé.

Ce problème est dû à la version

Ma version httpd est :

[root@yl-web conf.d]# rpm -qa |grep httpd
httpd-devel-2.4.6-31.el7.centos.x86_64
httpd-tools-2.4.6-31.el7.centos.x86_64
httpd-2.4.6-31.el7.centos.x86_64

Pour les versions inférieures à 2.3, utilisez Autoriser de tous, et pour les versions 2.3 et supérieures, utilisez Exiger que tout soit accordé.

<Directory /home/aettool/aet/apache>
  <IfVersion < 2.3 >
   Order allow,deny
   Allow from all
  </IfVersion>
  <IfVersion >= 2.3>
   Require all granted
  </IfVersion>
</Directory>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn