Skip navigation

Architecture distribuée : serveur web

Mise en place d’un serveur web d’une architecture distribué

Les architecture distribuée offre plus de flexibilité est permet une évolutivité horizontal plus aisé. La machine utilisé sont sous Proxmox, mais le principe est évidement le même sous un autre hyperviseur où si des machines physique sont utilisées. Il y aura sûrement des subtilités propre aux réseaux qu’il faudra adapter.

: l’OS utilisé ici est Debian Jessie. Dans sa version 8.7 au moment de la rédaction de cette article.

Serveur Apache

Afin de ne plus utiliser les IP pour faire communiquer les machines entre elle, il faut modifier le fichier
/etc/hosts. Ce parce qu’il n’y a pas de DNS car le nombre de machine est relativement bas. Mais avant il faut donner un nom correct à la machine.

Renommer le serveur Apache.

root@debian~#: hostnamectl set-hostname web-server.local

Édition du fichier /etc/hosts

root@web-server~#: vim /etc/hosts

aperçu du contenu du fichier

127.0.0.1   localhost
10.0.0.1    web-server.local
10.0.0.2    mysql-server.local

: la liste est à adapter au besoin en ajoutant un serveur SFTP (où FTP pour les plus courageux), un serveur mail…

Mise à jour de l’OS.

root@web-server~#: aptitude update && aptitude upgrade

Installation de Apache

root@web-server~#: aptitude install apache2 apache2-doc

Installation de PHP 7

PHP 7 est sortie depuis un moment mais il faut modifier le fichier /etc/apt/sources.list pour ajouter les paquets en ajoutant ligne deb http://packages.dotdeb.org jessie all.

root@web-server~#: vim /etc/apt/sources.list

aperçu du contenu du fichier

deb http://packages.dotdeb.org jessie all

Ajouter la clé et mise à jour de la liste de dépôt.

root@web-server~#: wget https://www.dotdeb.org/dotdeb.gpg
root@web-server~#: apt-key add dotdeb.gpg
root@web-server~#: aptitude update

Mise à jour de la liste de dépot et installation des paquets PHP 7.

root@web-server~#: aptitude install php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-zip

Dans le fichier /etc/php/7.0/apache2/php.ini il faut décommenter une ligne – en enlevant le « ; » – pour que PHP utilise MySQL.

root@web-server~#: vim /etc/php/7.0/apache2/php.ini

aperçu du contenu du fichier

extension=msql.so

Activation de la réécriture d’URL

Il faut éditer le fichier /etc/apache2/sites-available/000-default.conf.
en ajoutant :

root@web-server~#: vim /etc/apache2/sites-available/000-default.conf

aperçu du contenu du fichier

<VirtualHost *:80>
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
[…]

Activer le module de réécriture.

root@web-server~#: a2enmod rewrite

Rédémarrage de Apache pour que la modification soit prise en compte.

root@web-server~#: systemctl restart apache2.service

: il faut donner à PHP les droits d’écritures. La méthode la plus rapide pour est la suivante de donner à www-data les dossiers approprié.

root@web-server~#: chown -R www-data /var/www/html/dossier-du-site/

Le serveur web est prêt, il faut maintenant le lié au serveur de base de donnée

Serveur de base de données : MySQL

De la même manière que pour le serveur web, il faut mettre à jour l’OS, renomer la machine et éditer le fichier /etc/hosts.

root@debian~#: hostnamectl set-hostname mysql-server.local
root@mysql-server~#: aptitude update && aptitude upgrade
root@mysql-server~#: vim /etc/hosts

aperçu du contenu du fichier

127.0.0.1   localhost
10.0.0.1    web-server.local
10.0.0.2    mysql-server.local

Installation de MySQL.

root@mysql-server~#: aptitude install mysql-server

Connection à la base de données.

root@debian~#: mysql -u root -p

Création de la base de données.

mysql> CREATE DATABASE nom-base-de-donnee CHARACTER SET utf8 COLLATE utf8_bin;

Création de l’utilisateur associé.

mysql> CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'mot-de-passe';

Attribution des droits de cet utilisateur sur sa base de données.

mysql>GRANT ALL ON nom-base-de-donnee.* TO kyle@10.0.0.1 IDENTIFIED BY 'mot-de-passe';

Configuration de MySQL

Par défaut la configuration de MySQL n’autorise pas la connexion à distance. Pour autoriser la connexion à distance il faut commenter la ligne bind-address 127.0.0.1 en ajoutant un « # » en début de ligne.

root@debian~#: vim /etc/mysql/my.cnf

aperçu du contenu du fichier

#bind-address       = 127.0.0.1

Redémarrage du service MySQL pour que la configuration soit prise en compte.

root@debian~#: systemctl restart mysql.service

by | March 25, 2017 | No Comments | Système