Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 53 You must be signed in to star a gist
  • Fork 24 You must be signed in to fork a gist
  • Save tattali/58564a8c7233098fd207bcf42ed14821 to your computer and use it in GitHub Desktop.
Save tattali/58564a8c7233098fd207bcf42ed14821 to your computer and use it in GitHub Desktop.

Mettre en production un projet Symfony 4 sur un VPS OVH

VPS OVH | Ubuntu 16.04.3 LTS | LAMP | SYMFONY 4

Pré-requis

  • Votre projet doit être versionné avec git et hébergé (Github, Bitbucket...).
  • Vous devez avoir acheté un VPS et un nom de domaine.
  • Vous devez également générer une clé SSH sur votre ordinateur. (explications ci-dessous)

Création et ajout de la clé SSH au profil OVH

Générez les clés SSH sur votre ordinateur local. Cette clé vous permettra de vous authentifier plus facilement au serveur.

ssh-keygen -t rsa -b 4096 -o -a 100

Ensuite, créez un passphrase (Mot de passe) ou appuyez sur ENTRER pour ne pas en utiliser.

NOTE : Si vous n'utilisez pas de passphrase, vous pourrez vous connecter au serveur sans entrer de mot de passe. Il est conseillé d'utiliser un passphrase, bien que ne pas en utiliser est toujours plus sécurisé que l'authentification par mot de passe classique.

Ceci génère deux fichiers : id_rsa (clé privée), et id_rsa.pub (clé publique), dans le dossier .ssh du répertoire courant de l'utilisateur. Rappplez-vous que la clé privée ne doit pas être partagée.

Dans votre espace client OVH, en haut à droite, accédez à Mon compte, puis sur la gauche Mes clés SSH.

Pour ajouter une clé SSH, cliquez sur Ajouter une clé SSH puis sur Dédié.

OVH Add SSH key

Pour afficher votre clé publique :

cat ~/.ssh/id_rsa.pub

Coller le résultat de la commande et confirmer.

Réinstaller le VPS avec la clé SSH et Ubuntu 16.04

NOTE : Attention ! Ceci supprimera toutes les données sur votre serveur.

Toute réinstallation du VPS se fait dans la partie Cloud de l'espace client OVH. Il suffit de selectionner le VPS dans la colonne de gauche puis de cliquer sur le bouton Réinstaller mon VPS :

Reinstall_VPS Manager

  • Sélectionnez la distribution Ubuntu 16.04 (Long Term Support Version) https://wiki.ubuntu.com/Releases

  • De préférence en langue anglaise pour éviter les erreurs de traduction.

  • Et sélectionnez votre clé SSH.

Reinstall_VPS Config

Connexion au VPS

ssh root@vpsXXXX.ovh.net

NOTE : Si vous avez effectué une réinstallation et que vous vous étiez déjà connecté en SSH, supprimez la clé commençant par vpsXXXX.ovh.net située dans le fichier ~/.ssh/known_hosts de votre ordinateur.

Lors de la première connexion, un message de confirmation va apparaître pour ajouter l'empreinte de l'hôte dans le fichier ~/.ssh/known_hosts

The authenticity of host 'vpsXXXX.ovh.net (192.89.11.121)' can't be established.
ECDSA key fingerprint is SHA256:*******************************************.
Are you sure you want to continue connecting (yes/no)? yes

Entrez yes puis appuyez sur ENTRER pour vous connecter.

Sécuriser le serveur

Modifier le mot de passe de l’utilisateur root

À l’installation d’une distribution, un mot de passe est créé automatiquement pour l’administrateur (root). Il est très fortement conseillé de le modifier pour des raisons de sécurité.

passwd root

Le système demandera alors de rentrer un nouveau mot de passe deux fois pour le valider. Par mesure de sécurité, celui-ci ne s’affichera pas lors de l’écriture. Vous ne pourrez donc pas voir les caractères saisis. Il est très important d'utiliser un mot de passe fort.

