Voici les étapes du premier déploiement d'une application.
É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 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/
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
É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.
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 :
<VirtualHost *:80> ServerName mon_projet.marclebrun.be ServerAdmin myself@mail.com DocumentRoot /var/www/mon_projet/public <Directory /var/www/mon_projet/public/> Options Indexes FollowSymLinks Multiviews AllowOverride all Require all denied Require all granted Allow from all </Directory> </VirtualHost>
Activer le nouveau site et recharger Apache :
a2ensite mon_projet.conf systemctl reload apache2