Installation d'un serveur Apache2
Introduction :
Dans le cadre du contexte GSB nous avons la nécessité d'installer et de déployer correctement un serveur Apache2 sous linux. Pour cela nous allons utiliser une machine virtuelle munie de Debian 10.5.
Installation :
Téléchargement du paquet d'Apache2 :
Nous procédons au téléchargement du paquet d'apache grâce au paquet ci-dessous.
apt-get install apache2 -y
Téléchargement des paquets de PHP & MariaDB :
Nous allons maintenant télécharger les paquets de PHP ainsi que du module d'apache liant à PHP.
apt install php libapache2-mod-php mariadb-server php-mysql -y
Téléchargement des modules PHP les plus connus :
apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip -y
Téléchargement de la documentation d'Apache2 :
apt-get install apache2-doc
Accès à la documentation : /usr/share/doc/
Sauvegarde de la configuration d'Apache2 :
Si nous effectuons une action par mégarde détruisant un fichier de configuration, nous serons bien content de retrouver les fichiers non-modifiés.
cp -rp /etc/apache2 /etc/apache2.init
Commandes liées au serveur Apache2 :
/etc/init.d/apache2 start
/etc/init.d/apache2 stop
/etc/init.d/apache2 reload
Consulter les fichier d'erreurs d'Apache2 :
tail -f /var/log/apache2/error.log
Création de l'accès public (accès via l'ip):
Création du fichier où seront stockés les fichier du serveur virtuel web.
mkdir /var/www/html/public
echo "000-default"|a2dissite
On renomme le fichier 000-default.conf en public.conf.
mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/public.conf
Nous changeons le contenue de public.conf.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
On active la nouvelle configuration.
echo "public"|a2ensite
Nous redémarrons le serveur apache.
/etc/init.d/apache2 reload
Enfin nous créons le fichier index.html :
(chemin : /var/www/html/public/index.html)
<html>
<body>
<h1>It works! SIO (PUBLIC)</h1>
<p>This is the default web page for this server.</p>
</body>
</html>
Pour tester ce premier site virtuel, nous avons simplement à accéder à l'IP de notre serveur sur un navigateur.
Création du premier site (accessible avec un nom de domaine) :
Le nom de domaine sera : site1.nehemie.pod4.sio.lan
N'oubliez pas de créer le nom dans votre serveur DNS !
Création du dossier lié au site1 :
mkdir /var/www/html/site1
Nous allons copier coller le fichier public.conf pour partir d'une bonne base.
cp /etc/apache2/sites-available/public.conf /etc/apache2/sites-available/site1.conf
Nous l'éditions comme ceci :
<VirtualHost *:80>
ServerName site1.nehemie.pod4.sio.lan
ServerAlias www.site1.nehemie.pod4.sio.lan
DocumentRoot /var/www/html/site1
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Nous activons le site :
echo "site1"|a2ensite
Nous redémarrons le serveur apache.
/etc/init.d/apache2 reload
Nous créons le fichier index.html du site 1 :
(chemin : /var/www/html/site1/index.html)
<html>
<body>
<h1>It works! SIO (SITE1)</h1>
<p>This is the default web page for this server.</p>
</body>
</html>
Création d'un second site :
Création du dossier lié au site2 :
mkdir /var/www/html/site2
Nous allons copier coller le fichier public.conf pour partir d'une bonne base.
cp /etc/apache2/sites-available/site1.conf /etc/apache2/sites-available/site2.conf
Nous l'éditions comme ceci :
<VirtualHost *:80>
ServerName site2.nehemie.pod4.sio.lan
ServerAlias www.site2.nehemie.pod4.sio.lan
DocumentRoot /var/www/html/site2
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Nous activons le site :
echo "site2"|a2ensite
Nous redémarrons le serveur apache.
/etc/init.d/apache2 reload
Nous créons le fichier index.html du site 2 :
(chemin : /var/www/html/site2/index.html)
<html>
<body>
<h1>It works! SIO (SITE2)</h1>
<p>This is the default web page for this server.</p>
</body>
</html>
Création d'un troisième site avec SSL :
Création d'un certificat :
Nous allons générer un certificat qui sera en suite signé par notre professeur qui endossera le rôle d'autorité de certification.
Premièrement nous allons créer le dossier où sera stocké notre certificat.
cd /srv
mkdir ssl
cd ssl/
Nous allons créer une clé RSA de 2048.
openssl genrsa -out clefnehemie.key 2048
Maintenant que notre clé RSA est crée, nous pouvons générer un certificat.
onpensslopenssl req -new -key clefnehemie.key -out certificatnehemie.csr
