
## Installation d'un serveur web

Nous allons installer un serveur Web: **Apache**. C'est juste celui que je connais le mieux. **Nginx** est une possible alternative très prisée et guère plus compliquée à mettre en oeuvre.

```shell
root@aijan:/etc/bind# apt install apache2
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
The following additional packages will be installed:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0
etc ...
```

Test de notre serveur:

C'est bon, voilà une image de la page d'acceuil :

![Le serveur apache](Images/apache.png)

Ne pas oublier d'ouvrir les ports du firewall: port 80 et 443 en TCP et UDP.

Lignes à rajouter à firewall.sh:

```shell
  # HTTP + HTTPS Out
  $IPT -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
  $IPT -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

  $IP6T -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
  $IP6T -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

  # HTTP + HTTPS In
  $IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
  $IPT -t filter -A INPUT -p tcp --dport 443 -j ACCEPT

  $IP6T -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
  $IP6T -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
```

### Sauvegarde de notre nouvelle configuration

```shell
root@aijan:#cd /home/ericadmin/bin/
root@aijan:/home/ericadmin/bin#./firewall.sh  restart
root@aijan:/home/ericadmin/bin#service netfilter-persistent save
```

### Création des hôtes virtuels (virtual hosts)

3 hôtes virtuels à créer:

* yojik.net
* www.yojik.net
* yazik.yojik.net

Créez  2 fichiers d'hôtes virtuels. Exemple de fichier:

**Virtualhost:  www.yojik.net**

```shell
<VirtualHost *:80>

ServerAdmin webmaster@yojik.net
ServerName www.yojik.net

DocumentRoot /var/www/html/yojiknet/

<Directory "/var/www/html/yojiknet/index.html">
        Options Indexes MultiViews
        AllowOverride FileInfo AuthConfig Indexes
        Order allow,deny
        allow from all
        Require all granted
</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

LogLevel warn

</VirtualHost>
```

**Virtualhost: yazik.yojik.net**

```shell
<VirtualHost *:80>

ServerAdmin webmaster@yojik.net
ServerName yazik.yojik.net

DocumentRoot /var/www/html/yaziknet/

<Directory "/var/www/html/yaziknet/index.html">
        Options Indexes MultiViews
        AllowOverride FileInfo AuthConfig Indexes
        Order allow,deny
        allow from all
        Require all granted
</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

LogLevel warn

</VirtualHost>
```

Validez-les avec:

> a2ensite le_nom_du_fichier (a2ensite site1 site2 (pour moi))

On recharge apache2 pour la prise en compte de nos 2 sites.

> service apache2 reload


### Création des fichiers html

Créez 2 répertoires sous /var/www/html:

* mkdir /var/www/html/yojiknet /var/www/html/yaziknet

* cd /var/www/html

On crée un fichier **index.html** sous chaque répertoire créé:

Exemple de fichier de base:

**/var/www/html/yojiknet/index.html**

```shell
<!DOCTYPE html>

<html>
    <head>
        <title>The Yojik.net home page</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <h1>The Yojik Net home page</h1>
        <p>Nothing interesting at the moment .. comming soon!</p>
    </body>
</html>
```

**/var/www/html/yaziknet/index.html**

```shell
<!DOCTYPE html>

<html>
    <head>
        <title>The Yazik.net home page</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <h1>The Yazik Net home page</h1>
        <p>Nothing interesting at the moment .. comming soon!</p>
    </body>
</html>
```

Dans le répertoire **/var/www/html/** on lance la commande suivante pour ajuster les droits et propriétaires des fichiers (pour apache et Debian, c'est **www-data**.)

> chown -Rv www-data.www-data *

On relance apache

> service apache2 restart

On teste avec un navigateur.

* adresse 1: www.yojik.net

* adresse 2: yazik.yojik.net

Vous vous apercevrez que la deuxième ne fonctionne pas: il vous faut ajouter le domaine yazik.yojik.net à votre fichier de zone de bind et relancer bind ensuite:

> yazik		IN	CNAME	atom.yojik.net.

Re-testez: tout marche :)
