Table des matières
Configuration type d'un serveur sous Ubuntu
- Configuration pour usage général et scientifique
- Téléchargement : https://ubuntu.com/download/server, dernière version : Ubuntu Server 22.04.3 LTS Jammy Jellyfish, architecture AMD64 (testé 15/09/2023)
- Gravure du fichier iso, ou préparation d'une clé USB via Balena-Etcher (par exemple)
- Versions précédentes :
- Configuration type d'un serveur sous Ubuntu Server 18.04, Bionic Beaver
- Configuration type d'un serveur sous Ubuntu Server 16.04, Xenial Xerus
- références, tutoriels,…
- How to Install Ubuntu Server on VirtualBox 11 Dec 2019, James Hibbard
- https://forum.ubuntu-fr.org/viewtopic.php?id=1990066 Installation Apache Mysql PHP phpmyadmin ⇒ LAMPP (+ vidéo)
- https://blog.sodifrance.fr/installer-une-machine-virtuelle-avec-virtualbox/ : installation d'une VM Ubuntu (serveur LAMP) avec VirtualBox sous Windows, avec processeur i5 et 8 Go RAM
- commandes intéressantes
Installation de VirtualBox sous Linux (Ubuntu)
- Linux + installation via ppa : https://www.virtualbox.org/wiki/Linux_Downloads
- Tutoriels divers :
- 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).
Références :
- http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter3.html#3.1.1 (copier-coller sous PuTTY)
Installation du serveur sous Ubuntu 22.04
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 :
- Ubuntu-22.04.3_server (type Linux et version 64 bit)
- 4096 Mo
- 2 cpu
- Disque dur virtuel (.vdi) 25 Go (dynamiquement alloué)
- 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
- cocher “Install OpenSSH server
- (autres options non utilisées/modifiées)
- 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
Création d'un compte admin de secours
- cat /etc/passwd → donne la liste des utilisateurs existants
- sudo adduser rescue
- (pwd : mdp_rescue)
- sudo usermod -a -G sudo rescue
Serveur LAMP
- Références
- Serveur web - LAMP, acronyme pour Linux, Apache, MySQL|MariaDB, PHP (description globale)
- https://doc.ubuntu-fr.org/apache2 configuration de Apache 2 (serveur web)
- 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/mysql configuration de MySQL
- https://doc.ubuntu-fr.org/mariadb configuration de MariaDB
- https://doc.ubuntu-fr.org/phpmyadmin phpMyAdmin est une interface web en PHP pour administrer à distance les SGBD 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) :
- sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
- Remarques
- php-mcrypt a été enlevé depuis php 7.2 (pour persister, voir ici)
- Serveur LAMP - Créer un/des répertoires de travail + intérêt d'ajouter l'utilisateur au groupe www-data + lien2
- ajouter l'utilisateur vmuser au groupe www-data : sudo usermod -a -G www-data vmuser
- Un CMS sans base de données comme DokuWiki ne nécessite pas l'installation d'un SGBD (MySQL/MariaDB) comme expliqué ci-après !
- redémarrer néanmoins apache2 : sudo systemctl restart apache2
- sudo apt install php-mysql
- installation soit de MySQL, soit de MariaDB (pour l'essentiel, suivre la documentation de MySQL)
- sudo apt install mysql-server
- sudo apt install mariadb-server
- Test local de MySQL :
- sudo mysql
- SHOW DATABASES
- 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 mysql → Puis dans la console MySQL :
- CREATE USER 'nom_utilisateur_choisi'@'localhost' IDENTIFIED BY 'mot_de_passe_solide';
- GRANT ALL PRIVILEGES ON *.* TO 'nom_utilisateur_choisi'@'localhost' WITH GRANT OPTION;
- FLUSH PRIVILEGES;
- QUIT;
- En remplaçant évidemment nom_utilisateur_choisi et mot_de_passe_solide dans ces requêtes
- sudo service apache2 restart ou sudo systemctl restart apache2
- sudo service mysql restart ou sudo systemctl restart mysql
Adminer
- Adminer remplace PhpMyAdmin
- références adminer plus anciennes :
- Installation :
- sudo apt-get install adminer ou mieux, utiliser la version la plus récente sur le site :
sudo wget "http://www.adminer.org/latest.php" -O /var/www/html/adminer.php
- Access Adminer at the following address : http://ip_adress/adminer.php
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
- phpMyAdmin (déconseillé pour un site en production sans mesures de sécurité additionnelles comme .htaccess,…) + références phpmyadmin/bionic
- sudo apt install phpmyadmin
- outil de configuration
- serveur web : apache2
- accepter la création d'une DB pour phpmyadmin (refuser autrement)
- Faut-il configurer la DB avec dbconfig-common ? → <Yes>
- mot de passe de connexion MySQL pour phpmyadmin : phpmyadmin_mdp (CHOISISSEZ UN MOT DE PASSE SÛR)
- Tester http://ip_adress/phpmyadmin
- utilisateur : phpmyadmin - mdp : phpmyadmin_mdp
- superutilisateur mysql/mariadb : 'nom_utilisateur_choisi' - mdp : 'mot_de_passe_solide'
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
Configuration de Apache2
- installer le module “rewrite” http://doc.ubuntu-fr.org/apache2
- sudo a2enmod rewrite
- sudo systemctl restart apache2
non fait :
- Paquets :
- (sudo apt-get install php-pear php-dev) → non fait
- (sudo apt-get install unison) → non fait
- (sudo apt-get install texlive-latex-base imagemagick ghostscript) → non fait
- (sudo apt-get install graphviz graphviz-doc) → non fait
- (sudo apt-get install gnuplot) → non fait (nécessaire pour l'extension dataplot)
- autres paquets
- cairo ??
- configuration ssl (https, certificats,…)
https://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl
Migration, mise à jour du serveur...
- Régulièrement :
- sudo apt-get update
- sudo apt-get upgrade
- Automatisation d'upgrade de sécurité (et autres) : unattended-upgrade
- Mise à niveau de l'OS (par exemple Ubuntu server 20.04.1):
- faire un backup du serveur ou de la VM (snapshot)
- sudo apt-get update
- sudo apt-get upgrade
- sudo reboot
- Installer l'outil Ubuntu d'update : sudo apt install update-manager-core
- sudo do-release-upgrade
- sudo reboot
- vérifier la mise à niveau. Revenir en arrière si problème, refaire une sauvegarde/snapshot
- Références :
Installation et gestion de logiciels sur un serveur LAMP
-
- Wordpress
- limesurvey
- …