IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

VirtualHost / 2 DocumentRoot


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Scalp4
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 106
    Par défaut VirtualHost / 2 DocumentRoot
    Bonjour,

    Déjà, le serveur Apache2 se trouve en local sous Debian.
    DocumentRoot par défaut : /var/www/
    Dans le DocumentRoot se trouve différentes appli comme PhpMyAdmin, un Wiki, etc...
    Pour accéder à tout ce beau petit monde il suffit de tapper, http://192.168.x.x (adresse du serveur) à partir d'un navigateur sur un poste client.

    Jusque là je pense rien apprendre à personne.


    Je débute avec le framework Symfony, donc comme tout débutant je fais le tutoriel. Mais c'est là que se pose le problème, il faut créer le projet dans le home de l'utilisateur. Donc ici, dans : "/home/administrateur/myproject/".
    Le DocumentRoot se trouvant dans : "/home/administrateur/myproject/web/".

    Donc, comme l'explique le tuto on rajoute un "sites-available" dans apache2 comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <VirtualHost 192.168.x.x>
      ServerName myproject.com
      DocumentRoot "/home/administrateur/myproject/web"
      DirectoryIndex index.php
      Alias /sf /usr/share/php/data/symfony/web/sf
      <Directory "/usr/share/php/data/symfony/web/sf">
        AllowOverride All
        Allow from All
      </Directory>
      <Directory "/home/administrateur/myproject/web">
        AllowOverride All
        Allow from All
      </Directory>
    </VirtualHost>
    La partie que j'ai mit en rouge permet au projet d'aller chercher dans le repertoire de Symfony toutes les images, js, css, etc... dont il peut avoir besoin d'après ce que j'ai compris, donc c'est nécessaire.

    Après avoir a2ensite et reload apache, aucun problème, quand je tappe l'ip du serveur dans mon navigateur, il me sort la belle page d'accueil de Symfony en couleur bien sur !

    Le problème est, que maintenant je n'ai plus accès à mon autre DocumentRoot, "/var/www". Quand je tape "http://192.168.x.x/phpmyadmin" par exemple je me retrouve sur la page d'erreur de Symfony me disant que cette adresse n'existe pas, ce qui est normal, je comprend mon erreur mais je n'arrive pas à la résoudre.

    Après plusieurs recherches j'ai testés pas mal de truc sans succès, par exemple d'éviter de passer par un VirtualHost mais cela ne fait strictement rien. J'ai bien essayé de créer 2 VirtualHost mais ça n'a pas marché non plus...

    Pour être clair ce que je cherche à faire, c'est quand je tape :
    http://192.168.x.x => Je me retrouve dans /var/www/
    http://192.168.x.x/phpmyadmin => Je me retrouve dans /var/www/phpmyadmin/
    http://192.168.x.x/myproject => Je me retrouve dans /home/administrateur/myproject/web/

    Ce que j'ai essayé de plus concluant est quelque chose que je trouve assez bourrin et pas du tout sécurisé amha, créer un lien symbolique dans "/var/www/" qui ramene à "/home/administrateur/myproject/web/". Ca fonctionne mais le problème c'est que j'ai aucun endroit ou mettre la partie que j'ai mise en rouge un peu plus haut, et donc il ne trouve pas les images, css, js, etc...



    Voilà, j'espère avoir été assez clair, si vous aviez des questions sur des points que je n'ai pas précisez, j'essaierais d'y répondre.

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je ne suis pas convaincu de l'intérêt du virtual host, surtout que le ServerName que tu indiques est myproject.com et donc ne devrait pas être activé par une URL http://192.168.x.x/.

    Quoi qu'il en soit, un moyen simple de corriger le problème est d'utiliser un alias pour /myproject et d'utiliser le DocumentRoot par défaut /var/www. Donc vire ta config de VirtualHost et mets ceci dans le fichier de conf principal d'Apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Alias /myproject /home/administrateur/myproject/web
     
      DirectoryIndex index.php
      Alias /sf /usr/share/php/data/symfony/web/sf
      <Directory "/usr/share/php/data/symfony/web/sf">
        AllowOverride All
        Allow from All
      </Directory>
      <Directory "/home/administrateur/myproject/web">
        AllowOverride All
        Allow from All
      </Directory>
    Supprimer le VH n'est pas obligatoire, c'est pour ne pas avoir à redéfinir le DocumentRoot. Donc l'idée, c'est surtout de s'assurer que DocumentRoot vaut /var/www là où Apache trouve la conf de ton site.

  3. #3
    Membre confirmé Avatar de Scalp4
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 106
    Par défaut
    Je me suis aussi rendu compte en allant sur le web, que dans mon cas les VirtualHost n'était pas forcement nécessaire.

    Ce que tu m'as proposé je l'avais déjà essayé mais pour être certain de ça je viens de le refaire et cela ne marche pas...

    J'ai bien enlevé les VH et j'ai mis ce que tu as quote dans le httpd.conf, après avoir reload apache, j'arrive bien à joindre mon DocumentRoot en tappant l'ip ainsi que Phpmyadmin etc.. mais quand je tappe : "http://192.168.x.x/myproject", j'ai ça comme réponse :
    Not Found

    The requested URL /home/administrateur/myproject/web/index.php was not found on this server.
    Et dans les logs d'Apache j'ai ça :

    [Wed Aug 20 10:58:35 2008] [error] [client 192.168.x.x] File does not exist: /var/www/home
    Merci.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu peux donner ta conf complète ?

    Vérifie également que l'utilisateur Apache a les droits (OS) pour accéder aux sous-répertoires et fichiers de /home/administrateur/myproject.

  5. #5
    Membre confirmé Avatar de Scalp4
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 106
    Par défaut
    Quand tu parles de ma conf complète, tu parles de "httpd.conf" ?

    Si oui, il n'y a que ce que tu as quoté dans ton post précédent.


    Concernant les droits :
    drwxr-xr-x 13 administrateur administrateur 4,0K 2008-08-19 17:33 myproject/
    Logiquement ça suffit non ?
    Ou il faut que je modifie "userdir.conf" ?

    Merci.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    M'étonnerait beaucoup que le fichier httpd.conf ne contienne que les lignes que j'ai donné. Je demande bien l'intégralité du fichier httpd.conf. Et s'il n'y a que ce que tu dis dedans, c'est que ce n'est pas le bon fichier.

    Citation Envoyé par Scalp4 Voir le message
    Ou il faut que je modifie "userdir.conf" ?
    C'est quoi donc ? Les droits sur le seul répertoire n'est pas suffisant, il faut aussi vérifier tous les sous-répertoires mais également les répertoires parents pour s'assurer que l'utilisateur Apache peut aller dans les répertoires et lire les fichiers. Si tu peux, connecte-toi sur ta machine avec l'utilisateur Apache et fais un cd /home/administrateur/myproject et vois si c'est possible.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [apache] safe_mode sur un virtualhost
    Par GregPeck dans le forum Apache
    Réponses: 2
    Dernier message: 03/12/2005, 23h19
  2. Apache / Tomcat Virtualhost
    Par lolo le belge dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 10/11/2005, 16h57
  3. [VirtualHost] dans httpd.conf
    Par polo55 dans le forum Apache
    Réponses: 3
    Dernier message: 03/10/2005, 11h20
  4. [APACHE] Config VirtualHost + hosts en Intranet
    Par jfdl dans le forum Apache
    Réponses: 9
    Dernier message: 02/09/2005, 22h41
  5. Réponses: 4
    Dernier message: 16/04/2004, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo