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/09 17:46] – [Compléments d'installation du serveur] villersd | floss:config_ubuntu_server [2023/07/30 19:17] – 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]] |
* commandes intéressantes | * commandes intéressantes |
* [[https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/|Apt Get List Installed | List Installed Packages with Apt on Ubuntu]] | * [[https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/|Apt Get List Installed | List Installed Packages with Apt on Ubuntu]] |
| |
| <note tip>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.</note> |
| |
===== Installation de VirtualBox sous Linux (Ubuntu) ===== | ===== Installation de VirtualBox sous Linux (Ubuntu) ===== |
| <note tip>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.</note> |
| |
* [[wp>fr:Oracle_VM_VirtualBox|Oracle VM VirtualBox]] | * [[wp>fr:Oracle_VM_VirtualBox|Oracle VM VirtualBox]] |
| |
<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. |
| |
| ===== Installation de VirtualBox sous Windows ===== |
| * [[https://www.virtualbox.org/|Oracle VM VirtualBox]] |
| * [[https://www.virtualbox.org/wiki/Downloads|Downloads – Oracle VM VirtualBox]] |
| * [[https://pureinfotech.com/install-virtualbox-windows-10/|How to install VirtualBox on Windows 11, 10 - Pureinfotech]] |
| * [[https://adamtheautomator.com/install-virtualbox-on-windows-10/|How to Install VirtualBox on Windows 10]] |
| |
===== 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 :** |
| * <code>sudo wget "http://www.adminer.org/latest.php" -O /var/www/html/adminer.php</code> |
| * 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 ==== | ==== Compléments d'installation du serveur ==== |
| |
<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> | <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 : === | === non fait : === |
* (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 |
* ?? | * (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... ==== | ==== 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 : | * Régulièrement : |
* sudo apt-get update | * sudo apt-get update |
* sudo apt-get upgrade | * 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): | * Mise à niveau de l'OS (par exemple Ubuntu server 20.04.1): |
* FIXME | * 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 : | * Références : |
* [[https://webdock.io/en/docs/how-guides/upgrading-webdock-webservers]] | * [[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 ===== | ===== 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) | * [[wp>fr:Système_de_gestion_de_contenu|Système de gestion de contenus]] ou [[wp>Content_management_system|Content management system]] (CMS) |
* Wordpress | |
* [[dokuwiki|DokuWiki]] | * [[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]] |
| * [[https://medium.com/geekculture/stop-using-virtual-box-on-linux-51e02739f812|Stop using Virtual Box on Linux - Use Virtual Machine Manager instead of Virtual Box]] Dre Tech Tips, Medium, 05/04/2022 |