Installation d'un Serveur Internet - Étape 2 : Création d'un compte pour un internaute.
Réponse AJAX TP obsolète, consulter plutôt la nouvelle version qui est plus cohérente.

Objectif.

L'objectif de ce cours/TP est :

Le premier utilisateur de notre seveur va s'appeler algriffiths (ou autre chose, si vous n'aimez pas le reggae).

Ajouter l'entrée (ou un catchall) dans le serveur DNS

Le but est que l'internaute consulte son espace Web avec un FQDN du genre : http://algriffiths.domaine-v_anonyme.local.

On va donc ajouter une entrée dans le serveur DNS.

Normalement, le service DNS est déjà installé sur votre serveur. Si ce n'est pas le cas, retournez à l'étape 1.

Rajoutez une entrée DNS de type A (ou AAAA si vous êtes en IPv6) : algriffiths.domaine-v_anonyme.local va pointer vers l'adresse IP de votre serveur.

Étant donné que tout va pointer vers notre adresse IP, rajoutez une fois pour toute ce qu'on appelle un catchall : *.domaine-v_anonyme.local va pointer vers l'adresse IP de votre serveur. Vous n'aurez alors plus aucune entrée à rajouter. Si vous le souhaitez, vous pouvez même supprimer l'entrée www.

Créer un VirtualHost dans Apache

A faire une fois pour toute

À la fin du httpd.conf se trouve une ligne en commentaire, qui permet à Apache d'aller cherche un complément de configuration dans c:\wamp\vhosts. Cette ligne nous intéresse.

À la fin de httpd.conf, trouvez le commentaire suivant :

#IncludeOptional "c:/wamp/vhosts/*"

Supprimer le commentaire pour obtenir :

IncludeOptional "c:/wamp/vhosts/*"

On n'a rien fait de visible mais ça sert directement après.

Créer algriffiths.conf

On crée maintenant l'espace Web de notre internaute algriffiths et le VirtualHost associé.

Créez le dossier c:\wamp\www\algriffiths qui sera l'espace Web de notre internaute.

Créez-y un fichier index.php qui contient :

Page d'accueil de algriffiths

Créez le fichier suivant :

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

Sauvegardez-le sous le nom c:\wamp\vhosts\algriffiths.conf

Redémarrez Apache et vérifiez que http://algriffiths.domaine-v_anonyme.local nous amène vers la page d'accueil de algriffiths.

En savoir plus sur les VirtualHost (doc officielle Apache).

Création d'une base de données MySQL pour algriffiths

Nous allons créer un utilisateur algriffiths dans MySQL, qui aura les droits sur la base algriffiths_db.

Dans MySQL, créez la base de données algriffiths_db grâce à la requête SQL :
CREATE DATABASE algriffiths_db ;

