Installation d'un serveur Internet
Réponse AJAX

Installation de WAMP

Commencez par installer WampServer sur votre serveur Windows Server 2019 : Apache / MySQL (ou MariaDB) / PHP pour Windows.

Attention ! L'installation de WampServer nécessite en pré-requis l'installation des runtimes Visual C++ (les fichiers vcredist##0.exe). Vous trouverez les quatre fichiers correspondant dans le répertoire _Ressources.

Installation de Filezilla FTP Server

Ensuite, installez FileZilla Server, il permet aux internautes d'envoyer les fichiers (constituant leur site Web) vers le serveur.

Sous FileZilla Server, créez un compte d'utilisateur nommé v_anonyme dont le Home Directory est c:\wamp64\www\v_anonyme (avec tous les droits en lecture et écriture, ainsi que pour les répertoires et les sous-répertoires).
(Si vous aviez déjà créé ce compte utilisateur, conservez-le mais modifiez son Home Directory comme indiqué ci-dessus).

Ouverture des ports sur le pare-feu

Pour que d'autres ordinateurs puissent accéder à vos services (Apache, MySQL et FTP), il faut autoriser les connexions entrantes dans le pare-feu (en anglais : FireWall) de Windows Server.

Ouvrez le Pare-feu Windows Defender avec fonctions avancées de sécurité -> Règles de trafic entrant -> Nouvelle règle...

Créez une Règle nommée "Apache" qui autorise les ports 80 (HTTP) et 443 (HTTPS),

Créez une Règle nommée "MySQL" qui autorise le ports 3306,

Créez une règle nommée "Filezilla FTP Server" qui autorise le programme C:\Program Files (x86)\FileZilla Server\FileZilla Server.exe

Tests

Si une des réponses ci-dessous n'est pas validée automatiquement, c'est qu'il y a un problème dans votre installation ou votre configuration : appelez le prof.

Est-ce que Apache est accessible en local ? Lancez un navigateur sur Windows Server et essayez d'ouvrir l'URL 127.0.0.1. Obtenez-vous une page Web ou une erreur ?

Votre réponse n°1

Est-ce que Apache est accessible en réseau local ? Lancez un navigateur sur un client Windows et essayez d'ouvrir l'URL 10.51.n°poste.80. Obtenez-vous une page Web ou une erreur 403 ?

Votre réponse n°2

Est-ce que FileZilla FTP Server est accessible en réseau local ? Lancez un client FTP sur un client Windows et essayez de vous connectez à l'hôte 10.51.n°poste.80 avec le login v_anonyme. Est-ce que la connexion fonctionne ?

Votre réponse n°3

Est-ce que MySQL est accessible en réseau local ? En ligne de commande sur un client Windows :
1/ Placez-vous dans le répertoire des exécutables de MySQL ou MariaDB (c:\wamp64\bin\mysql\mysqlxx.x.xx\bin)
2/ Exécutez la commande mysql.exe -uroot -h10.51.n°poste.80.
Est-ce que la connexion fonctionne ?

Votre réponse n°4

Rendre Apache accessible en réseau local

Configuration

Par défaut, Apache installé par WampServer est paramétré pour ne répondre qu'aux requêtes locales (sur les adresses de loopback : 127.0.0.1 ou localhost).

Ouvrez le fichier de configuration principal de Apache : C:\wamp64\bin\apache\apache2.x.xx\conf\httpd.conf

Cherchez la ligne # Virtual hosts et repérez (sur la ligne suivante), où Apache va-t-il chercher de la configuration supplémentaire ?

Dans quel fichier Apache va-t-il chercher de la configuration supplémentaire ?

Votre réponse n°5

Ouvrez ce fichier de configuration supplémentaire et cherchez la ligne : Require local

Remplacez-la par : Require all granted

Après un changement de configuration, Apache nécessite un redémarrage. Exécutez le programme services.msc (qui vous montre tous les services installés - mais pas forcément démarrés - sur le serveur). Cherchez le service Apache (attention : par ordre alphabétique il commence par W et non pas par A).

Comment se nomme le service Apache ?

Votre réponse n°6

À partir de services.msc, redémarrez le service Apache. Vous pourriez tout aussi bien lancer l'invite de commande et saisir les commandes net stop wampapache64 puis net start wampapache64 (oui, le mec était fatigué ce jour-là et il n'a pas pensé au net restart).

Important : si le service refuse de redémarrer, c'est qu'il y a une erreur de syntaxe dans la nouvelle configuration. Dans ce cas : vérifiez bien les lignes que vous venez de rajouter. Ça m'arrive très souvent...

Test

Est-ce que Apache est accessible en réseau local ? Lancez un navigateur sur un client Windows et essayez d'ouvrir l'URL 10.51.n°poste.80. Obtenez-vous une page Web ou une erreur 403 ?

Votre réponse n°7

Créer un espace Web pour un Internaute

Configuration

On va rajouter de la configuration supplémentaire à Apache : un "virtualhost" pour chaque internaute.