NOTE : Un mot de passe fort, est supérieur à 8 caractères. Il doit combiner des lettres minuscules, majuscules, des chiffres, des caractères spéciaux et/ou des lettres accentuées. Mais également évité d'utiliser des mots du dictionnaire, noms/prénoms, nom d'entreprise, nom d'utilisateur... L'utilisation délibérée de fautes d'orthographe est un bon moyen de sécuriser facilement un mot de passe.

Créer un nouvel utilisateur

NOTE : L’administrateur root est créé par défaut sur les systèmes UNIX, il est l'utilisateur qui possède le plus de droits sur votre système. Il est déconseillé, voir dangereux de laisser votre VPS accessible uniquement via cet utilisateur, ce dernier pouvant effectuer des opérations irréversibles sur votre serveur.

Nous allons donc créer un utilisateur avec un accès restreint pour exécuter les tâches courantes.

adduser user

Entrez un mot de passe sécurisé et appuyez sur ENTRER pour chaque question à passer puis valider les informations avec Y.

Donnez ensuite les droits d'administrateur au nouvel utilisateur.

usermod -aG sudo user

Les commandes nécessitant les droits d'administrateur seront précédées du mot clé sudo et le mot de passe de l'utilisateur sera alors demandé.

Utiliser la clé SSH pour la connexion avec le nouvel utilisateur

Ouvrez une nouvelle fenêtre de terminal et utilisez ssh-copy-id.

ssh-copy-id user@vpsXXXX.ovh.net

Modifier le port d’écoute par défaut du service SSH

La plupart des attaques que votre serveur va recevoir viendrons de robots visant le port SSH par défaut (le port 22). Modifier le port d’écoute, leur compliquera la tâche et rendra votre serveur plus difficile à atteindre.

EDITEUR : Vous pouvez utiliser vim ou nano. Avec vim, pour éditer le fichier appuyez une fois sur i pour activer le mode INSERT. Une fois les modifications apportées appuyez sur ECHAP puis :wq pour sauvegarder et quitter.

Pour changer le port d'écoute, modifiez le fichier de configuration de SSH.

vim /etc/ssh/sshd_config

Trouvez la ligne Port 22 et remplacez le port par un port non-utilisé.

NOTE : Conservez le numéro de port en dessous de 1024 car ce sont des ports privilégiés qui ne peuvent être ouverts que par l'administrateur ou par des processus s'exécutant en tant qu'administrateur.

Pour voir les ports utilisés :

netstat -nat | grep LISTEN

# Affichage (Une fois la configuration par défaut du serveur terminée)
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::443                  :::*                    LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Pour appliquer les modifications, redémarrez SSH.

/etc/init.d/ssh restart

Désactiver l’accès au serveur via l’utilisateur root

Il est également recommandé de désactiver l'accès direct de l'utilisateur root via le protocole SSH.

Pour effectuer cette opération, il faut modifier le fichier de configuration SSH.

vim /etc/ssh/sshd_config

Repérez ensuite la ligne suivante :

PermitRootLogin yes

Remplacez le yes par no.

Pour que cette modification soit prise en compte, il faut redémarrer le service SSH.

/etc/init.d/ssh restart

Maintenant et pour exécuter les tâches courantes, servez-vous de l’utilisateur que vous venez de créer pour vous connecter à votre VPS.

Tester la connexion

Ouvrez une nouvelle fenêtre de terminal et testez la connexion.

ssh user@vpsXXXX.ovh.net -p nouveau_port

À partir de maintenant, les commandes nécessitant les droits root seront précédées du mot clé sudo.

Le mot de passe de l'utilisateur vous sera alors demandé.

Si jamais vous avez besoin d'accéder à l'utilisateur root, utilisez la commande :

su root

Mais utilisez le nouvel utilisateur pour la suite du tutoriel.

su user

Définir la locale du serveur

Afin de résoudre les messages d'erreurs lors de la mise à jour des paquets, définissez la locale par défaut du serveur.

sudo dpkg-reconfigure locales

La liste des locales va apparaître, appuyez sur ENTRER, puis sélectionner en_US.UTF-8 grace aux flèches directionnelles et appuyez sur ENTRER pour valider.

