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 :

1 IP pour plusieurs applications Web Symfony


Sujet :

Apache

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut 1 IP pour plusieurs applications Web Symfony
    Bonjour,

    Je ne suis pas un spécialiste serveur, j'ai un VPS, avec donc une IP je souhaiterais faire pointer vers plusieurs appli hébergés par apache 2.2 sous debian 6.

    J'aimerais par exemple faire pointer :
    http://xxx.xxx.xxx.xxx/appli1 vers var/www/appli1/web/
    http://xxx.xxx.xxx.xxx/appli2 vers var/www/appli2/web/
    http://xxx.xxx.xxx.xxx/ vers var/www/

    Evidemment rendre inaccessible l'accès à var/www/appli1/ mais faire pointer toujours sur son répertoire /web/

    Je me suis tourné vers les virtualhost mais c totalement inadapté dans mon cas. Et là je sèche...

  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
    Les hôtes virtuels ne t'aideront pas, ils ne concernent que le nom des sites (www.developpez.com, par exemple). Pour le chemin, il faut travailler au niveau du document root ou avec des alias.

    Dans ton cas, je travaillerais avec des alias mais il y a un problème : l'alias portera le nom d'un sous-répertoire du document root, ce qui n'est franchement pas terrible car les alias servent avant tout à pointer vers des répertoires en dehors du document root. D'où la question : pourquoi travailler avec des sous-répertoires du document root si ceux-ci doivent être indépendant les uns des autres et non accessibles depuis le site qui pointe sur le document root ? Ce n'est pas la bonne façon de faire.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Si je comprends bien je peux gérer cela grâce aux alias et les utiliser de cette façon :

    http://xxx.xxx.xxx.xxx/appli1 vers srv/www/appli1/web/
    http://xxx.xxx.xxx.xxx/appli2 vers srv/www/appli2/web/
    http://xxx.xxx.xxx.xxx/ vers var/www/

    Dans ce cas est-ce une bonne façon de procéder ?

  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
    Dans la mesure où les répertoires appli1/web et appli2/web sortent du document root c'est OK, mais comme je ne connais pas ton système ni ce qu'est "srv", dire d'en dire plus. Perso, j'aurais fait un truc du genre :
    /var/www/default qui contient tout ce qui est aujourd'hui dans /var/www
    /var/www/appli1 pour http://xxx/appli1
    /var/www/appli2 pour http://xxx/appli2
    avec du coup DocumentRoot qui pointe sur /var/www/default à la place de /var/www aujourd'hui et 2 alias /appli1 et /appli2 qui pointent respectivement sur /var/www/appli1 et /var/www/appli2.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Donc finalement j'ai testé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Alias /appli1 "/srv/appli1/web/"
    <Directory "/srv/appli1/web/">
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride all
           Order Allow,Deny 
       	Allow from all
    </Directory>
    Et donc lorsque je tape sur mon navigateur http://xxx.xxx.xxx.xxx/appli1
    j'ai un message d'erreur 404 :
    Not Found

    The requested URL /srv/appli1/web/app.php was not found on this server.
    le .htaccess et la réécriture d'url fonctionne puisqu'on pointe bien sur le fichier app.php, mais apache prétend qu'il ne le trouve pas alors que ce fichier existe bien physiquement à cet emplacement.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Bon j'ai recommencé tout cela en mettant juste ceci
    dans /etc/apache2/conf.d/alias

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Alias /appli1 /var/www/appli1/web
    <Directory /var/www/appli1/web>
            Order allow,deny
    	Allow from all
            Options None
    </Directory>
    et j'ai une erreur 403
    Forbidden

    You don't have permission to access /appli1/ on this server.
    J'ai également essayé dans un autre répertoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Alias /appli1 /var/appli1/web
    <Directory /var/appli1/web>
            Order allow,deny
    	Allow from all
            Options None
    </Directory>
    J'ai oublié quelques chose ?

  7. #7
    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
    Y a un .htaccess dans /var/www/appli1/web ?

    Sauf infirmation de ta part, avec un répertoire tel que /var/www/appli1/web, on en revient à avoir un alias pointant sur un sous-répertoire du document root et portant le nom d'un sous-répertoire du document root : comment savoir si c'est bien l'Alias qui est activé ou le document root ?

  8. #8
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Alors après avoir passé ma soirée à faire fonctionner mes alias, je n'y parviens toujours pas. Enfin y'a déjà du mieux voici donc ma config actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Alias /appli1 "/var/appli1/web/"
    	<Directory "/var/appli1/web">
    		Options Indexes FollowSymLinks MultiViews
    		Order allow,deny
    		allow from all
    	</Directory>
    Donc désormais il pointe bien sur le répertoire mais la réécriture d'url ne fonctionne plus ! je vois tous les fichiers du répertoire et oui il y a bien un .htaccess dans le répertoire web voici ce qu'il y a dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ app.php [QSA,L]
    </IfModule>
    L'application doit donc pointer sur "app.php" cela fonctionne très bien sans l'alias, et avec il ne veut plus pointer dessus.

  9. #9
    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
    Si tu commentes la condition, ça marchote mieux ?

  10. #10
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Commenter la condition ne change absolument rien

    Non alors plus précisemment quand je tape cette configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Alias /appli1 "/var/appli1/web/"
    	<Directory "/var/appli1/web">
    		Options Indexes FollowSymLinks MultiViews
    		Order allow,deny
    		allow from all
    	</Directory>
    J'ai une erreur 404 il ne trouve pas app.dev, alors qu'il a bien pointé dans le répertoire parce qu'il lit le .htaccess qui lui dit de pointer sur app.php (c'est le seul endroit qui fait pointer dessus). Donc bizarrement il trouve le .htaccess mais pas le app.php qui est dans ce meme répertoire par contre j'ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
                    AllowOverride None
    Alors la j'ai l'accès au répertoire /web/ mais la redirection sur app.dev n'est pas effectué bien que je le vois dans ce répretoire affiché sur le navigateur. Donc le seul truc qui marche c le pointage vers le répertoire /web/ de "appli1" quand je mets xxx.xxx.xxx.xxx/appli1 mets pas le pointage sur app.php

    Quand je remplace app.php par index ainsi que dans .htacess bien entendu la ça fonctionne le pointage vers index.php se fait bien par contre les liens sur cette page pointent vers des redirections qu'il ne reconnait pas, du style : "appli1/post/add" ce n'est pas redirigé vers le répertoire "/web/index.php" quoi que je fasse, comme si l'alias ne fonctionnait plus avec les liens interne à l'appli, il me mets une erreur 404 : "xxx.xxx.xxx.xxx/appli1/post/add" not found. Je suis un peu coincé :s

  11. #11
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Je savais que j'étais pas loin donc j'ai finalement trouvé la solution !

    Je mets les informations concernant la résolution du problème qui pourrait être utile à d'autres dev php, surtout travaillant avec le framework Symfony2 (qui explique le pointage sur app.php "front controller") et souhaitant configurer leur serveur dans le même but.

    donc je rappelle que je suis sur apache2.2 et une debian 6 que j'ai installé et configuré moi-même avec php 5.3.3, MySQL et apc_cache :

    /etc/apache2/httpd.conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	Alias /appli1 "/home/manu/www/appli1/web/"
    	<Directory "/home/manu/www/appli1/web">
    		AllowOverride All
    		allow from all
    	</Directory>
    et j'ai un peu changé mon .htaccess dans mon répertoire appli1/web/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /appli1/app.php [QSA,L]
    </IfModule>
    ce qui me laisse la possibilité de d'exploiter plusieurs applications Symfony2 sur un même serveur avec une seul ip et sans nom de domaine, le but principal étant bien sur d'empêcher l'accès à des répertoires sensibles :
    xxx.xxx.xxx.xxx/appli1
    xxx.xxx.xxx.xxx/appli2
    xxx.xxx.xxx.xxx/appli3


    Merci Mac pour ton aide !

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

Discussions similaires

  1. Comment faire des etats pour une application web ?
    Par ovh dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 06/07/2021, 03h25
  2. Réponses: 3
    Dernier message: 18/03/2008, 09h45
  3. Choix EDI pour développer applications Web simples
    Par med1 dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 28/10/2006, 13h47
  4. [TOMCAT]pas d'images pour mon applications web
    Par mamiberkof dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 23/04/2006, 16h41
  5. [Tomcat][Plusieurs applications WEB] Partage d'objet.
    Par ZeKiD dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 09/04/2005, 13h23

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