[Apache] Accès aux pages user

Résolu
Bjr,

Je voudrais que mon serveur apache permette l'accès aux pages utilisateurs via http//monserveur/~/user (où user et un nom d'utilisateur).

Les pages en question sont dans /home/user/public_html , et même en mettant tout les droits d'accès possibles lecture/écriture/exec sur /home /home/user /home/user/public_html ainsi que les fichiers que ce dernier contient, ça ne marche pas !!!!!

J'ai toujours le message "You don't have permission to access /~user on this server.... 403 Forbidden..."

Il semblerait que httpd.conf permette correctement l'accès à cette fonction :

UserDir enable armlau
UserDir public_html

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

Quelqu'un aurait une idée ?
J'ai dû raté une étape quelque aprt !

Merci d'avance.
xval

9 réponses

  1. Contributeur
    Voilà ce que j'ai trouvé, cela pourra peut-être t'aider.

    13.2 Accès aux fichiers et gestion des droits d'accès

    Avant tout, pour que le démon httpd puisse accéder aux fichiers, ceux-ci doivent avoir le droit de lecture pour tous.

    Pour l'appliquer à tous les fichiers d'un répertoire, nous lancerons ainsi la commande chmod a+r *.

    Par ailleurs, Apache fournit un système permettant de définir les droits d'accès des différents répertoires. Les droits d'accès par défaut sont définis dans le fichier /etc/httpd/conf/access.conf.

    Il est toutefois possible de préciser un droit d'accès pour chaque répertoire, ce qui peut être utile si l'on installe des pages qui doivent être accessibles uniquement de façon interne à votre entreprise/association/réseau, et non à tous les internautes.

    Cela se fait dans un fichier appelé par défaut .htaccess qui contient par exemple :

    order deny,allow
    deny from all
    allow from .votre_domaine.fr

    Ce qui permet d'autoriser uniquement les utilisateurs de .votre_domaine.fr à accéder aux fichiers du répertoire où est placé ce fichier.
    2
    1. il faut corriger la syntaxe de l'url

      L'accès n'est pas pour
      http//monserveur/~/user
      mais pour
      http//monserveur/~user/

      Lhubert
      0
      1. bonjour les ga
        je vous en prieeeeeee aidez moiiii je suis nullll je vien de decouvrir apache lamp tout ca
        je croi que jai le meme probleme que lui mes pages s affiche pas et dans mes fichiers logs c di acces denies comme lui
        mais jai pas compris ce qu il a fait quelqun peut maider svp ca fai 1moisss que je suis dessu je vai mourir
        -1
        1. <LimitExcept GET POST OPTIONS>
          Order deny,allow
          Deny from all--->allow from all
          tu dois changer deny par allow
          0
          1. Ca y est !

            Et bien devinez ce qui bloquait ... ???
            SElinux ! Et oui !
            J'ai désactivé le controle SELinux pour httpd et hop, plus de pb !

            Il faudrait pour bien faire, essayer de valider/dévalider qlq options dans SELinux pour laisser un contrôle tout en autorisant la fonction <user> d'Apache.
            Il fallait signaler que mon /home est sur une partition différente de / (ROOT) et qu'avec SELinux ça pose des pb supplémentaires pour httpd.

            Encore merci à tous pour l'aide !

            @+
            xval
            0
            1. Modérateur
              Salut,

              Le répertoire existe bien, mais ça semble être un pb de droit d'accès.
              Pourtant, là je suis en 777...

              Tu parle de quel répertoire /home/user/public_html ou /home/user

              Un mode 0705 sur /home/user et un 0705 sur /home/user/public_html ça suffit.

              via http//monserveur/~/user
              c'est plutôt
              http://monserveur/~user/index.html
              donc pas de / entre ~ et user


              Une requête http://monsite/~user/rep/index.html sera traduite :
              UserDir public_html    ->   ~user/public-html/rep/index.html
              
              UserDir /usr/local/monsite -> /usr/local/monsite/user/rep/index.html
              
              UserDir /home/*/web/monsite  -> /home/user/web/monsite/rep/index.html


              Je n'ai utilisé que UserDir public_html pour tester.
              J'ai crée un rép public_html dans le /home/user et j'ai mis dédans un index.html basique.

              chmod -v 0705 /home/user
              chmod -vR 0705 /home/user/public_html

              et http://monsite/~lamitest/index.html fonctionne.

              lami20j
              0
              1. Contributeur
                A tout hasard, perso j'ai eu une fois un truc dans le genre,
                j'ai installé apache juste pour voir,
                et je ne réussissais pas à visionner mes pages web en interne,
                il a fallu que je les attribue à root

                chown -R root mes_pages_web

                et cela a fonctionné,
                mais je ne sais pas si c'est la solution.
                0
                1. Regarde l'"error log" d'apache pour voir où le serveur va chercher la page, afin de savoir si c'est un problème de droit ou de chemin.

                  Sinon, pour rediriger les requêtes sur les dossiers des utilisateurs, tu peux aussi t'intéresser au "rewrite rules"
                  Voir à ce sujet:
                  http://cestadire.ch/index.php?option=com_content&task=view&id=32&Itemid=34
                  0
                  1. Et bien, j'ai déja essayé tout ça !!!!!
                    Je dois être à ma 50ème page sur userdir sans plus de résultats.

                    Le répertoire existe bien, mais ça semble être un pb de droit d'accès.
                    Pourtant, là je suis en 777...

                    [error] [client 127.0.0.1] (13)Permission denied: access to /user/index.html denied

                    Merci qd mm !

                    xval
                    0
                2. Contributeur
                  Fais un tour sur le forum d'Apache France, peut-être que tu trouveras la solution à ton problème.

                  Zut, le forum d'Apache France est en panne en ce moment !
                  0