sudo localedef -i en_US -c -f UTF-8 en_US.UTF-8

Éditez le fichier /etc/default/locale :

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANGUAGE=en_US.UTF-8

Ensuite, redémarrez votre VPS dans votre espace client.

Actualiser et mettre à jour les logiciels

Cette commande est à lancer régulièrement

sudo apt-get update && sudo apt-get upgrade

Entrez Y pour installer les paquets. Si vous êtes de nouveau questionné, utilisez les valeurs par défaut sauf si vous savez ce que vous faites.

Firewall - Utiliser UFW

Pour libérer le port SSH par défaut.

sudo ufw allow ssh

Et pour libérer uniquement les connexions entrante du nouveau_port_ssh.

sudo ufw allow nouveau_port_ssh/tcp

Activez le firewall.

sudo ufw enable

Pour afficher le statut et les règles du firewall.

sudo ufw status verbose

Pour supprimer une règle.

sudo ufw delete allow ssh

Sécurisez la mémoire partagée.

La mémoire partagée peut être utilisée lors d'une attaque contre un service en cours d'exécution.

Modifiez /etc/fstab pour ajouter une protection.

sudo vim /etc/fstab

À la afin du fichier ajoutez cette ligne :

tmpfs   /run/shm    tmpfs   defaults,noexec,nosuid  0   0

Installer et configurer le paquet Fail2Ban

Fail2Ban est un framework de prévention contre les intrusions dont le but est de bloquer les adresses IP inconnues qui tentent de pénétrer dans votre système. Ce paquet est recommandé, voire indispensable, pour vous prémunir contre toute tentative de brute force sur vos services.

NOTE : Fail2Ban scanne les logs et interdit les adresses IP qui affichent des signes malveillants (trop d'échecs de mot de passe, mauvais nom d'utilisateur...) En général, Fail2Ban est utilisé pour mettre à jour les règles du pare-feu afin de rejeter les adresses IP pendant une durée donnée, bien que toute autre action arbitraire puisse également être configurée. D'autre part, Fail2Ban est livré avec des filtres pré-configurés pour différents services (apache, courrier, ftp, SSH, etc).

L’installation de ce paquet s’effectue avec la commande suivante :

sudo apt-get install fail2ban

Une fois le paquet installé, il faut modifier le fichier de configuration de ce dernier pour l’adapter à la vôtre. Avant toute modification, il est recommandé de faire une sauvegarde de ce fichier en tapant la commande suivante :

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.backup

Apportez ensuite vos modifications sur le fichier :

sudo vim /etc/fail2ban/jail.conf

Si vous souhaitez recevoir des e-mails de Fail2Ban informant si des hôtes sont bannis, changez les lignes suivantes par votre adresse e-mail.

destemail = exemple.fr@mail.com

Changez également la ligne action = %(action_)s par :

action = %(action_mwl)s

Activez tous les services que vous souhaitez que Fail2Ban surveille en changeant enabled = false par enabled = true

Si vous avez modifié le port SSH par défaut, vous devez remplacer tout les port = ssh par port = nouveau_port_ssh

[sshd]

enabled  = true
port     = nouveau_port_ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3

Vous pouvez également créer des filtres pour les différents services que vous souhaitez surveiller avec Fail2Ban et qui ne sont pas fournis par défaut en les plaçant dans le fichier suivant :

sudo vim /etc/fail2ban/jail.local

Une fois l’opération terminée, vous devez redémarrer le service à l’aide de cette commande :

sudo /etc/init.d/fail2ban restart

Pour toute informations complémentaire concernant Fail2Ban, n’hésitez pas à consulter la documentation officielle.

LAMP INSTALL

Linux Apache MySQL PHP

Vérifiez les mises à jour disponibles, puis installez-les toutes.

sudo apt-get update && sudo apt-get upgrade

Apache

Installez le serveur Web Apache.

sudo apt-get install apache2

Éditez la configuration d'Apache:

sudo vim /etc/apache2/apache2.conf

À la fin de ce fichier, ajoutez le mot-clé ServerName, pointant vers le domaine du serveur ou IP.

