Table des matières
Configuration type d'un serveur sous Ubuntu 16.04 Xenial Xerus
- 09/07/2020 Ubuntu server 16.04.6 Xenial Xerus (Long Term Support) : https://ftp.belnet.be/ubuntu-releases/
- 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)
Installation du serveur sous Ubuntu 16.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 :
- Ubuntu-16.04_server (type Linux et version 64 bit)
- 1024 Mo
- Disque dur virtuel (.vdi) 10 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)
- 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
- Sélection de logiciels
- LAMP server
- Standard system utilities
- OpenSSH server
- mysql
- nouveau mot de passe du superutilisateur mySQL
- Fin d'installation et redémarrage du serveur (enlever le CD d'installation virtuel).
- login
- 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 upgrade
- sudo apt-get update
- 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
- 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
- test du serveur apache : http://ip_adress (serveur de pages web statiques)
- sudo apt install php libapache2-mod-php
- 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 Bionic (Ubuntu 18.04) ici : /etc/php/7.2/apache2/php.ini
- 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
- Adminer remplace phpmyadmin dans la version 19.10. Il semblerait qu'il y aura un retour à phpmyadmin avec la version 20.04. Poursuivre l'utilisation de phpmyadmin semble donc pertinent, en respectant le nouveau mode d'identification du root de MySQL en sudo
- 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 !
- 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
- 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'
Adminer(pour mémoire, remplacement possible de phpMyAdmin) :sudo apt-get install adminerou 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
- références adminer :
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
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
- 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 ??
Migration, mise à jour du serveur...
- Régulièrement :
- sudo apt-get update
- sudo apt-get upgrade
- Mise à niveau de l'OS (par exemple Ubuntu server 20.04.1):
- Références :
Installation et gestion de logiciels sur un serveur LAMP
-
- Wordpress
- …