Pour ne pas polluer le fichier de configuration de Apache (httpd.conf) (il est conseillé que ce fichier reste immuable quels que soient nos nouveaux internautes ou ceux qui nous quittent), on va créer nos virtualhost dans un nouveau dossier : c:\wamp64\vhosts

Créez ce dossier : c:\wamp64\vhosts

À la fin du fichier de configuration de Apache httpd.conf, ajoutez la ligne : IncludeOptional C:\wamp64\vhosts (IncludeOptional permet de ne pas faire planter Apache si le répertoire en question est vide... Le développeur était fatigué ce soir-là parce que il aurait pû faire la même chose avec Include).

Dans ce répertoire c:\wamp64\vhosts, créez un fichier v_anonyme.conf qui contient le paramétrage suivant :

<virtualhost *:80>
	servername v_anonyme.domaine-v_anonyme.local
	documentroot c:/wamp64/www/v_anonyme	
</virtualhost>

Vous venez de modifier la configuration de Apache !!! Redémarrez-le !

Tests

À partir de votre client Windows, lancez un navigateur et essayez d'ouvrir l'adresse http://v_anonyme.domaine-v_anonyme.local. Vous obtenez une erreur (au lieu d'un répertoire vide) ? C'est normal, il y a plein de choses à vérifier :

Évidemment, ça marche toujours pas... Appelez le prof (ah non, il est en train de prendre un café !)

Bon, quand ça marche, notez ici : Ça marche !

Votre réponse n°8

"Mise en ligne" de votre première page Web

Pour l'instant votre site Web n'est qu'un répertoire vide, mais on va remédier à ça.

Sur un client Windows (équipé d'un client FTP), créez un fichier nommé index.html et qui contient le texte Bienvenu sur le site Web de v_anonyme.

Grâce au client FTP, envoyez ce fichier sur votre espace Web.

Accédez ou actualisez la page http://v_anonyme.domaine-v_anonyme.local. Quel texte s'affiche ?

Votre réponse n°9

Création d'un utilisateur MySQL et de sa première base de données

Ajout du répertoire bin de MySQL (ou MariaDB) dans le path de MS-DOS

Ouvrez l'invite de commande et lancez la commande mysql.exe. Quel erreur obtenez-vous ?

Votre réponse n°10

Trouvez l'emplacement des exécutables de MySQL (ou MariaDB). On l'a déjà relevé pendant le TP sur les lignes de commande. Re notez-le ici :

Votre réponse n°11

La variable MS-DOS (ou variable d'environnement) path est très importante : elle indique dans quels répertoires il faut aller chercher les programmes à exécuter. Quand on tape la commande mysql.exe, on veut que le système aille chercher automatiquement dans les bin de MySQL (ou MariaDB). Lancez la commande MS-DOS qui nous affiche le contenu de la variable path :

C:\Windows>echo %path%
Quel est le résultat obtenu (le contenu de la variable path) ?
Votre réponse n°12

On va y rajouter l'emplacement des exécutables de MySQL (ou MariaDB). Tapez la commande (prennez bien soin de remplacer c:\wamp64\...\bin par le chemin COMPLET) :

C:\Windows>set path=%path%;c:\wamp64\...\bin

Tapez à nouveau la commande suivante et notez le nouveau résultat obtenu :

C:\Windows>echo %path%
Votre réponse n°13

Tapez à nouveau la commande suivante et notez le nouveau résultat obtenu (même si c'est une erreur, c'est bon signe : MS-DOS a trouvé et exécuté le fichier mysql.exe) :

C:\Windows>mysql.exe
Votre réponse n°14

Création de l'utilisateur et de sa BDD (base de données)

Dans l'invite de commande, lancez la commande suivante qui permet de créer un utilisateur MySQL nommé v_anonyme :

C:\Windows>mysql -uroot -e "create user v_anonyme@'%'"

Dans l'invite de commande, lancez la commande suivante qui permet de créer une base de données nommée v_anonyme_db :

C:\Windows>mysql -uroot -e "create database v_anonyme_db"

Dans l'invite de commande, lancez la commande suivante qui permet donner tous les droits à l'utilisateur v_anonyme sur la base de donnée v_anonyme_db :

C:\Windows>mysql -uroot -e "grant all on v_anonyme_db.* to v_anonyme@'%' "

Toujours sur Windows Server 2019, lancez un navigateur et accédez à l'url : 127.0.0.1/phpmyadmin. Connectez-vous avec le login v_anonyme (sans mot de passe). Notez ici quelle est le nom de la base de données qui apparait en dernier dans la colonne tout à gauche :

Votre réponse n°15

Tests

On va tester la connexion entre le langage PHP et la base de données v_anonyme_db.

Lancez un traitement de texte brut, créez un fichier nommé c:\wamp64\www\v_anonyme\test.php, et copiez-y le code suivant :

<?php if ($CO = new mysqli('127.0.0.1', 'v_anonyme', '', 'v_anonyme_db')) echo 'Connexion à la base de données réussie'; else echo 'echec'; ?>

Dans un navigateur (sur vos machines virtuelles), accédez à l'URL http://v_anonyme.domaine-v_anonyme.local/test.php, et notez le message qui s'affiche :

Votre réponse n°16

À suivre