ServerName 192.89.11.121

Vérifiez ensuite les erreurs de syntaxe dans la configuration :

sudo apache2ctl configtest

# Affichage
Syntax OK

Pour appliquer les modifications, redémarrez Apache.

sudo /etc/init.d/apache2 restart

Libérez les connexions entrante du port HTTP

sudo ufw allow 80/tcp
# ou
sudo ufw allow http/tcp

Accédez à http://vpsXXXX.ovh.net. Si vous voyez la page suivante, Apache fonctionne correctement :

Apache2 default page

MySQL

Installez le système de gestion de base de données, MySQL.

sudo apt-get install mysql-server

Entrez un mot de passe pour l'utilisateur root MySQL.

Une fois l'installation terminée, exécutez un script de sécurité qui supprimera certaines valeurs par défaut dangereuses et verrouillera certains accès :

mysql_secure_installation

Vous serez invité à entrer le mot de passe que vous avez défini pour l'utilisateur root MySQL. Ensuite, il vous sera demandé si vous voulez configurer le VALIDATE PASSWORD PLUGIN.

ATTENTION : Si activé, les mots de passe qui ne correspondent pas aux critères spécifiés seront rejetés par MySQL avec une erreur. Cela entraînera des problèmes si vous utilisez un mot de passe faible mais également avec un logiciel qui configure automatiquement les mots de passe de l'utilisateur MySQL, tel que phpMyAdmin. Il est possible de laisser la vérification désactivée, mais vous devez toujours utiliser des mots de passe forts et uniques pour vos bases de données.

Si le mot de passe n'est pas fort et unique vous pouvez le modifier dans le mysql_secure_installation

Pour le reste des questions, vous pouvez répondre y. Cela supprimera certains utilisateurs anonymes, la base de données de test, désactivera les connexions root distantes et chargera ces nouvelles règles afin que MySQL respecte immédiatement les modifications que nous avons apportées.

Le système de base de données est maintenant configuré !

PHP

Pour installer la dernière version de php, lancez :

sudo apt-get install -y python-software-properties
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update -y
sudo apt-get install php7.2 libapache2-mod-php7.2 php7.2-mysql php-mcrypt

PHP a beaucoup de modules qui peuvent être facilement installés pour améliorer ses fonctionnalités. Recherchez ces modules supplémentaires avec apt-cache :

apt-cache search php7.2 | less

Testez votre installation en créant un fichier info.php.

sudo vim /var/www/html/info.php

Et ajoutez ceci pour afficher la configuration de php.

<?php phpinfo(); ?>

Modifiez le date.timezone de votre php.ini

sudo vim /etc/php/7.2/cli/php.ini

Retirez le commentaire ; et indiquez le fuseau horaire de l'application par exemple : Europe/Paris

NOTE : Pour vérifier l'heure et le fuseau horaire du serveur utilisez : timedatectl status. Pour le modifier entrez : sudo timedatectl set-timezone suivi de votre fuseau horaire Europe/Paris ou UTC. Une liste est disponible timedatectl list-timezones. Si vous avez des tâches cron n'oubliez pas de le redémarrer.

Ouvrez votre navigateur et accédez à http://vpsXXXX.ovh.net/info.php. Si vous voyez la page suivante, PHP est correctement installé !

PHP info page

Symfony 4

Installez git pour récupérer votre projet et acl pour attribuer les autorisations lors de l'installation de l'application. Pour finir, ajoutez les modules php utilisés par Symfony et composer.

sudo apt-get install acl git php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-gd php7.2-common

Puis installez composer :

sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Créer la structure du répertoire web

Accédez à la racine de l'environement web et créez le répertoire du site :

cd /var/www
sudo mkdir exemple.fr

Modifiez les autorisations en faveur de l'utilisateur courant :

sudo chown -R $USER:$USER /var/www/exemple.fr

Clonez votre projet (De préférence avec https)

git clone https://user@bitbucket.org/user/sf4-exemple.fr.git exemple.fr

Créer la base de données

