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 ?

14
demandé sur Community 2013-02-15 11:20:17

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
24
répondu Julien Rollin 2013-09-23 08:48:32

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 .

0
répondu kiran Mohan 2017-09-12 05:55:36