An open API service indexing awesome lists of open source software.

https://github.com/camara94/metterenplaceapache2

Dans ce projet, je vais illustrer l'installation d'apache sur notre serveur **VPS**, Apache est un logiciel de serveur web gratuit et open-source qui alimente environ 46% des sites web à travers le monde. Le nom officiel est Serveur Apache HTTP et il est maintenu et développé par Apache Software Foundation
https://github.com/camara94/metterenplaceapache2

apache2 debian linux ubuntu

Last synced: 2 months ago
JSON representation

Dans ce projet, je vais illustrer l'installation d'apache sur notre serveur **VPS**, Apache est un logiciel de serveur web gratuit et open-source qui alimente environ 46% des sites web à travers le monde. Le nom officiel est Serveur Apache HTTP et il est maintenu et développé par Apache Software Foundation

Awesome Lists containing this project

README

          

# Mettre en place apache2
Dans ce projet, je vais illustrer l'installation d'apache sur notre serveur **VPS**,
## INSTALLATION D’APACHE 2
nous en profitons pour installer aussi le langage PHP et le module Apache associé :


sudo apt-get install apache2
sudo apt-get install php
sudo apt-get install libapache2-mod-php

Après avoir installé apache2 et PHP, nous allons dans le dossier **var** puis dans le dossier **www** qui va servir de container pour nos site web


cd /var/www


Attribuez à cet utilisateur les droits sur le dossier **/var/www**



sudo chown -R www-data:www-data /var/www


Pour vérifier le statut de notre serveur, lançons la commande suivante :


sudo service apache2 status
oubien
sudo systemctl status apache2


Résultat:

![resultat](images/1.png)
qui montre que apache2 est installé et est lancé également, après cela nous pouvons vérifier notre **adress ip** dans le navigateur


http://152.228.217.119/


Aperçu:

![apercu](images/2.png)
Nous voyons ici que notre serveur Apache2 est bien démarré et, par défaut, il se relancera automatiquement à chaque démarrage de notre VPS.

Pour avoir la doc, il faut l'installer l'utilitaire:


sudo apt-get install apache2-doc


## Quelques commandes utiles
* Pour vérifier la version de votre serveur Web, tapez :



sudo apache2ctl -v

![vfdfd](images/3.png)

* Pour obtenir un statut détaillé du serveur :



sudo apachectl status

* Pour arrêter, lancer ou relancer votre serveur:



sudo service apache2 stop
sudo service apache2 start
sudo systemctl reload apache2



* Pour vérifier les modules chargés d’Apache2 :



sudo apache2ctl -M

![ch](images/4.png)
* Enfin si nous ne souhaitons pas redémarrer Apache2 au démarrage de votre VPS :



sudo systemctl disable apache2


* A l’inverse pour réactiver le service :



sudo systemctl enable apache2

## LA CONFIGURATION
Les fichiers de configuration de notre serveur se situent dans le répertoire **/etc/apache2**:



/etc/apache2/
|-- mods-enabled
|-- conf-enabled
|-- sites-enabled

* Trois dossiers sont disponibles:
1. **mods-enabled** : pour les fichiers de configuration des **modules** d’Apache
2. **conf-enabled** : pour fichiers de configuration des **services** disponibles
3. **sites-enabled** : pour les fichiers de configuration des **sites** disponibles

>**Note** : ces répertoires sont en fait des liens symboliques vers ->les répertoires physiques **mods-available**, **conf-available** >et **sites-available**.

Il y aura au minimum autant de fichiers de configuration dans **sites-enabled** que de sites proposés.

* Au départ il y a un seul site avec les fichiers suivants :



/etc/apache2/
|-- sites-enabled
|-- 000-default.conf
|-- default-ssl.conf

1. **000-default.conf** : configuration utilisée par le mode HTTP (port 80)
2. **default-ssl.conf** : configuration utilisée par le mode HTTPS (port 443)

* Le contenu de la configuration HTTP est la suivante :



<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

1. La balise VirtualHost permet de définir un hôte virtuel qui écoutera sur le port **80 (HTTP)**.

2. DocumentRoot indique le chemin des pages web qui seront accessibles sur le serveur : **/var/www/html**

