Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 20/04/2011, 19h42   #1
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Par défaut [Apache] Configuration des VirtualHost et no_script_name

Salut,

J'ai un projet symfony. Pour l'instant, je le développe sur ma machine et tout fonctionne très bien avec des url comme
http://monProjet/monApp_dev.php
ou
http://monProjet.dyndns.org/monApp_dev.php

Mais j'ai un problème avec l'environnement de prod. je peux accéder à mon application via
http://monProjet/monApp.php mais ensuite, lorsque je clique sur un lien, j'ai une erreur d'apache "Not Found" parce que symfony transforme les lien de /monApp.php/home vers /home et on dirait que apache ne s'y retrouve pas.

J'ai vu dans settings.yml que je peux changer l'option "no_script_name" et la mettre à false dans prod comme dans dev. Après, ça marche.

Mais le problème, c'est que en prod, je veux accéder à mon application avec uniquement http://monProjet et pas avoir besoin de spécifier http://monProjet/monApp.php.

Si je fais http://monProjet (avec l'option no_script_name à false), j'y arrive et ça fonctionne mais les liens sont convertis en http://monProjet/index.php/home. Ce qui est mieux mais comment faire pour que http://monProjet/home fonctionne ?

Merci d'avance

Voilà mon virtualhost :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName  monProjet
	ServerAlias monProjet.dyndns.org
	DocumentRoot /home/moi/dev/monProjet/web 
	DirectoryIndex index.php
 
	<Directory "/home/moi/dev/monProjet/web">
		AllowOverride All
		Allow from All
	</Directory>
 
	Alias /sf /home/moi/dev/monProjet/lib/vendor/symfony-1.4.11/data/web/sf
	  <Directory "/home/moi/dev/monProjet/lib/vendor/symfony/data/web/sf">
	    AllowOverride All
	    Allow from All
	  </Directory>
</VirtualHost>
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 10h59   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Cela sent la salade de configuration !

En principe tu as dans web, en local deux fichiers qui sont créé pour lancer ton application.

index.php qui permet de lancer en production sans le nom du fichier dans l'url
<monApplication>_dev.php qui permet de lancer en mode développement.

Dans un dossier web donné tu ne peux avoir qu'une application qui se lance sans le nom du fichier dans l'url.

Ceci est géré par le fichier setting (pour index.php) et par le fichier .htaccess qui active l'url rewriting sur apache.

Pour que tu puisses, sur ton serveur, avoir l'url sans le nom du fichier du dois avoir un fichier .htaccess pris en compte sur le serveur (le nom sous apache peut avoir été modifie) et tu dois avoir le module rewrite activé dans apache. Sans ces deux conditions, cela ne peut fonctionner.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 13h48   #3
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Merci pour ta réponse, aurais-tu un exemple de .htaccess qui ferait ça ?
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 15h41   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
lol

Le fichier de base fournit dans toutes les applications générées en symfony le fait. La preuve, cela marche sur ton poste.

A priori, soit il n'est pas pris en compte sur ton serveur (non du fichier foireux), soit le module rewrite n'est pas activé sur le serveur.

