Mission 1 hôtes virtuels + SGBDR

Cahier des charges : ppe1-2016-04-mission1-v0-8

Vhost

Tous d’abord, nous devons préparer nos 3 hôtes virtuel (Vhost) cela permettra de lier chaque nom de domaine à un dossier.

web6.a104.xilim.org
web6.a104.xilim.com
web6.a104.xilim.fr
/var/www/xilim.org
/var/www/xilim.com
/var/www/xilim.fr

 

Le fichier qui nous permettra de créer nos vhost se situe dans le dossier :

/etc/apache2/site-available/000-default.conf

Voici à quoi votre fichier devrait ressembler :

<VirtualHost *:80>
        ServerName localhost
        DocumentRoot /var/www/
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /var/www/xilim.org
        ServerName web6.a104.xilim.org
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /var/www/xilim.com
        ServerName web6.a104.xilim.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /var/www/xilim.fr
        ServerName web6.a104.xilim.fr
</VirtualHost>


Nous avons bien nos 3 vhost dans chaque dossier respectif et notre vhost « Principal » dans le dossier root /var/www

Il faut ensuite redémarrer le daemon apache2

service apache2 restart

Pages web

 

Xilim.org

La première page à créer est la page d’accueil « Hub » qui redirigera vers les site respectif.

Création du fichier index.php

gedit /var/www/xilim.org/index.php

 

<DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>XILIM.ORG</title>
    </head>
    <body>
	<center><h5>Welcom to our site. Click on the regular flag to access the site.</h5></center>
	<br>
	<br>
	<br>
	<center><table style="width:40%">
		 <tr>
		 	<th><center>French</center></th>
			<th><center>English</center></th>
		</tr>

		<tr>
			<td><center><a href="http://web6.a104.xilim.fr"><img src="http://www.iconarchive.com/download/i65864/hopstarter/flag-borderless/France.ico"></center></td>
			<td><center><a href="http://web6.a104.xilim.com"><img src="http://www.iconarchive.com/download/i65944/hopstarter/flag-borderless/United-Kingdom.ico"></center></td>
		</tr>
	</table></center>
    </body>
</html>

Cela devrait vous donner ceci :

capture-decran-de-2016-10-10-083702

Xilim.fr

La seconde page à créer est celle de xilim.fr elle devrait afficher la date formatée en français.

gedit /var/www/xilim.fr/index.php

Pour cela nous devons « Traduire » celle-ci :

<DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>XILIM.FR</title>
    </head>
    <body>
<center><h5>Bienvenue sur la page d’accueil dédiée aux clients Francophones. Nous sommes actuellement le 

<?php 

	//Voici les deux tableaux des jours et des mois traduits en français
	$nom_jour_fr = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
	$mois_fr = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", 
		"septembre", "octobre", "novembre", "décembre");
	// on extrait la date du jour
	list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y"));
	echo $nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee; 
	//Affichera par exemple : "date du jour en français : samedi 24 juin 2006."

?>
 (<?php
	$date = date('d/m/Y', time());
	echo $date ;
 ?>)

</h5></center>

    </body>
</html>

La fonction date permet de récupérer la date local du serveur il faut ensuite la formater dans la langue française (jours/mois/années)

Nous devons donc avoir cela :

capture-decran-de-2016-10-10-092345

Xilim.com

Pour xilim.com, nous devons avoir le même objectif mais en anglais il font donc afficher la date en anglais comme ceci : (mois/jours/année)

Nous allons donc utiliser la fonction date

<DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>XILIM.COM</title>
    </head>
    <body>
<center><h5>Welcome to xilim.com. We love English speakers. Today is :
<?php 

echo date("l F d, Y");

?> (
<?php 

echo date('m/d/Y', time());

?>
)
</h5></center>

    </body>
</html>

Nous avons ici 2 formatage de date :

La 1ere permet de récupérer la date alphanumérique Monday October 03, 2016 et la seconde en numérique 10/03/16

capture-decran-de-2016-10-10-084014

Menu

Pour des question de redondance nous allons créer un fichier menu.php qui sera appelé aux endroit ou nous aurons besoin du menu cela évite de devoir tous taper a la main , et cela permet de modifier un seul fichier au lieu de plusieurs.

mkdir /var/www/jointures
touch /var/www/jointures/menu.php

il faudra ensuite appeler le fichier a l’aide de la fonction :

<?php include_once "../jointures/menu.php"; ?>

Nous pouvons donc créer notre menu :

gedit /var/www/jointures/menu.php

 

<div style="left : 0px ; top : 30px;">
	<ul>
		<li><a href="http://web6.a104.xilim.com">xilim english</a>
		<li><a href="http://web6.a104.xilim.fr">xilim french</a>
	</ul>
