Article mis à jour le : 05-05-2022
Les étapes à suivre pour passer son site en production sous Symfony 2Vous voulez essayer ou tout simplement vous souhaitez passer votre site/application réalisée sous Symfony 2 en ligne? Ce n'est pas très compliqué...
Tout d'abord vous devez vider le cache, du mode développement, avec la console :
php app/console cache:clear
Puis faire de même pour le mode production :
php app/console cache:clear --env=prod
Ensuite, ouvrez le contrôleur frontal, le fichier web/app.php :
Et passer à true l'activation de l'affichage des erreurs mode production :
$kernel = new AppKernel('prod', true);
Cela va vous permettre de réaliser vos tests, que tout marche bien une fois mis en ligne. Une fois que c'est fait, pensez à repasser le paramètre à false!
Dans tous les cas, les erreurs sont toujours enregistrées dans les log, accessible dans app/logs/prod.
IMPORTANT : parfois, cela ne suffit pas... Ainsi, à chaque fois que vous ferez des modifications en ligne, pensez ausis à vider manuellement le répertoire du cach dans : app/cache
Plus loin après l'upload, vous pourrez avoir quelques messages d'erreurs, du style :
Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING
Avant de lire la suite, vérifiez que :
- Vous avez bien fait un CHMOD 755 sur vos répertoires /app/cache et /app/logs.
- Que vous utilisez une version de PHP 'correcte'.
Sinon... En ligne, vous pourrez vérifier que votre serveur est compatible en tapant l'URL www.monsite.com/config.php. Mais ce dernier, qui se trouve dans app verrouille l'accès par défaut. Une fois en ligne, il faut donc l'éditer en retirant le bloc ci-dessous, ou en ya rajout votre IP. Pensez à tout remettre comme à l'origine une fois vos manipulations terminées!
<?php
// web/config.php
// …
if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
'127.0.0.1',
'::1',
))) {
header('HTTP/1.0 403 Forbidden');
exit('This script is only accessible from localhost.');
}
Bon pas la peine de vous expliquez trop longtemps, vous mettez vos fichiers en ligne. A noter que sur certains hébergeurs, le répertoire public n'a pas toujours le même nom. Ainsi par exemple sur OVH, c'est www. Donc vos fichier qui sont dans le répertoire web en local, devront aller dans le dossier www en ligne. A moins de vous créer un sous-domaine ou d'avoir accès aux paramétrages du serveur!
Vous pouvez vous autorisez le mode développement, en ligne, à partir de votre ip uniquement si vous le souhaitez. Vous avez juste à la rajouter dans app/app_dev.php.