Comment déployer Symfony2 sur un hébergement mutualisé?
je veux accéder à mon application symfony dans la production env (http://www.sample.com/amateur1/web/app.php) à partir de cette url http://www.sample.com/amateur1.
Pour ce faire j'ai déplacé le .htacces fichier http://www.sample.com/amateur1/.htaccess avec ce contenu:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
Mais quand je vais sur http://www.sample.com/amateur1 affiche une Erreur 404, et prod.journal n'est pas écrite.
je également utilisé RewriteBase /amateur1/web/
parce que je ne sais pas Si RewriteBase le chemin est relatif au DocumentRoot du serveur, ou à partir du chemin où .htaccess le fichier est localisé. Aussi essayé /amateur1
et /amateur1/
RewriteBase en raison de cette réponse Symfony2: comment se déployer dans un sous-répertoire (Apache)
avec les trois essais, la page des Exceptions n'est pas activée, et ne charge aucune image. Mais ensuite, j'obtiens l'erreur suivante dans prod.fichier journal:
[2013-02-15 02:06:47] request.ERROR: SymfonyComponentHttpKernelExceptionNotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []
Qu'est-ce que je fais de mal ?
2 réponses
Dans votre configuration apache utilise public_html
comme la racine du document
si Symfony2 est installé dans le répertoire /home/u105859802/public_html/amateur1
, le Symfony public directory à servir est /home/u105859802/public_html/amateur1/web/
Vous devez utiliser
RewriteBase /amateur1/web/
Mais attention, il n'est pas sûr
vous devez protéger vos répertoires symfony! (accéder à la configuration)
pourquoi n'essayez-vous pas de déplacer vos fichiers symfony dans votre zone privée ?
Vous pouvez renommer le répertoire Web Symfony en public_html
Voir comment faire cela dans la documentation livre de cuisine
ainsi, ma structure de recommandation ressemble à ceci:
- / accueil / u105859802/
- vendeur
- src
- app
- bin
- public_html (web par défaut dans symfony2) <- le seul public répertoire
dans la plupart de l'hébergement partagé, vous ne pouvez pas outrepasser les paramètres D'Apache dans ce cas peut avoir besoin de wright une règle de redirection dans .fichier htaccess
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]
c'est la règle que j'ai utilisé dans mon projet . Vous pouvez avoir besoin de fournir des chemins complets à vos actifs d'autres façons ils ne seront pas chargés .