Prérequis
- un VPS sur Debian 10
- un Nom de domaine pointé sur le VPS
Connectez vous sur votre VPS !
Installation de Nginx
- Mettre le système à jour :
sudo apt update
- Installation de Nginx :
sudo apt install nginx
systemctl status nginx
- Sortie de la console :
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-07-03 12:52:54 UTC; 4min 23s ago
Docs: man:nginx(8)
Main PID: 3942 (nginx)
Tasks: 3 (limit: 4719)
Memory: 6.1M
CGroup: /system.slice/nginx.service
├─3942 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─3943 nginx: worker process
└─3944 nginx: worker process
Installation de PHP et de ses packages
- Préparation de l'installation de PHP 7.4 :
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
-
Vérifions si cela a fonctionné :
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
-
Mettre à jour le système pour pouvoir installer php 7.4 sur debian 10 :
sudo apt update
-
Passons à l'installation :
sudo apt install php7.4-{common,mysql,xml,xmlrpc,curl,gd,imagick,cli,dev,imap,mbstring,opcache,soap,zip,intl,bcmath} -y
-
Finalisation de l'installation et vérification de la version :
sudo apt-get install php7.4-fpm
php -v
sudo systemctl status php7.4-fpm
Installation de MYSQL
-
Téléchargement de l’installeur de MYSQL :
wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
-
Installation de MySQL :
sudo apt install ./mysql-apt-config_0.8.13-1_all.deb
Une page sur fond bleu s'ouvre appuyer sur "entrée" pour modifier si besoin la version de MYSQL et ensuite grâce aux flèches se diriger sur "Ok" Revalidation de la page précédente.
- Mise à jour du package de MySQL :
sudo apt update
sudo apt install mysql-server
-
Entrer un mot de passe (sécurisé) pour l’utilisateur root de votre serveur.
-
Pour vérifier si l'installation s'est bien déroulée :
sudo systemctl status mysql
-
Mise en place de la sécurité sur MySQL :
sudo mysql_secure_installation
- MySQL va vous demander si vous voulez mettre une vérification de la sécurité des mots de passe sur les nouveaux utilisateurs.
- Si vous répondez oui il va vous demander de quel type :
- Low - Medium - High 9. Puis de redéfinir le mot de passe de l’utilisateur root 10. Puis enfin si vous voulez enlever les users anonymes 11. Désactiver la connection root en remote 12. Supprimer les bases de données test
-
Maintenant vous pouvez vous connectez à MySQL :
sudo mysql -u root -p
Installation de Git
-
Mise à jour du système :
sudo apt update
-
Installation de git :
sudo apt install git
-
Vérification de l'installation :
git --version
Installation de Composer
-
Mise à jour du système :
sudo apt update
-
Installation des packages pour le téléchargement de Composer :
sudo apt install curl php-cli php-mbstring git unzip
-
Se mettre à la racine :
cd
-
Téléchargement de composer :
curl -sS https://getcomposer.org/installer -o composer-setup.php
-
Vérification du fichier téléchargé grâce ce a hash :
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
-
La dernière ligne de votre terminal doit être :
Installer verified
-
Installation de composer maintenant que tout est ok :
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
-
Vérification de l'installation :
composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.8.6 2019-06-11 15:03:05
et les différentes commandes s’affiche.
Installation de NodeJs
-
Mise à jour du système :
sudo apt update
-
Installation de NodeJs
sudo apt install nodejs
-
On vérifie la version :
nodejs --version
Installation de Yarn
-
Téléchargement de Yarn :
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
-
Installation de Yarn :
sudo apt update
sudo apt install yarn
-
Vérification de l'installation :
yarn --version
Maintenant que tout est installé passons à la configuration
Récupérer le nom du dépôt Git
-
Allons dans le dossier :
cd /var/www
-
Supprimer le dossier html :
sudo rm -rf html/
- Clonons notre projet :
sudo git clone en https de votre projet
-
Vérification de la branch (si besoin) :
cd nomDuProjet/
git status
sudo git checkout master
sudo git pull origin master
Configurer Nginx avec le ndd et la configuration Nginx X Debian
-
Aller dans les configurations nginx
cd /etc/nginx/sites-available
-
Nommons le fichier comme notre projet :
sudo nano nomdemonprojet
-
Voici un fichier de config type pour symfony :
Lien pour le fichier type : ici
Remplacer monnomdedomaine et votre nomduprojet par vos informations correspondantes
-
Création d’un lien symbolique pour le bon fonctionnement de nginx :
sudo ln -s /etc/nginx/sites-available/NomDuProjet /etc/nginx/sites-enabled/
-
Retournons dans notre projet :
cd /var/www/nomduprojet/
-
Création d’un fichier .env en local :
sudo cp .env .env.local
Composer prod
sudo composer install
php bin/console d:d:c
php bin/console d:m:m
-
Lancer composer
sudo composer install
-
Modifions les lignes qui nous intéressent :
sudo nano .env.local
APP_ENV=dev --> APP_ENV=prod
-
Optimisation de composer grâce à la commande
sudo composer install --no-dev --optimize-autoloader
Et configurer la ligne de la base de donnée et ajouter vos variables d’environnement si vous en avez mis
Donner les droits à votre fichier www/
cd /var/
sudo chown www-data: -R www/
Yarn encore prod
-
Installation des modules js :
sudo yarn install
-
Passage du build en mode prod :
sudo yarn encore prod
Maintenant que tout est installer et setup redémarrer nginx pour qu’il prenne en compte les modifications :
sudo systemctl restart nginx
/!\ Bravo, le site est en ligne :) ! /!\
Mais avant de te réjouir, il faut passer ton site sur HTTPS ce qui fera quand même plus professionnel.
Installons CertBot :
-
Remettons-nous à la racine du serveur :
cd
-
Rendez-vous sur :
https://certbot.eff.org/
-
Choisir le software qui est Nginx et Debian 10 et après vous suivez tout simplement la méthode par défaut
-
Suivre les étapes affichées sur votre terminal
-
Redémarrer nginx pour prendre en compte les nouvelles modifications
sudo systemctl reload nginx
Bravo votre site est maintenant sous certificat HTTPS !
Points sécurité du VPS
La connexion est maintenant sécurisé mais si vous le souhaitez et c’est conseillé il faut sécuriser le serveur des ddos ou tentative de connexion sur votre serveur Vous pouvez installer Fail2ban, iptables et changer le port de connexion de votre serveur SSH.
Nighter
Merci pour ce superbe tutoriel !