Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
floss:config_ubuntu_server [2020/01/08 11:47] – villersd | floss:config_ubuntu_server [2021/06/04 15:00] – [Installation et gestion de logiciels sur un serveur LAMP] villersd |
---|
====== Configuration type d'un serveur sous Ubuntu ====== | ====== Configuration type d'un serveur sous Ubuntu ====== |
* 06/01/2020 Ubuntu server 19.10 Eoan Ermine : [[http://releases.ubuntu.com/19.10/]] : [[http://releases.ubuntu.com/19.10/ubuntu-19.10-live-server-amd64.iso|64-bit PC (AMD64) server install image]] (utile pour l'intérêt des nouveautés, avec possibilité de mise à jour proche vers la 20.04 LTS) | * Configuration pour usage général et scientifique |
* 07/01/2020 Ubuntu server 18.04 Bionic Beaver (**Long Term Support**) : [[https://ubuntu.com/download/server/thank-you?version=18.04.3&architecture=amd64]] | * Téléchargement : [[https://ubuntu.com/download/server]], dernière version : Ubuntu Server 20.04.2 LTS Focal Fossa, architecture AMD64 (testé 19/05/2021) |
| * Gravure du fichier iso, ou préparation d'une clé USB via Balena-Etcher (par exemple) |
| * Versions précédentes : |
| * [[config_ubuntu_server-18.04|Configuration type d'un serveur sous Ubuntu Server 18.04]], Bionic Beaver |
| * [[config_ubuntu_server-16.04|Configuration type d'un serveur sous Ubuntu Server 16.04]], Xenial Xerus |
* références, tutoriels,... | * références, tutoriels,... |
| * [[https://www.howtoforge.com/tutorial/ubuntu-lts-minimal-server/|How to Install Ubuntu 20.04 LTS (Focal Fossa) Server]] |
* [[https://hibbard.eu/install-ubuntu-virtual-box/|How to Install Ubuntu Server on VirtualBox]] 11 Dec 2019, James Hibbard | * [[https://hibbard.eu/install-ubuntu-virtual-box/|How to Install Ubuntu Server on VirtualBox]] 11 Dec 2019, James Hibbard |
* [[https://doc.ubuntu-fr.org/serveur]] | * [[https://doc.ubuntu-fr.org/serveur]] |
| |
<note tip> | <note tip> |
Installation testée en janvier 2020, via les commandes suivantes, adaptées de différentes sources : | Installation testée en juillet 2020, 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) | * indiquez le nom de la version Ubuntu lors de l'ajout de la source (repository) |
* remplacez le numéro 6.1 par une nouvelle version si existante sur virtualbox.org | * remplacez le numéro 6.1 par une nouvelle version si existante sur virtualbox.org |
* remplacez la variable %%$%%USER par votre nom d'utilisateur Linux | * remplacez la variable %%$%%USER par votre nom d'utilisateur Linux |
* ext pack : remplacer 6.0.14 en fonction de la version indiquée [[https://www.virtualbox.org/wiki/Downloads|ici]] | * ext pack : remplacer 6.1.12 en fonction de la version indiquée [[https://www.virtualbox.org/wiki/Downloads|ici]] |
</note> | </note> |
<code> | <code> |
sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r` | sudo apt-get install build-essential dkms linux-source linux-headers-`uname -r` |
sudo add-apt-repository "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian bionic contrib" | sudo add-apt-repository "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian focal contrib" |
| |
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - | wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - |
sudo usermod -G vboxusers -a $USER | sudo usermod -G vboxusers -a $USER |
| |
wget https://download.virtualbox.org/virtualbox/6.1.0/Oracle_VM_VirtualBox_Extension_Pack-6.1.0.vbox-extpack | wget https://download.virtualbox.org/virtualbox/6.1.12/Oracle_VM_VirtualBox_Extension_Pack-6.1.12.vbox-extpack |
| |
ou : | ou : |
| |
==== Mise à jour de VirtualBox ==== | ==== Mise à jour de VirtualBox ==== |
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 : | 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 remove --purge virtualbox virtualbox-* |
sudo apt autoremove | sudo apt autoremove |
sudo apt update | sudo apt update |
| |
Ensuite reprendre l'installation. | 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. |
| |
===== Génération de clés SSH ===== | ===== Génération de clés SSH ===== |
L'[[http://doc.ubuntu-fr.org/ssh#authentification_par_un_systeme_de_cles_publiqueprivee|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 : | L'[[http://doc.ubuntu-fr.org/ssh#authentification_par_un_systeme_de_cles_publiqueprivee|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 : |
<code>ssh-keygen -t rsa</code> | <code>ssh-keygen -t rsa</code> |
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) 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 (voir plus loin). | 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). |
| |
<note tip>Sous Windows, utiliser : | <note tip>Sous Windows, utiliser : |
</note> | </note> |
| |
===== Installation du serveur sous Ubuntu 18.04 ===== | ===== Installation du serveur sous Ubuntu 20.04 ===== |
<note important>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.</note> | <note important>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.</note> |
| |
Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server. Un test préalable avec la version 19.10 aboutit à des difficultés, donc à une balance coût/bénéfice peu intéressante. | Installation standard de Linux, Apache, MySQL, Php + outils. Base choisie : Ubuntu server. |
* [[http://www.ubuntu.com/download/server|téléchargement de Ubuntu server]] | * [[http://www.ubuntu.com/download/server|téléchargement de Ubuntu server]] |
* Lancement de VirtuaBox et création d'une nouvelle machine virtuelle (VM). Par exemple : | * Lancement de VirtuaBox et création d'une nouvelle machine virtuelle (VM). Par exemple : |
* Ubuntu-18.04_server (type Linux et version 64 bit) | * Ubuntu-20.04.2_server (type Linux et version 64 bit) |
* 2048 Mo | * 8192 Mo |
* Disque dur virtuel (.vdi) 10 Go (dynamiquement alloué) | * Disque dur virtuel (.vdi) 10 Go (dynamiquement alloué) |
* Ajustement (menu configuration) de quelques paramètres de la VM : | * Ajustement (menu configuration) de quelques paramètres de la VM : |
* [[https://doc.ubuntu-fr.org/phpmyadmin]] phpMyAdmin est une interface web en PHP pour administrer à distance les SGBD MySQL | * [[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. | * [[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 apache2** |
* test du serveur apache : [[http://ip_adress]] (serveur de pages web statiques) | * test du serveur apache : [[http://ip_adress]] (serveur de pages web statiques) |
* sudo apt install php libapache2-mod-php | * **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]] | * **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 | * La configuration de PHP se fait via un fichier php.ini localisé sous Focal Fossa 20.04 ici : /etc/php/7.4/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) : | * 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 | * **sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip** |
* Remarques | * Remarques |
* php-mcrypt a été enlevé depuis php 7.2 | * **php-mcrypt a été enlevé depuis php 7.2** (pour persister, voir [[https://computingforgeeks.com/install-php-mcrypt-extension-on-ubuntu/|ici]]) |
* [[https://www.adminer.org/|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 | * [[https://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail|Serveur LAMP - Créer un/des répertoires de travail]] + intérêt d'ajouter l'utilisateur au groupe www-data + [[https://www.cyberciti.biz/faq/ubuntu-add-user-to-group-www-data/|lien2]] |
* **À ce stade de l'installation, un CMS sans base de données comme DokuWiki peut déjà être installé et fonctionner !** | * [[https://askubuntu.com/questions/1115979/apache-permissions-to-allow-both-user-and-web-server-to-edit-var-www]] |
| * 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 | * sudo apt install php-mysql |
* installation soit de MySQL, soit de MariaDB (pour l'essentiel, suivre la documentation de MySQL) | * installation soit de MySQL, soit de MariaDB (pour l'essentiel, suivre la documentation de MySQL) |
* sudo apt install mysql-server | * sudo apt install mysql-server |
* sudo apt install mariadb-server | * **sudo apt install mariadb-server** |
* Test local de MySQL : | * Test local de MySQL : |
* sudo mysql | * sudo mysql |
* sudo service apache2 restart **ou** sudo systemctl restart apache2 | * sudo service apache2 restart **ou** sudo systemctl restart apache2 |
* sudo service mysql restart **ou** sudo systemctl restart mysql | * sudo service mysql restart **ou** sudo systemctl restart mysql |
| |
| ==== Adminer ==== |
| |
| * [[https://www.adminer.org/|Adminer]] remplace PhpMyAdmin |
| * [[https://kinsta.com/fr/blog/adminer/|Comment utiliser Adminer pour gérer facilement les bases de données avec un seul fichier PHP]] |
| * [[https://linuxconfig.org/using-adminer-to-manage-your-databases|Using Adminer to Manage your Databases - LinuxConfig.org]] |
| * [[https://idroot.us/install-adminer-ubuntu-20-04/|How To Install Adminer on Ubuntu 20.04 LTS - idroot]] |
| * [[https://www.linuxhowto.net/how-to-install-adminer-on-ubuntu-20-04-lts/|How to install Adminer on Ubuntu 20.04 LTS – linuxhowto.net]] |
| * références adminer plus anciennes : |
| * [[http://www.ubuntuboss.com/how-to-install-adminer-on-ubuntu-18-04/]] |
| * [[https://websiteforstudents.com/manage-mariadb-mysql-databases-with-adminer-and-apache2/]] |
| * [[https://idroot.us/install-adminer-ubuntu-18-04/]] |
| |
| * 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 ==== |
| <note warning> |
| * 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 |
| </note> |
| |
* [[https://doc.ubuntu-fr.org/phpmyadmin|phpMyAdmin]] (**déconseillé pour un site en production sans mesures de sécurité additionnelles comme .htaccess,...**) + références phpmyadmin/bionic | * [[https://doc.ubuntu-fr.org/phpmyadmin|phpMyAdmin]] (**déconseillé pour un site en production sans mesures de sécurité additionnelles comme .htaccess,...**) + références phpmyadmin/bionic |
* [[https://www.tecmint.com/install-lamp-with-phpmyadmin-in-ubuntu-18-04/|How to Install LAMP Stack with PhpMyAdmin in Ubuntu 18.04]] | * [[https://www.tecmint.com/install-lamp-with-phpmyadmin-in-ubuntu-18-04/|How to Install LAMP Stack with PhpMyAdmin in Ubuntu 18.04]] |
* utilisateur : phpmyadmin - mdp : phpmyadmin_mdp | * utilisateur : phpmyadmin - mdp : phpmyadmin_mdp |
* superutilisateur mysql/mariadb : 'nom_utilisateur_choisi' - mdp : 'mot_de_passe_solide' | * superutilisateur mysql/mariadb : 'nom_utilisateur_choisi' - mdp : 'mot_de_passe_solide' |
* <del>Adminer</del> (pour mémoire, remplacement possible de phpMyAdmin) : | |
* <del>sudo apt-get install adminer</del> **ou** utiliser la version la plus récente sur le site : | |
* <del>sudo wget "http://www.adminer.org/latest.php" -O /var/www/html/adminer.php</del> | |
* Access Adminer at the following address : [[http://ip_adress/adminer.php]] | |
* références adminer : | |
* [[http://www.ubuntuboss.com/how-to-install-adminer-on-ubuntu-18-04/]] | |
* [[https://websiteforstudents.com/manage-mariadb-mysql-databases-with-adminer-and-apache2/]] | |
* [[https://idroot.us/install-adminer-ubuntu-18-04/]] | |
* [[https://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail|Serveur LAMP - Créer un/des répertoires de travail]] + intérêt d'ajouter l'utilisateur au groupe www-data + [[https://www.cyberciti.biz/faq/ubuntu-add-user-to-group-www-data/|lien2]] | |
* [[https://askubuntu.com/questions/1115979/apache-permissions-to-allow-both-user-and-web-server-to-edit-var-www]] | |
* ajouter l'utilisateur vmuser au groupe www-data : sudo usermod -a -G www-data vmuser | |
| |
| |
| |
| ==== Compléments d'installation du serveur ==== |
| |
| === Envoi d'emails (par exemple par DokuWiki) === |
| * [[https://doc.ubuntu-fr.org/lamp#envoi_de_courriel]] |
| * [[https://doc.ubuntu-fr.org/msmtp]] |
| * 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 |
| |
| <note tip>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 !! </note> |
| |
| === Configuration de Apache2 === |
| * installer le module "rewrite" [[http://doc.ubuntu-fr.org/apache2]] |
| * sudo a2enmod rewrite |
| * sudo systemctl restart apache2 |
| |
| === non fait : === |
| |
* Paquets : | * Paquets : |
* (sudo apt-get install texlive-latex-base imagemagick ghostscript) → 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 graphviz graphviz-doc) → non fait |
* https://doc.ubuntu-fr.org/lamp#envoi_de_courriel ?? | * (sudo apt-get install gnuplot) → non fait (nécessaire pour l'extension dataplot) |
* configuration ssl ?? | * autres paquets |
| * cairo ?? |
| * configuration ssl (https, certificats,...) |
| [[https://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl]] |
| |
| |
| ==== Migration, mise à jour du serveur... ==== |
| |
| <note important> |
| Message d'erreur sur sudo do-release-update "There is no development version of an LTS available" → attendre (The -d switch is necessary to upgrade from Ubuntu 18.04 LTS as upgrades have not yet been enabled and will only be enabled after the first point release of 20.04 LTS) [[https://wiki.ubuntu.com/FocalFossa/ReleaseNotes#Upgrading_from_Ubuntu_18.04_LTS_or_19.10]] bizarre par rapport aux sorties 20.04.1 répertoriées sur [[https://releases.ubuntu.com/20.04/]] !!) |
| </note> |
| |
| * Régulièrement : |
| * sudo apt-get update |
| * sudo apt-get upgrade |
| * Automatisation d'upgrade de sécurité (et autres) : unattended-upgrade |
| * [[https://www.cyberciti.biz/faq/how-to-set-up-automatic-updates-for-ubuntu-linux-18-04/|How to set up automatic updates for Ubuntu Linux 18.04]] |
| * [[https://guide.ubuntu-fr.org/server/automatic-updates.html]] |
| * 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 : |
| * [[https://webdock.io/en/docs/how-guides/upgrading-webdock-webservers]] |
| * [[https://www.cyberciti.biz/faq/upgrade-ubuntu-18-04-to-20-04-lts-using-command-line/]] |
| |
| |
| ===== Installation et gestion de logiciels sur un serveur LAMP ===== |
| * [[wp>fr:Système_de_gestion_de_contenu|Système de gestion de contenus]] ou [[wp>Content_management_system|Content management system]] (CMS) |
| * [[dokuwiki|DokuWiki]] |
| * [[moodle|Moodle]] |
| * [[h5p|H5P]] |
| * Wordpress |
| * limesurvey |
| * ... |
| |
| ===== Virtualisation et containers sur le serveur ===== |
| * [[https://fr.wikipedia.org/wiki/Proxmox_VE]] |
| * [[https://fr.wikipedia.org/wiki/LXC]] |