Connectez-vous et entrez le mot de passe de l'utilisateur root MySQL.

mysql -u root -p

Créez la base de données de l'application.

CREATE DATABASE exemple_db;

La base de données créée, l'étape suivante consiste à créer un utilisateur MySQL et à lui donner accès à notre nouvelle base de données.

CREATE USER 'user'@'localhost' IDENTIFIED BY 'mot_de_passe';

Cela va créer un utilisateur nommé user, avec le mot de passe mot_de_passe. Il est important de noter que ce sont des valeurs d'exemples et vous devrez utiliser un mot de passe fort pour votre utilisateur MySQL afin de garantir la sécurité de vos données.

Nous allons accorder à cet utilisateur les autorisations appropriées la base de données :

GRANT ALL PRIVILEGES ON exemple_db.* TO 'user'@'localhost';

Puis valider les modifications.

FLUSH PRIVILEGES;

Pour tester si tout fonctionne comme prévu, quittez le client MySQL.

quit;

Et connectez-vous en utilisant le nouvel utilisateur et mot de passe MySQL que vous venez de créer.

mysql -u user -p

Vous pouvez vérifier les bases de données auxquelles cet utilisateur a accès avec :

SHOW DATABASES;

# Affichage
+--------------------+
| Database           |
+--------------------+
| information_schema |
| exemple_db         |
+--------------------+

Vous pouvez alors quitter le client MySQL.

quit;

Configurer votre application

Modifiez les autorisations en faveur de l'utilisateur www-data

sudo setfacl -R -m u:www-data:rX /var/www/exemple.fr

