Ceci est une ancienne révision du document !
Déployer l'application
Notes en vrac...
Le répertoire VAR doit être accessible en écriture.
Ne pas oublier de changer la variable APP_ENV=prod
dans le fichier .env
.
- Créer la base de données avec
php bin/console doctrine:database:create
(si vous pouvez creer un BDD) - Créer les tables avec
php bin/console doctrine:migrations:migrate
Déployer dans un sous répertoire
Le but ici est d’héberger une appli Synfony dans un sous répertoire et non pas a la racine du site web.
Imaginons que l'on veuille acceder a notre appli via le répértoire 'sous_repertoire' comme ceci :
http://mon_site.com/sous_repertoire/xxxx/xxxx/
La partie /xxxx/xxxx
devenant la route a retourner au routeur Symfony
Ressources:
Nouveau HTACCESS
a placer dans le répertoire de l'application.
Ce .htaccess renvois tout ce qui est demandé au niveau de ce répértoire vers le répértoire public
- .htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*) public/index.php/$1 [L] </IfModule>
Modification du routage
Configuration dans le fichier .env
http://mon_site.com/sous_repertoire/xxxx/xxxx/
Dans le fichier .env
ou .env.local
ajouter la variable globale
- .env.local
BASE_HOST="/sous_repertoire" BASE_URL="http://mon_site.com/sous_repertoire/public" #pour les Assets
BASE_URL
est vide ou est une adresse mal formée, alors on obtient une erreur
Dans le fichier services.yaml
Pour transformer la variable globale en variable interpretable par le routeur dans le fichier annotations.yaml
- config/services.yaml
parameters: app.base_host: '%env(BASE_HOST)%'
Ajouter un prefix aux urls
- config/routes/annotations.yaml
controllers: resource: ../../src/Controller/ type: annotation prefix: '%app.base_host%' kernel: resource: ../../src/Kernel.php type: annotation prefix: '%app.base_host%'
Modifier l'url de base pour les Assets
- config\packages\framework.yaml
assets: base_urls: ['%env(BASE_URL)%']
base_path
qui me paraissait plus approprié, mais cela n'a pas fonctionné…