Configuration type d'un serveur sous Ubuntu
Adaptation en cours vers la version 22.04 !!
Configuration pour usage général et scientifique
-
Gravure du fichier iso, ou préparation d'une clé USB via Balena-Etcher (par exemple)
Versions précédentes :
références, tutoriels,…
commandes intéressantes
Un serveur peut-être installé de différentes manières, notamment sur un ordinateur physique, ou sur un ordinateur virtuel. Cette deuxième manière de faire est particulièrement pratique pour se familiariser avec le fonctionnement d'un serveur, effectuer des tests, …, raison pour laquelle on explique ci-après comment travailler avec le logiciel de virtualisation Virtual Box.
Installation de VirtualBox sous Linux (Ubuntu)
VirtualBox peut tout aussi bien être installé sur un système “hôte” de type Windows ou Mac
OS. Et finalement, la gestion de la machine virtuelle créée (“guest”) s'effectue le plus souvent à distance via un terminal permettant la connexion en SSH (terminal intégré à GNU/Linux ou Mac
OS, client PuTTY sous Windows). La gestion peut alors s'effectuer sur le réseau local, ou via Internet, éventuellement par l'utilisation d'un VPN si le serveur n'est pas accessible directement sur le réseau public.
Installation testée en septembre 2023, via les commandes suivantes, adaptées de différentes sources :
indiquez le nom de la version Ubuntu lors de l'ajout de la source (repository)
remplacez le numéro 7.0 par une nouvelle version si existante sur virtualbox.org
remplacez la variable $USER par votre nom d'utilisateur Linux
ext pack : remplacer 7.0.10 en fonction de la version indiquée
ici
sudo apt update && sudo apt upgrade -y && sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl
sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r`
Pour Ubuntu 20.04 :
echo deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox.gpg] http://download.virtualbox.org/virtualbox/debian focal contrib | sudo tee /etc/apt/sources.list.d/virtualbox.list
curl -fSsL https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor | sudo tee /usr/share/keyrings/virtualbox.gpg > /dev/null
sudo apt-get update
sudo apt-get install virtualbox-7.0
sudo usermod -G vboxusers -a $USER
Pour le pack d'extension, il suffit de le télécharger, et de l'installer via le menu de virtualbox.
Mise à jour de VirtualBox
Si les sources sont identiques, et qu'il s'agit d'une mise à jour mineure, effectuer simplement :
sudo apt upgrade
Sinon, pour mettre à jour, simplement désinstaller, puis redéfinir des sources actualisées, puis réinstaller : Exécuter les commandes suivantes pour la désinstallation :
sudo apt remove --purge virtualbox virtualbox-*
sudo apt autoremove
Redémarrer le système (sudo reboot, systemctl reboot). Définir ensuite les nouvelles sources si la version de Ubuntu est différente (mise à jour), puis :
sudo apt update
Ensuite reprendre l'installation. Lors du démarrage de VirtualBox, il est très probable qu'une nouvelle version du pack d'extension sera proposée. Suivre simplement les instructions, et chaîner cela à l'exécution de VirtualBox plutôt que de sauvegarder le pack d'extension.
Installation de VirtualBox sous Windows
Génération de clés SSH
L'authentification par un système de clés publique/privée vous sera très utile pour gérer vos serveurs. Générez ces clés avec la commande suivante :
ssh-keygen -t rsa
Les clés publiques et privées sont stockées dans votre répertoire ~/.ssh. Les répertoires cachés (hidden) peuvent être visualisés dans votre gestionnaire de fichier (Nautilus, Nemo,…) en tapant ctrl-h. La clés privées ne doit JAMAIS être communiquée. Votre clé publique devra être placée dans le fichier ~/.ssh/authorized_keys des serveurs auxquels vous souhaitez accéder via la commande ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip_adress_or_dns_server (voir plus loin).
Sous Windows, utiliser :
PuTTY pour communiquer en ligne de commande (client SSH),
-
-
Références :
Installation du serveur sous Ubuntu 22.04
VM VirtualBox testée sur un PC sous Linux avec processeur i7. Le fonctionnement devrait être aussi OK sous Windows ou mac, et avec un processeur i5.
Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server.
-
Lancement de VirtuaBox et création d'une nouvelle machine virtuelle (VM). Par exemple :
Ajustement (menu configuration) de quelques paramètres de la VM :
stockage : renseigner le fichier iso dans le lecteur CD/DVD virtuel
réseau : accès par pont (si problème avec wlan0, tester eth0)
Démarrer la VM. Le live-CD virtuel de Ubuntu propose le choix de la langue (prendre français) et la touche F3 permet de choisir le clavier (par exemple belge). Sélectionner “Installer Ubuntu Server”.
Select a langage (choisir Français/French)
(“installer update available” → Update to the new installer) → option lors du test avec la 19.10
Configurer le clavier (disposition belge/Belgian ou autre…) et variante éventuelle
Connections réseau → accepter la proposition détectée
Configurer le proxy → si c'est le cas, fournir l'adresse. Sinon “Terminé”
Configure Ubuntu archive mirror → modifier/indiquer si utile
Configuration du système de fichier → “Utiliser un disque entier” (option standard)
Choisir le disque où installer → disque virtuel proposé…
sommaire du système de fichier → “Terminé” + “Confirmer l'action” (à ce moment les données éventuellement existantes du disque virtuelle seront perdues
Configuration du profil :
nom complet de l'utilisateur (ex : Virtual User)
nom du serveur (ex : vmix)
nom d'utilisateur (ex : vmuser)
mot de passe (ex : vmuser_mdp) (CHOISISSEZ UN MOT DE PASSE SÛR)
confirmer le mot de passe
SSH Setup
Featured Server Snaps → “Terminé” sans en choisir, sauf en connaissance de cause
Fin d'installation et redémarrage du serveur (enlever ultérieurement le CD d'installation virtuel).
Le premier redémarrage permet de vérifier le login (user/mdp) et de relever l'IP du serveur par la commande “ip a”
mises à jour :
sudo apt-get update
sudo apt-get upgrade
redémarrage : sudo reboot
arrêt : sudo halt
sauvegarde de la VM par exportation
Connexion à partir d'une autre machine : ssh vmuser@ip_adress (remplacer ip_adress par la valeur relevée)
Clé SSH
générer sur le PC connecté une paire de clés privée/publique si non disponible (ex : ssh-keygen -o -b 4096 -t rsa)
copier la clé publique sur le serveur
ssh-copy-id -i ~/.ssh/id_rsa.pub vmuser@ip_adress
tester la connexion qui doit fonctionner sans mdp : ssh vmuser@ip_adress
Problème réseau : pour forcer le dhcp, utiliser les commandes “sudo ip link set dev eth0 down” et “sudo dhclient eth0”
cf. ici. Cette action doit être refaite chaque fois que l'IP n'est pas attribuée.
Création d'un compte admin de secours
Serveur LAMP
Références
-
-
Serveur de base de données SGBD : soit MySQL, soit MariaDB, version alternative, sous licence
GPL et 100% compatible avec MySQL
-
https://doc.ubuntu-fr.org/msmtp envoi d'emails par SMTP : solution idéale si vous avez besoin que votre serveur vous envoie les courriels de notifications sans avoir à mettre en place une solution lourde.
sudo apt install apache2
sudo apt install lynx → test dans ce navigateur texte dans une console sur le serveur
http://127.0.0.1
test du serveur apache à partir d'un autre PC :
http://ip_adress (serveur de pages web statiques)
sudo apt install php libapache2-mod-php php-cli
sudo nano /var/www/html/phpinfo.php et ajouter <?php phpinfo(); ?> comme seule ligne à ce fichier. Sauver et test dans un navigateur :
http://ip_adress/phpinfo.php
La configuration de PHP se fait via un fichier php.ini localisé sous Jammy Jellyfish 22.04 ici : /etc/php/8.1/apache2/php.ini (7.2 pour Bionic Ubuntu 18.04)
Paquets PHP souvent utiles (des modules additionnels pourront être installés en fonction des logiciels installés sur le serveur ainsi que leurs extensions/plugins) :
Remarques
php-mcrypt a été enlevé depuis php 7.2 (pour persister, voir
ici)
-
sudo apt install php-mysql
installation soit de MySQL, soit de MariaDB (pour l'essentiel, suivre la documentation de MySQL)
Test local de MySQL :
Remarque : mysql_secure_installation (renseigné dans certains tutoriels) ne doit pas être utilisé
sudo service apache2 restart (restart Apache) ou sudo systemctl restart apache2
Pour avoir un accès global aux bases de données depuis un même compte, la solution conseillée est de créer un nouvel utilisateur et de lui attribuer tous les privilèges :
sudo service apache2 restart ou sudo systemctl restart apache2
sudo service mysql restart ou sudo systemctl restart mysql
Adminer
PhpMyAdmin (obsolete sous 20.04, ok en 18.04)
Conservé pour mémoire et usage sous Ubuntu 18.04
Poursuivre l'utilisation de phpmyadmin est possible, en respectant le nouveau mode d'identification du root de MySQL en sudo
Compléments d'installation du serveur
Envoi d'emails (par exemple par DokuWiki)
-
-
sudo apt install msmtp msmtp-mta
Configuration pour l'envoi de courriels au niveau du système : sudo nano /etc/msmtprc
vérification (doc.ubuntu-fr) ls -la /usr/sbin/sendmail
test : echo 'message' | msmtp user@domain.com
problème
Effacer le nom d'utilisateur et le mot de passe si le serveur est diffusé, et/ou rendre invalide le compte par défaut de msmtp pour éviter des envois erronés vers le serveur d'email !!
Configuration de Apache2
non fait :
Migration, mise à jour du serveur...
Installation et gestion de logiciels sur un serveur LAMP
Virtualisation et containers sur le serveur