Forum Linux.mandriva Accès aléatoire au user_dir de apache

Posté par  .
Étiquettes : aucune
0
6
jan.
2009
Bonjour et bonne année toussa

J'ai un petit problème qui m'ennuie depuis quelques temps sur mon serveur apache apache-2.2.9-12mdv2009.0.src.rpm (mandriva 2009 - x64)

J'ai un accès aléatoire au user_dir !

Je m'explique :

si j'interroge la page http://srv/~moi/test.php parfois j'y accès sans soucis mais parfois je me prend l'erreur


[Tue Jan 06 17:39:50 2009] [error] [client 192.168.48.73] File does not exist: /var/www/html/~moi, referer: http://srv/~fde/test.php

La plupart du temps, si je rafraichis la page, elle s'affiche bien de nouveau.

Je ne comprend pas pourquoi. Ce comportement étant aléatoire et arrive également en interrogeant par http://localhost/~moi/test.php ou http://192.168.48.73/~moi/test.php

La config du user_dir étant ancienne, j'ai tout refait au propre mais sans succès... en utilisant les assistants mandriva également.

Extrait du httpd.conf pour le mod_user_dir


# add usermod dir support

# Insert filte r
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
UserDir public_html



AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes FollowSymLinks SymLinksIfOwnerMatch IncludesNoExec

Order allow,deny
Allow from 192.168.48. 127.0.0.1


Order deny,allow
Deny from all




Pour info, mon serveur est déclaré dans mon /etc/hosts et dans le serveur DNS du réseau.