Créez l'utilisateur algriffiths grâce à la requête SQL : GRANT ALL ON algriffiths_db.* TO algriffiths@'%' identified by 'algriffiths' ;
(souvenez-vous des cours SQL : cette requête crée l'utilisateur s'il n'existe pas, lui affecte un mot de passe, lui accorde tous les droits sur la base).

Ici fin provisoire de l'adaptation du TP pour mars 2015

Validation

Voici les points à vérifier pour être sûr que tout soit bien installé et bien sécurisé.

Dans le navigateur, l'URL phpmyadmin.domaine-v_anonyme.local nous amène bien à phpmyadmin.

Dans le navigateur, l'URL algriffiths.domaine-v_anonyme.local nous amène bien à l'espace Web de l'internaute algriffiths.

Si je me connecte, dans phpMyAdmin, avec l'utilisateur algriffiths, j'ai bien accès à sa base de données algriffiths_db.

Lorsque vous êtes sûr que tout fonctionne, appeler le prof pour vérifier ensemble et valider cette étape avec un simple ok.

Votre réponse n°1

Création automatisée du compte Web

L'objectif est d'automatiser toutes les étapes de la création manuelle d'un compte Web sous Apache. Cela sera automatisé sous forme de fichiers de commandes MS-DOS, comme on l'a vu au premier semestre (cours MS-DOS).

L'idée est de créer un fichier de commandes nommé create_user.bat. Pour créer l'utilisateur v_anonyme2, son espace Web, sa base de données, on tapera la commande suivante :
create_user.bat v_anonyme2
Rappel : dans le fichier de commandes, le premier paramètre (qui a ici pour valeur v_anonyme2), se nomme %1.

Dans create_user.bat, écrivez la commande NET USER qui permet de créer l'utilisateur dont le login est passé en paramètre.

Votre réponse n°2

Ajoutez la commande MKDIR qui permet de créer son répertoire de travail sous c:\wamp\www.

Votre réponse n°3

Ajoutez la commande iCACLS qui permet, grâce à l'option /grant, d'attribuer les droits de lecture/écriture à l'utilisateur sur son répertoire de travail (une bonne aide sur iCACLS ici).

Votre réponse n°4

Ajoutez la commande MKDIR qui permet de créer sa racine Web www sous son répertoire de travail.

Votre réponse n°5

Ajoutez la commande iCACLS qui permet, grâce à l'option /grant, d'attribuer les droits de lecture/écriture à l'utilisateur apache sur cette racine Web.

Votre réponse n°6

Pourquoi est-il inutile d'affecter les droits de lecture/écriture à l'utilisateur sur sa racine Web ?

Votre réponse n°7

Grâce à la commande ECHO, à la redirection du résultat (> pour éventuellement recréer le fichier, >> pour ajouter du contenu), et à l'échappement des caractères spéciaux (par exemple vous écrirez : ^, remarquez que les chevrons sont échappés), ajoutez les commandes qui créent le fichier .../apache2.x.x/conf/mes_confs/v_anonyme2.conf (où v_anonyme2 est le login passé en paramètre) . Une explication sur la redirection.

Votre réponse n°8

Ajoutez les commandes NET STOP et NET START qui vont redémarrer le service wampapache.

Votre réponse n°9

Testez en tapant (à partir du bon répertoire) la commande MS-DOS :
create_user v_anonyme2

Validation : vérifiez que vous arrivez à accéder, dans le navigateur, à l'URL http://v_anonyme2.domaine-v_anonyme.local.

Création automatisée de la base de données

Remarque : en 2011-12, on n'a pas réussi à faire fonctionner les liens symboliques sous Windows Server 2003, alors qu'ils marchent sous XP, Seven et Windows Server 2008. Si vous êtes sous Windows Server 2003, laissez les bases de données dans le répertoire par défaut de mysql (mysql/mysql5.x.x/data).

Toutes les étapes suivantes seront rajoutées à la suite du fichier de commandes create_user.bat.

Ajoutez la commande MKDIR qui permet de créer le répertoire de la base de données datadir/v_anonyme2_db (où v_anonyme2 est le login passé en paramètre) sous son répertoire de travail.

Votre réponse n°10

Ajoutez la commande iCACLS qui permet, grâce à l'option /grant, d'attribuer les droits de lecture/écriture à l'utilisateur mysql sur datadir et ses sous-répertoires.

Votre réponse n°11

Grâce à la commande ECHO et à la redirection du résultat, créez le lien symoblique : écrivez :
c:\utilisateur\datadir\v_anonyme2_db (où v_anonyme2 est le login passé en paramètre)
dans le fichier :
.../mysql3.x.x/data/v_anonyme2_db.sym (où v_anonyme2 est le login passé en paramètre)

Votre réponse n°12

Grâce à la commande mysql -e (-e permet d'exécuter une requête SQL), exécutez la requête GRANT qui permet de créer l'utilisateur MySQL. La commande mysql.exe doit être précédée de son répertoire absolu (ou bien son répertoire peut être ajouté dans la variable PATH de MS-DOS. Vérifiez le paramétrage de mysql.exe -e.

Votre réponse n°13

Testez en tapant (à partir du bon répertoire) la commande MS-DOS :
create_user v_anonyme2

Validation : vérifiez que vous arrivez à lancer phpMyAdmin et à vous connecter avec l'utilisateur v_anonyme2, que la base de donnée v_anonyme2_db est présente.

Une fois que le prof a validé toutes les réponses ci-dessus et du paragraphe précédent : fusionnez-les toutes dans cette dernière réponse, pour avoir le fichier de commandes dans son ensemble.

Votre réponse n°14

Suppression automatique des utilisateurs

Ecrivez le fichier de commande delete_user.bat qui reçoit en paramètre un login et supprime l'utilisateur windows, supprime l'utilisateur dans MySQL, supprime le répertoire de travail de l'utilisateur (et donc, par conséquence, sa racine Web et ses bases de données), supprime le lien symbolique vers la base de données, supprime la configuration du VirtualHost.

Votre réponse n°15

Les logiciels qui permettent de faire ça

M'en souviens plus... aidez-moi en les mettant en commentaire.