Linux
Héberger un site web sur un VPS (avec Nginx, PHP, MySQL, PHPMyAdmin, Ubuntu server 20.04)

https://www.hetzner.com/
https://accounts.hetzner.com/login
Si vous voulez m'aider et gagner des crédits merci d'utiliser mon referal Hetzner lors de la création de votre compte : https://hetzner.cloud/?ref=ZDGa0z2tT2AL
Vous gagnerez 20 € de crédit sur le nouveau compte. Et si vous commander des serveurs, dès que vous payez au moins 10 €, je reçevrez 10 € de crédit.
Prérequis :
- avoir un compte Hetzner
- avoir commandé un VPS (la taille, puissance, etc. du VPS dépend de votre besoin. Pour un site web même un peu complexe le VPS CX11 à 2,99 €/mois suffit amplement !)
- avoir reçu le mot de passe root du VPS lors de sa création
- récupérer l'IP v4 de votre VPS
- se connecter en SSH (ssh root@IP_VPS), en root sur le VPS (sous Windows utilisez Putty, sous Linux, utiliser directement votre terminal).
NOTE : j'utilise Hetzner pour ce tuto. Il est évident que vous pouvez utiliser n'importe quel autre fournisseur comme par exemple OVH, Scaleway, Online, etc. Cela fonctionnera de la meme manière ! :)
1ère connexion au VPS
Ajouter un utilisateur :
On donne les droits sudo à l'utilisateur :
Changer le port de SSH pour plus de sécurité et de tranquilité :
Port 9521
(Ici, le N° de port est donné à titre indicatif. Vous pourriez tout aussi bien utiliser 9288 ou 10255... Mais vérifiez que le port que vous souhaitez choisir n'est pas un port déjà attribué à une application ou un service. Choisissez un port "haut" (c'est à dire par exemple 7000 et +)
Mettre à jour le VPS, faire un peu de nettoyage et installer des applis utiles... et rebooter dans la foulée (tout sur une seule ligne) :
PS : screenfetch, c'est pour le fun :D
Le VPS va rebooter et couper la connexion. A la reconnexion, on utilisera le nom du nouvel utilisateur + son mot de passe. On utilisera sudo pour les commandes qui nécessitent les droits super-utilisateur. Le mot de passe qui sera alors demandé sera le même que notre nouvel utilisateur.
On se reconnecte en SSH au VPS, avec le nouveau port (celui que vous avez choisis) :
- Sous Windows avec Putty, vous ajouterez 9521 dans la case port
- Sous Linux, dans le terminal : ssh -p 9521 MON_USER@IP_VPS
On installe nginx, mariadb-server, PHP (7.4) :
On configure le virtualhost par défaut pour prendre en compte PHP :
sudo nano default
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
../..
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
On teste la config de Nginx :
Si tout est ok (sans erreur), on relance Nginx :
On se rend dans le répertoire du virtualhost par défaut :
On va créer un fichier info.php pour vérifier que PHP fonctionne :
phpinfo();
?>
On se rend sur cette page info.php grâce au navigateur :
Vous devriez voir la page d'info de PHP...
On configure Mariadb (MySQL) :
Set a root password? [Y/n] y
On entre le mot de passe root de MySQL :
ATTENTION : le mot de passe root de MySQL n'a RIEN A VOIR avec le mot de passe root de Linux !
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
On installe phpmyadmin :
Quand vous arrivez sur l'écran "Configuring phpmyadmin - Please the webserver that should be automaticaly configured to run phpMyAdmin", ne cochez RIEN (ni apache2, ni lighttpd)... puisqu'on utilise Nginx !
Puis à l'écran suivant : "Configure database for phpmyadmin with dbconfig-common?" --> répondez YES
Puis à l'écran suivant : "MySQL application password for phpmyadmin" : vous pouvez ne rien mettre et simplement sélectionner OK (ca créera un mot de passe automatiquement. Vous n'aurez pas besoin de ce mot d epasse par la suite de toutes façons...)
Puis on configure phpMyAdmin :
$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/
Dernière confgiuration de MySQL pour permettre avec phpMyAdmin de se connecter avec l'utilisateur root :
Puis :
Dans ce fichier, ecrivez le mot de passe root MySQL aux lignes 5 et 10 (password = MOT_DE_PASSE)
On redémarre enfin mariadb :
ET VOILA : désormais, vous pouvez vous connecter à phpmyadmin à l'adresse : http://IP_VPS/phpmyadmin
Si vous avez un nom de domaine, vous pouvez le faire pointer sur l'adresse IP de votre VPS. Il va alors falloir créer un virtualhost Nginx pour notre site qui sera joignable sur www.MON_DOMAINE.COM ou MON_DOMAINE.com.
A SUIVRE ...
Vous pouvez aussi compléter l'installation grace au différents tutos déjà présents sur citizenz.info :
- LetsEncrypt (certbot) et Nginx : config rapide sous Ubuntu
- Installer facilement Pure-FTPd sur une Debian
- serveur ftp : pure-ftpd et ports passifs