Projet GsbFrais virtualisation Table des matières Première séance : deux machines physiques... 2 Où et comment s'effectue la connexion à la base de données?... 2 Quelles valeurs ont les trois variables de connexion (serveur, utilisateur et mdp)?... 2 Normalisation des tables :... 3 Au niveau du php :... 3 Au niveau de la normalisation des tables :... 4 Installation du serveur de bases de données :... 4 Configuration d Apache, fichier httpd.conf... 5 Deuxième et troisième séances : deux machines virtuelles... 5 SISR : serveur web Linux et serveur MySql sous Seven... 5 Exemple :... 5 Exemple de la commande:... 6 Finalité :... 6... 6 SLAM : serveur web sous Seven et serveur MySql Linux... 7 Installation de Lamp sur la machine virtuelle client Linux :... 7 1
Première séance : deux machines physiques Où et comment s'effectue la connexion à la base de données? La connexion au serveur de BDD MySql s'effectue dans la page php _bdgestiondonnees.lib qui contient les fonctions de connexion et les fonctions de manipulation de la base de données, à l'aide du code suivant : function connecterserveurbd() { $hote = "ipvalide"; $login = "uservalide"; $mdp = "mdpvalide"; return mysql_connect($hote, $login, $mdp); } Le reste du code permet la sélection de la base de données à utiliser : function activerbd($idcnx) { $bd = "bdvalide"; $query = "SET CHARACTER SET utf8"; // Modification du jeu de caractères de la connexion $res = mysql_query($query, $idcnx); $ok = mysql_select_db($bd, $idcnx); return $ok; } Quelles valeurs ont les trois variables de connexion (serveur, utilisateur et mdp)? Elles ont des valeurs par défaut : $hote = "ipvalide"; $login = "uservalide"; $mdp = "mdpvalide"; Il faudra les remplacer par celles attribuées à notre serveur pour s'y connecter. 2
Normalisation des tables : Au niveau du php : Item Règle de nommage 1 Variables jeu d enregistrements ligne du jeu d enregistrements chaîne contenant une requête SQL autre variable Fonctions fonction retournant une requête SQL fonction retournant une ligne ou une valeur fonction d'ajout ou modification ou suppression fonction de vérification Fichiers fichier contrôleur + affichage vue $idjeu suivi du rôle Line 79: $idjeures = mysql_query($requete, $idcnx); tableau $lg suivi du rôle Line 17: $lguser = verifierinfosconnexion($idconnexion, $login, $mdp) ; Line 19: if ( is_array($lguser) ) { Line 20: affecterinfosconnecte($lguser["id"], $lguser["login"]); Line 20: affecterinfosconnecte($lguser["id"], $lguser["login"]); $req ou $requete Line 79: $idjeures = mysql_query($requete, $idcnx); pas de règle (le nom choisi doit toujours être porteur de sens par rapport au rôle de la variable) obtenirreq suivi du rôle (exemple : obtenirreqeltsforfaitfichefrais est le nom de la fonction qui retourne la requête permettant d obtenir les données sur une fiche de frais) Line 209: function obtenirreqmoisfichefrais($unidvisiteur) { obtenir suivi du rôle (exemple : obtenirdetailfichefrais est le nom de la fonction qui retourne la ligne correspondant à la fiche de frais demandée) Line 23: function obteniriduserconnecte() { verbe ajouter ou modifier ou supprimer suivi du nom de la table. Si la fonction prend en charge plusieurs actions, on accole les noms des actions (exemple : ajouterfichefrais) Line 260: function supprimerlignehf($idcnx, $unidlignehf) { son nom sera formé de estun ou verifier ou existe suivi du rôle Line 13: if (estvisiteurconnecte() ) { Line 323: function verifierinfosconnexion($idcnx, $unlogin, $unmdp) { Line 122: function existefichefrais($idcnx, $unmois, $unidvisiteur) { Tout fichier contrôlant la cinématique des cas d utilisation et la gestion de l affichage commence par la lettre c (c comme contrôleur) De plus, il est nécessaire de rajouter un @ aux lignes 21, 48, 328 de la page php de gestion de la base de données. 1 3
Au niveau de la normalisation des tables : Il est dit que, concernant le schéma de la base de données les règles d écriture suivantes ont été appliquées : pas de blanc ni de caractère accentué dans les noms de table ou d attribut ; chaque nom de table commence par une majuscule et est suivi de minuscules. Si elle est composée de deux mots, ils sont collés et distingués par une majuscule ; chaque nom d attribut est écrit en minuscule. S il est composé de deux mots, ils sont collés et distingués par une majuscule. Le nom choisi pour l attribut représente le rôle de son domaine dans la table ; une clef étrangère porte un nom significatif de son rôle dans la table. On trouve l'erreur de nommage suivante : CREATE TABLE IF NOT EXISTS `fichefrais` ( Dans le fichier de création des tables de la bases, ligne 74, elle est remplacée ainsi : CREATE TABLE IF NOT EXISTS `FicheFrais` ( Installation du serveur de bases de données : choix du serveur SGBD wamp server avec phpmyadmin ; création de la bdd gsbfrais, création et insertion des tables et données dans gsbfrais avec les scripts que l'on a modifié ; création d'un utilisateur pour que le serveur web puisse se connecter au serveur de base de données avec le script sql suivant ; l'utilisateur, les tables et les données ont bien été créées ; «Si vous souhaitez accéder à MySQL depuis un autre ordinateur, il vous faut créer un autre compte. Si vous vous baladez d'un poste à l'autre, cela pourrait devenir vite laborieux! Heureusement, vous pouvez utiliser le joker % selon le degré d'ouverture que vous estimez sûr. Exemples d'hôtes (notez les apostrophes obligatoires pour utiliser le joker %)» Instruction de création de compte L'utilisateur moi pourra se connecter depuis CREATE USER moi@localhost Le serveur MySQL lui-même CREATE USER moi@monordi L'ordinateur appelé monordi CREATE USER moi@192.168.1.123 L'ordinateur dont l'ip est 192.168.1.123 CREATE USER moi@'l92.l68.%' N'importe quel ordinateur dont l'ip est de la classe 192.168 CREATE USER moi@'%.microapp.com' N'importe quel ordinateur du domaine microapp.com CREATE USER moi@'%' N'importe quel ordinateur Notez que la table user est la liste des comptes utilisateurs autorisés à se connecter, et qu'il n'existe pas de «liste noire» des comptes interdits. De même, les comptes ne peuvent pas être suspendus, désactivés ou verrouillés, mais seulement détruits (ce qui n'empêche nullement leur recréation). 4
Configuration d Apache, fichier httpd.conf Nous avons rajouté les autorisations d accès au serveur web qui se traduisent par «Allow from ip» Deuxième et troisième séances : deux machines virtuelles SISR : serveur web Linux et serveur MySql sous Seven Comme sur Wamp, Lamp doit être configuré pour que les autres utilisateurs puissent se connecter à Lamp. Pour cela il faut configurer le fichier se trouvant dans le dossier /etc/apache2/apache2.conf, ce ficher est équivalent aux fichiers httpd.conf sous Wamp. Pour que les utilisateurs puissent se connecter il faut donner les droits à tous les utilisateurs ou aux utilisateurs choisis. Exemple : 5
J'ai aussi rencontré un problème de droit sur le dossier /var/www. Pour régler le problème j'ai donné tous les droits à tous les utilisateurs du poste. Exemple de la commande: Finalité : Vous pouvez voir ci-dessus que la connexion au serveur linux Lamp fonctionne, et que la connexion au site est effective. 6
SLAM : serveur web sous Seven et serveur MySql Linux Installation de Lamp sur la machine virtuelle client Linux : Rentrer les commandes suivantes dans le terminal de commande pour installer les paquets puis lier PhpMyAdmin à Apache. sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin Redémarrer le serveur. Nous avons spécifiquement rajouté un suffixe pour distinguer de quelle machine provident la base de données, correspondant au dernier octet de l IP de la machine. 7