* Apache recommande de créer un fichier de configuration pour chaque hôte virtuel ou application web dans le répertoire **/etc/apache2/sites-available/**
* correspondant à **«000-default.conf»** via les commandes, nous pouvons l'activer et le desactiver **a2ensite (enable site)** et **a2dissite (disable site)**:



sudo a2ensite 000-default
sudo a2dissite 000-default


* De même nous pouvons **activer / désactiver** la configuration correspondant par exemple à **charset.conf** en tapant :



sudo a2enconf charset
sudo a2disconf charset

* Et enfin, nous pouvons **activer / désactiver** le module correspondant par exemple à **alias.load**


sudo a2enmod alias
sudo a2dismod alias

* Chaque modification nécessitera une prise en compte des changements via la commande suivante :



sudo systemctl reload apache2


Notons enfin les deux fichiers de configuration ci-dessous :



/etc/apache2/
|-- apache2.conf
|-- ports.conf


1. **apache2.conf** : configuration générale du serveur (timeout du serveur, utilisateur www-data, niveau de log, …)
2. **ports.conf** : configuration de la liste des ports en écoute (80 et 443 par défaut)

## MODULE PHP
Par défaut ubuntu 18.04 TLS propose PHP 7.2.24 qui est une version assez ancienne. Voici comment faire pour avoir une version récente (la 7.4).
* Pour vérifier la version

php -v

![php v](images/5.png)

* Enfin installons les modules pour **Apache / MariaDB :**


sudo apt install -y apache2 libapache2-mod-php
sudo apt install -y php7.4-mysql


* Vérifions que le module PHP est bien activé :


sudo apache2ctl -M | grep php


* Relançons notre serveur Apache pour prendre en compte ces modifications


sudo systemctl restart apache2


* Nous pouvons vérifier par une simple page PHP, les informations relatives à votre serveur.

Editez la page PHP suivante :


cd /var/www/html/
sudo vi getinfo.php

* Et indiquez la commande :


<?php phpinfo(); ?>


* Vérifier avec http://152.228.217.119/getinfo.php

![imag php](images/6.png)

## Configuration de nom de domaine
Je vais d'abord dans notre serveur **OVH** dans la section **Zone DNS**
![ds](images/7.png)

puis je clique sur le bouton **Ajouter une entrée**, je choisie champs de pointage **A** pour pouvoir ajouter l'adresse **IP4** de notre **VPS** dans sous-domaine je sais **www**
![confirm](images/9.png)

Et en je confirme
![confirm ](images/11.png)
après cette étape, nous pouvons voir que notre site **stardevcgroup.com** pointe maintenant vers **152.228.217.119** pour vérifier il nous sufit de tester ces deux urls suivante
* http://152.228.217.119
* http://stardevcgroup.com

nous constatons directement que ces deux urls affiche le même résultat au navigateur

## Création d'un hôte virtuel
Pour cela nous allons maintenant acceder à notre **VPS** en **SSH**
dans cet article j'ai choisir l'outil **MobaXterm** qui a une version gratuite qui fait notre affaire mais on pouvait choisir **Putty** qui est aussi intéressant.
![mobaxterm](images/12.png)

Pour ajouter session il suffit de cliquer sur **session** il nous sera demandé votre nom **d'hôte** et **username** puis lorsque nous cliquons sur **OK** il nous demande votre **mot de passe** enfin et lors de prochaine connexion nous n'aurons plus besoin de les retaper.
![ll](images/13.png)
Aperçu de **MobaXterm** une fois logged dans notre **VPS**
![aper](images/14.png)
Après quelques manup j'obtiens ça qui n'est pas si mal

![cxc](images/15.png)

* On créer le dossier **stardevcgroup.com** qui va héberger les fichier de notre site


cd /var/ww
mkdir stardevcgroup.com
cd stardevcgroup.com
touch index.html
nano index.html

et puis je vais ajouter **Bienvenue sur Star Dev Cloud Group**

![dd](images/16.png)

Pour activer notre site vers ce dossier, nous allons dans **/etc/apache2/sites-enabled** et l'interieur de ce dossier on créer un fichier **startdevcgroup.com.conf**


cd /etc/apache2/sites-enable
nano stardevcgroup.com

![star](images/17.png)
Dans ce fichier les deux qui sont essentielles sont:
* **ServerName** qui indique l'URL du site ou le nom de domaine
* **DocumentRoot** indique le dossier qui héberge notre site ou tout simplement la racine de notre site

si vous voulez en savoir plus [Cliquez ici](https://github.com/camara94/AdministrationdunserveurLAMP#pour-la-cr%C3%A9ation-dun-h%C3%B4te-virtuel)

* Pour activer cette configuration ap