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 Nicolas SHINEY | March 25, 2017 | No Comments | Système