====== Premier déploiement ====== Voici les étapes du premier déploiement d'une application. ===== Envoyer les fichiers de l'application vers le serveur ===== Écrire un script nommé **deploy-prd** à placer à la racine du projet : #!/bin/sh rsync -av \ ./ \ root@mon_serveur.net:/var/www/mon_projet/ \ --include=public/build \ --include=vendor \ --exclude-from=.gitignore \ --exclude=".*" ^ Ne pas oublier de terminer les chemins par des "/".^ Rendre le script exécutable : chmod +x deploy-prd Exécuter le script **deploy-prd**. cd /home/marc/PrgWeb/mon_projet ./deploy-prd Enfin, envoyer le fichier **.env** qui n'est pas déployé par le script. rsync .env root@mon_serveur.net:/var/www/mon_projet/ ===== Modifier les propriétaires et les permissions ===== Modifier le propriétaire de tout le dossier : sudo chown -R root:root /var/www/mon_projet/ Créer un dossier var et changer son propriétaire et ses permissions : cd /var/www/mon_projet sudo mkdir var sudo chmod -R 777 var/ sudo chown -R www-data:www-data var/ ===== Créer la base de données ===== Se connecter sur le **phpMyAdmin** du serveur. Créer un nouvel utilisateur et lui donner les droits **SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER** dans les **privilèges globaux**. Éditer le fichier **.env** pour modifier la configuration : DATABASE_URL=mysql://db_user:db_password@localhost:3306/db_name Créer la base de données : php bin/console doctrine:database:create Exécuter les migrations : php bin/console doctrine:migrations:migrate ===== Passer en environnement Prod ===== Éditer le fichier **.env** et modifier la valeur **APP_ENV** : APP_ENV=prod Nettoyer le cache php bin/console cache:clear Résultat : // Clearing the cache for the prod environment with debug false [OK] Cache for the "prod" environment (debug=false) was successfully cleared. ===== Configurer un Virtual Host dans Apache ===== Doc: [[https://symfony.com/doc/current/setup/web_server_configuration.html]] Installer le fichier **.htaccess** dans le dossier /public : cd /var/www/mon_projet/ composer require symfony/apache-pack (Si un **warning** est affiché, répondre **YES**). Créer le fichier **/etc/apache2/sites-available/mon_projet.conf** : ServerName mon_projet.marclebrun.be ServerAdmin myself@mail.com DocumentRoot /var/www/mon_projet/public Options Indexes FollowSymLinks Multiviews AllowOverride all Require all denied Require all granted Allow from all Activer le nouveau site et recharger Apache : a2ensite mon_projet.conf systemctl reload apache2