Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2011, 09h46   #1
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
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...
webornot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 10h14   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
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.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 10h57   #3
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
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 ?
webornot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 12h12   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
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.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 12h19   #5
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
Donc finalement j'ai testé ceci :
Code :
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 :
Citation:
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.
webornot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 14h46   #6
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
Bon j'ai recommencé tout cela en mettant juste ceci
dans /etc/apache2/conf.d/alias

Code :
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
Citation:
Forbidden

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

Code :
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 ?
webornot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 22h55   #7
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
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 ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 14h57   #8
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
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 :
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 :
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.
webornot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 19h35   #9
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Si tu commentes la condition, ça marchote mieux ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 00h54   #10
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
Commenter la condition ne change absolument rien

Non alors plus précisemment quand je tape cette configuration :
Code :
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 :

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
webornot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 01h41   #11
Membre du Club
 
Homme
Développeur Web
Inscription : 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
Points : 54
Points : 54
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 :
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 :
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 !
webornot est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h25.


 
 
 
 
Partenaires

Hébergement Web