Il doit bien y avoir d'autres possibilités, mais explorons déjà les deux qui couvent plus de 95% des cas.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 12h59   #5
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Ah oui en effet, je n'avais pas vu ce fichier. C'est évoqué ici (http://www.symfony-project.org/getti...-Configuration) mais sans montrer la configuration du virtualhost pour que ça fonctionne.

Je vais laisser ça de coté pour le moment.
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 15h49   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Ton virtual host me semble bon.

Tu as quelques informations de plus ici.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 18h08   #7
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
J'ai essayé de me baser sur le virtualhost que tu proposes. Mais ça ne fonctionne pas. http://monServer/index.php/client fonctionne mais avec http://monServer/client j'ai un Not Found...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName  monServer
	ServerAlias monServer.dyndns.org
	DocumentRoot /home/me/monProjet/web 
	DirectoryIndex index.php
 
	<Directory "/home/me/monProjet/web">
		Options Indexes FollowSymLinks Includes ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
		#AllowOverride All
		#Allow from All
	</Directory>
 
	Alias /sf /home/me/monProjet/lib/vendor/symfony-1.4.11/data/web/sf
	  <Directory "/home/me/monProjet/lib/vendor/symfony/data/web/sf">
	    AllowOverride All
	    Allow from All
	  </Directory>
</VirtualHost>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Options +FollowSymLinks +ExecCGI
 
<IfModule mod_rewrite.c>
  RewriteEngine On
 
  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  #RewriteBase /
 
  # we skip all files with .something
  #RewriteCond %{REQUEST_URI} \..+$
  #RewriteCond %{REQUEST_URI} !\.html$
  #RewriteRule .* - [L]
 
  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f
 
  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 18h24   #8
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
As-tu vérifié que tu avais un module rewrite actif sur ton serveur apache ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2011, 19h40   #9
lr
Membre du Club
 
Inscription : octobre 2003
Messages : 329
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 329
Points : 69
Points : 69
Envoyer un message via ICQ à lr
Citation:
Envoyé par Michel Rotta Voir le message
As-tu vérifié que tu avais un module rewrite actif sur ton serveur apache ?
C'était ça. Je sais que tu m'en avais déjà parlé mais je ne savais pas comment vérifier et je ne trouvais pas de paquet correspondant pour ma distribution (ubuntu). En fait j'ai seulement du taper
sudo a2enmod rewrite
et redémarrer.

Maintenant c'est bon, merci beaucoup !
lr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 13h48   #10
Membre du Club
 
Homme
Inscription : novembre 2006
Messages : 146
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34

Informations forums :
Inscription : novembre 2006
Messages : 146
Points : 41
Points : 41
J'ai justement le même problème en prod.

Lorsque j'entre : http://myservername/index.php/formations, ça marche
mais quand je fais : http://myservername/formations, ça ne marche plus.

J'ai vérifié, j'ai bien un mod_rewrite activé. Mon .htaccess est celui par défaut (je n'y ai pas touché) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Options +FollowSymLinks +ExecCGI
 
<IfModule mod_rewrite.c>
  RewriteEngine On
 
  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  #RewriteBase /
 
  # we skip all files with .something
  #RewriteCond %{REQUEST_URI} \..+$
  #RewriteCond %{REQUEST_URI} !\.html$
  #RewriteRule .* - [L]
 
  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f
 
  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
et mon vhost :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<VirtualHost *:80>
  ServerAdmin *****@gmail.com
  ServerName myservername
  DocumentRoot "/home/***/***/***/web"
  DirectoryIndex index.php
  <Directory "/home/***/***/***/web">
    AllowOverride None
    Order Deny,Allow
    Deny from All
    Allow from 127.0.0.1		# Moi
    Allow from 172.30.101.24		# *****
    Allow from 172.30.101.27		# *****
    Allow from 172.30.101.54		# *****
  </Directory>
 
  Alias /sf /home/***/***/***/lib/vendor/symfony/data/web/sf
  <Directory "/home/***/***/***/lib/vendor/symfony/data/web/sf">
    AllowOverride None
    Deny from All
    Allow from 127.0.0.1
    Allow from 172.30.101.24
    Allow from 172.30.101.27
    Allow from 172.30.101.54
  </Directory>
</VirtualHost>
C'est un réel problème pour moi, il ne faut pas que le nom du controlleur apparaisse dans l'url
jekif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 13h57   #11
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Avec un AllowOverride à None le .htaccess n'est même pas lu ... Il faut au moins FileInfo et Options comme valeurs en l'état (All pour être "tranquille").

(c'est le PathInfo - AcceptPathInfo on - qui doit permettre le fonctionnement de la première)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 14h11   #12
Membre du Club
 
Homme
Inscription : novembre 2006
Messages : 146
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34

Informations forums :
Inscription : novembre 2006
Messages : 146
Points : 41
Points : 41
Oui en effet, j'allais justement poster que j'avais trouvé la solution dans une autre discussion

Mais merci quand même !
jekif est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h29.


 
 
 
 
Partenaires

Hébergement Web