Le problème n'est pas très important, je pourrais localiser mon document root sur mon /home/moi/public_html mais j'aimerais comprendre.
Donc si quelqu'un a une idée, je prends.
  • # config ?

    Posté par  . Évalué à 3.

    d'apres ce que tu dis et d'apres ton fichier de configuration

    ton utilisateur est moi
    et le fichier test.php doit
    avoir comme emplacement /home/moi/public_html/test.php

    est-ce le cas ?
    • [^] # Re: config ?

      Posté par  . Évalué à 1.

      tout à fait...

      Le problème étant que apache cherche un dossier "~moi" dans /var/www/html (le dossier déclaré comme DocumentRoot) de temps en temps, où il ne le trouve pas bien entendu. Du moins c'est comme ça que j'interprète l'erreur.
      File does not exist: /var/www/html/~moi
  • # Tu fais quoi dans test.php ?

    Posté par  . Évalué à 3.

    Tu fais quoi dans ton fichier : une redirection, ou un truc dans le genre ?
    Et pourquoi t'as un referer en /~fde/... t'as un compte à ce nom ?
    Remarque que le 404 se fait sur l'URL de ton compte tout court, pas la page test.php, et sans le dernier slash ...
    • [^] # Re: Tu fais quoi dans test.php ?

      Posté par  . Évalué à 2.

      la page test.php contient un simple hello world, j'avais l'erreur au début avec le site web en entier, j'ai donc commencé par tester avec une page simple.
      Je me rends compte suite a ta question que j'ai oublié de préciser quelques détails :
      J'ai en fait le problème avec n'importe quelle requête http (GET ou POST), appel d'images, de css etc. Parfois dans une page, je ne récupère que partiellement le contenu : le texte par exemple que quelques images ou bien il manque la css. Mais si je réactualise, je récupère tout (parfois après plusieurs F5).

      Pour le ~fde, en effet, c'est une erreur après copie, j'ai fait des tests avec un second compte "moi", en aillant d'ailleurs le même résultat, mais comme j'avais commencé à rédiger avec le compte "moi" et j'ai copié une ligne du log d'erreur avec fde que j'ai "mal" adaptée.

      [Tue Jan 06 17:39:50 2009] [error] [client 192.168.48.73] File does not exist: /var/www/html/~moi, referer: http://srv/~moi /test.php

      Mais pour le reste, c'est bien la ligne d'erreur complète, le serveur bloque sur le ~moi de l'url, qui pointe normalement vers /home/moi/public_html et ne semble pas essayer d'aller plus loin.
      • [^] # Re: Tu fais quoi dans test.php ?

        Posté par  . Évalué à 3.

        ton userdir tu ne l'aurais pas definit DANS un qui pointe deja dans /var/www/html ?

        la config habituelle etant quand meme de le definir dans la config apache
        ou à la base d'un virtualhost

        puis de definir le documentroot

        si on pouvait voir le fichier de config ou tu as mis le userdir
        • [^] # Re: Tu fais quoi dans test.php ?

          Posté par  . Évalué à 1.

          Je ne pense pas mettre trompé
          Il me semble de plus que la config dans le httpd.conf actuel pour ce qui concerne le mod_user_dir a été automatiquement générée par les outils mandriva (si l'erreur vient de là, je pense que j'aurais trouvé le bug dans le forum mandriva).
          Pour le reste, il se peux que certaines modifications bizarres apparaissent dedans suite à mes tests... Mais elles n'ont rien changées au problème.
          Si tu veux vérifier, comme c'est super long, je l'ai mis ici : http://littlebzh.free.fr/httpd.conf

          Normalement, je n'ai rien dans /etc/httpd/conf/vhosts.d/*.conf

          Dans tous les cas, je vous remercie vous penchez sur le problème.
          • [^] # Re: Tu fais quoi dans test.php ?

            Posté par  . Évalué à 2.

            Bon, je ne suis pas un pro de la config apache, mais les options du répertoire /var/www/html sont redéfinies plein de fois dans ton fichier, c'est vraiment louche. Aux vues des sections au-dessus, c'est comme si la dernière partie du path avait été remplacée par 'html' à chaque fois. Tu te serais pas craqué en faisant un petit coup de regexp ?
            • [^] # Re: Tu fais quoi dans test.php ?

              Posté par  . Évalué à 1.

              Je me suis posé la question aussi. Mais je pense que se sont les paquets mandriva qui écrivent ces différents blocs pour chaque module installé (je n'ai pas fait de regexp), et jusqu'il y a peu, cella fonctionnait.
              Je vais voir de ce coté là.
              • [^] # Re: Tu fais quoi dans test.php ?

                Posté par  . Évalué à 2.

                j'ai compté au moins 5 fois la directive <directory /var/www/html>
                avec des options differentes enrte chacune.

                essaie de regrouper ces sections
                ou essaie de purger (desinstaller, supprimer puis reinstaller) la config apache (si tu n'as rien d'autre qui tourne)
                • [^] # Re: Tu fais quoi dans test.php ?

                  Posté par  . Évalué à 2.

                  Alors, comme tu l'as suggéré, j'ai tout simplifié en réunissant le tout dans une seule directive globale mais j'ai toujours le problème.
                  Pour la purge complète, je peux pas trop me le permettre aujourd'hui mais je l'avais déjà fait avant et le problème avait persisté.

                  Mais par contre, j'ai fini par faire un tail sur /var/log/syslog et /var/log/httpd/error_log et je viens de voir ceci :


                  ==> /var/log/httpd/error_log <==
                  /var/lib/misc/passwd.db: Permission denied
                  [Wed Jan 07 15:56:48 2009] [error] [client 192.168.48.73] File does not exist: /var/www/html/~moi

                  ==> /var/log/syslog <==
                  Jan 7 15:53:35 srv httpd: nss_ldap: could not search LDAP server - Server is unavailable
                  Jan 7 15:57:15 srv last message repeated 3 times


                  donc visiblement, le problème n'est pas lié à la config d'apache.
                  Pour une raison que j'ignore, je n'avais pas vu la ligne /var/lib/misc/passwd.db: Permission denied.
                  Si je l'avais copiée précédemment, j'aurais peut être éviter la fausse piste du httpd.conf. Désolé.

                  Pour info, mon poste récupère les identifiants utilisateurs, etc via client LDAP sur un serveur Windows sur lequel ont été activés les Services For Unix).
                  Et maintenant que j'ai vu l'erreur dans syslog, je pense que mon problème est effectivement apparu lors de mise en place de cette méthode d'authentification pour notre réseau Linux (faite par un prestataire).
                  Dans ce domaine, j'y connais vraiment pas grand chose, mais apparemment, le message semble dire que le serveur LDAP devient injoignable par moment (de manière aléatoire).
                  Je vais donc voir cela avec le responsable du réseau coté Windows.
                  Mais peut être y a t il un moyen d'éviter qu'apache interroge systématiquement le serveur LDAP ? Des idées ?

                  Merci pour l'aide déjà fournie.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.