NOTE : Dans les versions précédentes de Symfony, il était nécessaire d'attribuer des autorisations spéciales pour s'assurer que le dossier de cache était accessible en écriture. Dans Symfony 4, tout fonctionne automatiquement :

  • En mode dev, umask() est utilisé dans bin/console et public/index.php pour que tous les fichiers créés soient accessibles en écriture pour tout le monde.
  • En mode prod (c'est-à-dire : lorsque APP_ENV=prod et APP_DEBUG=0), tant que vous exécutez php bin/console cache:warmup, aucun fichier de cache n'aura besoin d'être modifié lors de l'exécution de l'application.

Accédez au répertoire de votre application :

cd exemple.fr

Modifier le .env :

vim .env

ATTENTION : Si vous avez versionné le .env ou même le .env.dist vous devez obligatoirement modifier l' APP_SECRET

Pour générer un APP_SECRET

php -r "print(hash('sha1', uniqid(mt_rand(), true)));"

N'hésitez pas à modifier l'algorithme. Une liste est disponible avec :

php -r "print_r(hash_algos());"

Passez ensuite le projet en mode prod

APP_ENV=prod
APP_DEBUG=0

Modifiez également les paramètres de connexion à la base de données

DATABASE_URL=mysql://user:'mot_de_passe'@127.0.0.1:3306/exemple_db

Vous pouvez sauvegarder et quitter le fichier .env

Installez les vendors

composer install --optimize-autoloader

Générez ensuite le schéma de la base de données puis réinitialisez le cache :

php bin/console doctrine:schema:create
php bin/console cache:clear && php bin/console cache:warmup

Nom de domaine

Afin de lier votre nom de domaine à votre VPS. Pensez à copier l'adresse IP du VPS située dans votre espace client OVH. Rendez-vous ensuite dans la partie Web de l'espace client et sélectionnez votre nom de domaine. Cliquez ensuite sur l'onglet Zone DNS puis sur la droite sur Réinitialiser ma zone DNS.

Cochez OUI pour utiliser la configuration de base et cliquez sur Suivant.

Domain

Sélectionnez Personalisé puis coller l'IP du VPS préalablement copiée.

Pour les mails, vous pouvez utiliser une redirection vers une adresse mail existante. Pour cela, sélectionez Redirection puis une fois les modifications éffectuées créez votre redirection dans le menu Emails de la barre latérale de gauche.

Puis confimez.

Domain2

La modification peut prendre quelques instants. En attendant créez votre ou vos VirtualHosts.

Apache VirtualHosts

Créez une nouvelle VirtualHost

sudo vim /etc/apache2/sites-available/exemple.fr.conf
<VirtualHost *:80>
	ServerAdmin contact@exemple.fr

	ServerName  exemple.fr

	DocumentRoot /var/www/exemple.fr/public
	<Directory /var/www/exemple.fr/public>
		AllowOverride None
		Order Allow,Deny
		Allow from All

		<IfModule mod_rewrite.c>
			Options -MultiViews
			RewriteEngine On

			RewriteCond %{REQUEST_FILENAME} !-f
			RewriteRule ^(.*)$ index.php [QSA,L]
		</IfModule>
	</Directory>

	# (Optional) Disable the RewriteEngine for the bundles asset directories
	<Directory /var/www/exemple.fr/public/bundles>
		<IfModule mod_rewrite.c>
			RewriteEngine Off
		</IfModule>
	</Directory>

	ErrorLog /var/log/apache2/exemple.fr_error.log
	CustomLog /var/log/apache2/exemple.fr_access.log combined
</VirtualHost>

Activez la VirtualHost de l'application et désactivez celle par défaut

sudo a2ensite exemple.fr.conf
sudo a2dissite 000-default.conf

sudo a2enmod rewrite

Redémarrez Apache pour appliquer les modifications

sudo /etc/init.d/apache2 restart

TLS/SSL - Sécuriser Apache avec Let's Encrypt

Avec Let's Encrypt il est très facile de passer votre site en https

Installer le client Let's Encrypt

Importez le repository puis installez Certbot

sudo apt-get update
sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

Le client Let's Encrypt de certbot est maintenant prêt à être utilisé.

Générer le certificat SSL

sudo certbot --apache -d exemple.fr
# ou pour plusieurs domaines
sudo certbot --apache -d exemple.fr -d matomo.exemple.fr

Modifier la VirtualHost

sudo vim /etc/apache2/sites-available/exemple-le-ssl.fr.conf
<VirtualHost *:80>
	ServerName  exemple.fr

	DocumentRoot /var/www/exemple.fr/public
	<IfModule mod_rewrite.c>
		Options -MultiViews
		RewriteEngine On

		# Redirect http to https (only after configurate the SSL)
		RewriteCond %{SERVER_NAME} =exemple.fr
		RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
	</IfModule>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerAdmin contact@exemple.fr

	ServerName  exemple.fr

	DocumentRoot /var/www/exemple.fr/public
	<Directory /var/www/exemple.fr/public>
		AllowOverride None
		Order Allow,Deny
		Allow from All

		<IfModule mod_rewrite.c>
			Options -MultiViews
			RewriteEngine On

			RewriteCond %{REQUEST_FILENAME} !-f
			RewriteRule ^(.*)$ index.php [QSA,L]
		</IfModule>
	</Directory>

	# (Optional) Disable the RewriteEngine for the bundles asset directories
	<Directory /var/www/exemple.fr/public/bundles>
		<IfModule mod_rewrite.c>
			RewriteEngine Off
		</IfModule>
	</Directory>

	ErrorLog /var/log/apache2/exemple.fr_error.log
	CustomLog /var/log/apache2/exemple.fr_access.log combined
	SSLCertificateFile /etc/letsencrypt/live/exemple.fr/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/exemple.fr/privkey.pem
	Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Libérer le port 443 du firewall

sudo ufw allow https

Désactivez l'ancienne VirtualHost. La nouvelle a déjà été activée.

sudo a2dissite exemple.fr.conf

Redémarrez Apache pour appliquer les modifications

sudo /etc/init.d/apache2 restart

Vérifier le renouvellement automatique de Certbot

Certbot est livré avec une tâche cron qui va automatiquement renouveller les certificats avant leur exipiration. Les certificats de Let's Encrypt durent 90 jours, il est donc fortement recommandé d'utiliser cette fonctionnalité.

Vous pouvez tester le renouvellement de vos certificats avec :

sudo certbot renew --dry-run

Si vous ne voyez pas d'erreurs, la configuration est terminée.

NOTE : En temps voulu, Certbot renouvelera les certificats et redémmarrera apache pour appliquer les changements. En cas d'echec, Let’s Encrypt enverra un message à l'adresse mail spécifiée pour avertir que le certificat va exipirer.

Librement inspiré des documentations suivantes : OVH - Digital Ocean - Symfony 4.0 - Certbot

@babababou
Copy link

Pouah super ton tuto ! Tu me sauves la vie! J'etais un peu en PLS a l'idée de déployer mon site !
Tout marche super ! Sauf pour le https, j'ai une erreur, et impossible de comprendre...

Il me retourne :

AH00526: Syntax error on line 48 of /etc/apache2/sites-enabled/monsite-le-ssl.conf:
SSLCertificateFile: file '/etc/letsencrypt/archive/monsite.fr/fullchain.pem' does not exist or is empty
Action 'configtest' failed.
The Apache error log may have more information.

Pourtant quand je fais un sudo vim /etc/letsencrypt/archive/monsite.fr/fullchain.pem, j'ai bien la clé..
Bref c'est a n'y rien comprendre.. Tu aurais une idée ? Je désespère un peu :)

