diu-eil:tp_virtualisation_-_web_-_application

TP Virtualisation - Serveur Web - Application Wiki

On souhaite, à partir d'une machine virtuelle VirtualBox hébergeant une machine Debian

  • héberger un serveur web apache2 avec le langage PHP
  • héberger, grâce au serveur web, une application wiki (dokuwiki) permettant la rédaction de documentation partagée en ligne
  • stocker une image de machine virtuelle .ova dans l'arborescence du serveur web de manière à la rendre disponible aux autres utilisateurs et la récupérer par une requête http, par exemple : wget http://adresse/images/machine.ova
  • installer une machine virtuelle Debian Buster à une carte réseau en NAT (Network Address Translation)
    • soit en important un fichier ova
    • soit en créant une machine virtuelle à partir d'une image iso
  • l'utilisation de la machine en tant que serveur impliquera de mettre en place la redirection de ports (cf VirtualBox Configuration/Réseau/Avancé):
    • pour SSH (202222) : une connexion sur le port 2022 de la machine hôte est redirigée sur le port 22 de la machine virtuelle
    • pour HTTP (208080) : même principe le port 2080 de l’hôte est redirigé vers le port 80 de la machine virtuelle
    • la suite des opérations peut s'effectuer en mode console ou de manière plus simple en connexion SSH car ce type de connexion permet le Copier-Coller ce qui n'est pas le cas pour la Console VirtualBox en mode standard
  • pour se connecter en SSH (si la machine virtuelle est configurée en NAT) et que le port externe 2022 est redirigé sur le port interne 22 :
ssh root@localhot -p 2022
  • si la connexion root s'avère impossible, se connecter avec un utilisateur standard (sio par exemple) et ensuite devenir root avec la commande su -
  • on peut alors vérifier l'heure avec :
date
  • on peut alors vérifier lenom de la machine avec :
hostname
  • on peut alors vérifier l'état de la couche réseau avec :
ip addr
  • on peut alors afficher la table de routage avec :
ip route
  • on peut alors vérifier la connectivité avec l'internet avec :
ping 9.9.9.9
  • on peut alors vérifier la résolution de noms (configuration DNS) avec (paquet dnsutils) :
host 9.9.9.9
  • mettre à jour la liste des paquets avec :
apt update
  • mettre à jour les paquets eux même (facultatif mais recommandé) avec :
apt upgrade 
  • une fois la mise à jour effectuée, installer apache2 et les modules php
sudo apt install apache2 php php-gd php-mbstring
  • on peut alors vérifier qu'apache2 est fonctionnel avec :
systemctl status apache2

ou bien avec :

ss -ltn
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port     
LISTEN     0      128          *:80                       *:*
LISTEN     0      128          *:22                       *:*
LISTEN     0      100  127.0.0.1:25                       *:*                 
LISTEN     0      128         :::80                      :::*
LISTEN     0      128         :::22                      :::*
LISTEN     0      100        ::1:25                      :::*
  • on se positionne dans le répertoire /var/www/html : racine des documents du serveur apache
 cd /var/www/html
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
....
2019-06-12 12:55:16 (677 KB/s) - 'dokuwiki-stable.tgz' saved [3745314/3745314]
  • on peut alors décompacter le fichier archive tgz (.tar.gz) avec la commande tar (Tape Archive qui permet de gérer les archives)
   tar xvfz dokuwiki-stable.tgz
  • on renomme le répertoire contenant les sources dokuwiki-2020-07-29 en doku (plus facile à utiliser)
   mv dokuwiki-2020-07-29 doku
  • on adapte les droits des répertoires (le serveur web apache (user www-data, groupe www-data) doit disposer de droits W sur les répertoires (data : pour les pages, lib/plugins et lib pour les plugins, conf pour la configuration)
chown -R root:root *
cd doku 
chown -R www-data:www-data data lib/plugins lib conf
  • On peut alors paramétrer le dokuwiki en se connectant à l'URL suivant : http://adresse/doku/install.php et terminer la configuration de base.
  • il est également possible d'examiner les fichiers journaux (logs) du serveur apache avec la commande :
tail -f /var/log/appache2/access.log
10.0.2.2 - - [12/Jun/2019:16:48:14 +0000] "GET /doku/install.php HTTP/1.1" 200 3420 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"
10.0.2.2 - - [12/Jun/2019:16:48:15 +0000] "GET /doku/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png HTTP/1.1" 200 6803 "http://localhost:2080/doku/install.php" "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"
10.0.2.2 - - [12/Jun/2019:16:48:15 +0000] "GET /doku/lib/exe/fetch.php?media=wiki:dokuwiki-128.png HTTP/1.1" 200 28397 "http://localhost:2080/doku/install.php" "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"
10.0.2.2 - - [12/Jun/2019:17:03:27 +0000] "GET /images/debian-stretch64-2017c.ova HTTP/1.1" 200 825855759 "-" "Wget/1.18 (linux-gnu)"

On souhaite utiliser la machine Debian comme espace de stockage pour héberger des fichiers .ova (VirtualBox) et des images iso (cdrom) ou d'autres

La machine sera accessible par http pour récupérer des fichiers avec wget ou un navigateur web classique)

 wget http://adresse:2080/images/mamachine.ova
 wget http://localhost:2080/images/mamachine.ova # depuis la machine hôte avec la  redirection de  ports

le répertoire de stockage sera /var/www/html/images (à créér)

Pour déposer les fichiers, on devra se connecter avec ssh/scp car http ne permet pas d'écrire

  scp -P 2022 mamachine.ova root@localhost:/var/www/html/images

Il est également possible d'utiliser un gestionnaire de fichier graphique (comme thunar sous XFCE, ou winscp depuis une machine Windows). Il faudra utiliser un URL du type :

ssh://root@localhost:2022:/..

Une autre piste se présente qui permet de copier des fichiers sur le serveur distant grâce à une interface web grâce à 'application file browser. Cf : https://filebrowser.org/

Installation de File Browser

curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash

Lancement de File Browser

filebrowser -r /var/www/html/ -a 0.0.0.0

Le serveur est alors actif jusqu'à ce qu'on l'interrompe avec <Ctrl-C>. On peut également le lancer en arrière-plan en terminant la commande avec &

Pour se connecter à File Browser, on utilisera un navigateur pour pointer à l'adresse du serveur. File Browser écoute sur le port 8080 vers lequel il faudra rediriger un port d'entrée avec VirtualBox.

admin/admin permet de s'identifier

  • diu-eil/tp_virtualisation_-_web_-_application.txt
  • Dernière modification : 2021/06/16 14:12
  • de 127.0.0.1