</div>

Cela affichera une liste verticale avec les lien des différents site XILIM

capture-decran-de-2016-10-10-084014

Page dynamique

Xilim.fr

Nous devons créer la page collaborateurs.php dans le site xilim.fr cette page permettra de récupérer l’ensemble des employés de nationalité française à partir d’une base de données extérieur (db.xilim.org)

Voici le contenu de la base :

mysql> use xilim
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from Employe ;
+-----------+------------+---------------+---------------+
| idEmploye | nomEmploye | prenomEmploye | nationEmploye |
+-----------+------------+---------------+---------------+
|         1 | DUPOND     | Franck        | FR            |
|         2 | MARTIN     | Armelle       | FR            |
|         3 | SCHMURTZ   | Nabila        | UK            |
|         4 | DEKRIGAEC  | Gael          | US            |
|         5 | MUSTAPHA   | Hakim         | CAN           |
|         6 | DEGRACIA   | Maeva         | ES            |
|         7 | GROENBERG  | Julia         | D             |
|         8 | BOND       | James         | UK            |
|         9 | MONEYPENNY |               | UK            |
+-----------+------------+---------------+---------------+
9 rows in set (0.00 sec)

mysql> 
gedit /var/www/xilim.fr/collaborateurs.php

Comme dans le précédent TP nous allons utiliser PDO pour nous connecter et récupérer les données comme ceci :

<DOCTYPE html>
<html lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>test</title>
    </head>
    <body>
<br>
<br>
<h3><center><b>XILIM Employe</b></center></h3>
<br>
<center>
	<table style="width:40%">
  	<tr>
    		<th><center>Nom</center></th>
    		<th><center>Prenom</center></th>
	</tr>
	<tr>
		<td><br></td>
		<td><br></td>
	</tr>
            <?php

                $dsn = "mysql:host=db.xilim.org;dbname=xilim" ;
        		$connexion = new PDO($dsn,"guest","azerty") ;
        		$connexion->exec("SET CHARACTER SET utf8");
        		$select = $connexion->query("select * from Employe WHERE nationEmploye = 'FR'") ;
        		
        		while($enregistrement = $select->fetch(PDO::FETCH_OBJ)){
        
        			echo "<tr>" ;
        			echo "<td><center>" , $enregistrement->nomEmploye , "</center></td>" ;
        			echo "<td><center>" , $enregistrement->prenomEmploye , "</center></td>" ;
        			echo "</tr>" ;
        
        		}

            ?>
	</table>
</center>
    </body>
</html>

La requête SQL :

select * from Employe WHERE nationEmploye = 'FR'

permet de récupérer toute les données des employés ayant la nationalité française (FR)

Nous affichons donc les données dans un tableau :

capture-decran-de-2016-10-10-084201

Xilim.com

Le fichier collaborateurs.com de xilim.com devra afficher tous les employés anglophone (US; UK; CAN)

Avant cela nous savons que nous devons juste changer la requête SQL, nous copions donc le fichier collaborateurs de xilim.fr

cp /var/www/xilim.fr/collaborateurs.php /var/www/xilim.com/

Nous devons donc changer la requête SQL pour que la page puisse récupérer les employé ayant la nationalité US ; UK ; CAN

select * from Employe WHERE nationEmploye = 'UK' OR nationEmploye = 'US' OR nationEmploye = 'CAN

Cela nous donnes donc ceci (traduction name et firstname) :

<DOCTYPE html>
<html lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Xilim.com employe</title>
    </head>
    <body>
<br>
<br>
<h3><center><b>XILIM Employe</b></center></h3>
<br>
<center>
	<table style="width:40%">
  	<tr>
    		<th><center>Name</center></th>
    		<th><center>Firstname</center></th>
	</tr>
	<tr>
		<td><br></td>
		<td><br></td>
	</tr>
            <?php

                $dsn = "mysql:host=db.xilim.org;dbname=xilim" ;
		$connexion = new PDO($dsn,"guest","azerty") ;
		$connexion->exec("SET CHARACTER SET utf8");
		$select = $connexion->query("
		select * from Employe WHERE nationEmploye = 'UK' OR nationEmploye = 'US' OR nationEmploye = 'CAN'
		") ;
		
		while($enregistrement = $select->fetch(PDO::FETCH_OBJ)){

			echo "<tr>" ;
			echo "<td><center>" , $enregistrement->nomEmploye , "</center></td>" ;
			echo "<td><center>" , $enregistrement->prenomEmploye , "</center></td>" ;
			echo "</tr>" ;

		}

            ?>
	</table>
</center>
    </body>
</html>

capture-decran-de-2016-10-10-084245