Merci !

@Bichonifique
Copy link

Merci beaucoup pour cet excellent tutoriel.

@JBlairy
Copy link

JBlairy commented Dec 1, 2018

Whaou !! un grand merci pour ton tuto !!! vraiment parfait , simple et clair !

@jeffphp
Copy link

jeffphp commented Jun 5, 2019

Merci pour ce tutoriel très précis. Pour information, afin que le passage en HTTPS fonctionne, il faut également passer la commande suivante, sinon le serveur ne répond plus :

sudo ufw allow https

@tattali
Copy link
Author

tattali commented Jun 6, 2019

Merci des retours ! J'ai rajouté la commande permettant de libérer le port https

@HamHamFonFon
Copy link

HamHamFonFon commented Oct 3, 2019

Merci énormément pour tout ce tutoriel, il me sera très utile très prochainement :).
Comme sur SF 4 on peut utiliser webpack.encore pour le front, ça serait pas mal d'ajouter les commandes d'installations de NodeJS, NPM, Yarn (exemples depuis ma stack docker, certainement à modifier pour le tuto) :

# NPM & Node
curl -sL https://deb.nodesource.com/setup_9.x | bash
apt-get install -y nodejs npm \
  && update-alternatives --install /usr/bin/node node /usr/bin/nodejs 9
# build tools
apt-get install -y build-essential

# yarn package manager
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
  && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

# bugfix: remove cmdtest to install yarn correctly.
apt-get remove -y cmdtest
apt-get update
apt-get install -y yarn

Par contre, je pense plutôt utiliser Nginx que Apache : faire une partie sur Nginx serait envisageable :) ?

@HamHamFonFon
Copy link

Merci beaucoup :). Je regarderai ça avec grand intérêt.
Plus précisément, c'est vraiment dans les petits détails d'optimisation et de conf Nginx pour avoir un serveur optimisé (et aussi pour générer du cache HTTP) que ma question sur nginx allait.

@FBL-dev
Copy link

FBL-dev commented Nov 21, 2019

Bonjour,

Je vais déployer mon projet symfony 4 utilisant webpack.

Je pense partir sur un vps provenant de OVH.

Combien de RAM ai-je besoin pour un projet symfony 4 ?

Merci

@gsmechat
Copy link

Chapeau bas l'artiste !

@JayViannay
Copy link

C'est vraiment top merci !

@hd26
Copy link

hd26 commented Dec 20, 2021

Enfin un truc qui marche merci Top

@MariannePiquetNowak
Copy link

Je suis tombée complètement au hasard sur ce tuto, ce n'était pas ce que je cherchais de base mais ma curiosité à pris le dessus.
Mais quel régale ! Merci beaucoup pour ce travail incroyable ! C'est top !

@iode13
Copy link

iode13 commented Jul 30, 2023

Toujours le meilleur tuto sur le sujet, merci beaucoup

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment