====== 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