# Héberger son site Web avec OVH

# Pré-requis

### <span style="text-decoration: underline; color: rgb(35, 111, 161);">I) Créer votre site web</span>

Avant de vouloir mettre en ligne votre site, je vous conseille de le préparer avec un éditeur de texte adapté comme **Visual Studio** ([https://code.visualstudio.com/Download](https://code.visualstudio.com/Download)), **PhpStorm** ([https://www.jetbrains.com/phpstorm/](https://www.jetbrains.com/phpstorm/)) , etc

Afin de faire des tests en local, installez vous une base de donnée **Wamp** ([http://www.wampserver.com/en/download-wampserver-64bits/](http://www.wampserver.com/en/download-wampserver-64bits/))

Cela vous permettra de savoir a quoi ressemblera votre site une fois en ligne, donc amusez-vous a tester le plus de chose possible!

---

### <span style="text-decoration: underline;"><span style="color: rgb(35, 111, 161); text-decoration: underline;">II) Acheter un serveur VPS</span></span>

Pour avoir un serveur **VPS**, rendez-vous ici et choisissez l’offre qui correspond à vos besoins sur le site d'OVH.

Une fois le mail avec vos informations réceptionné, vous pourrez commencer.

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/2KIimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/2KIimage.png)

---

### <span style="text-decoration: underline;"><span style="color: rgb(35, 111, 161); text-decoration: underline;">III) Débuter avec le VPS</span></span>

#### <span style="color: rgb(45, 194, 107);">a) Se connecter au VPS</span>

Pour vous connecter a votre VPS fraichement créé, lancer **PuTTY** ou n'importe quel autre logiciel de ce genre. La connexion se fait à l’aide de l’@IP publique et du port de base du SSH (port 22) de votre serveur renseignée dans le mail :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/Sihimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/Sihimage.png)

Pour vous y connecter avec un linux utilisez la commande :

```linux
ssh root@IPV4_VPS
```

Une fois que vous serez connecté, entrez les informations d'identifications fournies dans le mail reçu précédemment :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/IAnimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/IAnimage.png)

---

#### <span style="color: rgb(45, 194, 107);">b) Changer le port de connexion au VPS</span>

Lorsque vous serez connecté au VPS, mettez a jour les paquets du système :

```linux
apt update
apt upgrade
```

Puis changez le mot de passe du VPS :

```
passwd
```

Nous allons maintenant changer le port d'écoute du service SSH afin d'éviter des tentatives d'intrusions sur le serveur, rendez-vous dans le fichier de configuration de SSH avec l'éditeur de texte de votre choix (ici **nano**) :

```
nano /etc/ssh/sshd_config
```

Au début du fichier, retirez le `#` sur la ligne en surbrillance ci-dessous et mettez le port que vous souhaitez :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/rw2image.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/rw2image.png)

Redémarrez ensuite le service SSH :

```
systemctl restart ssh.service
```

Pour vos futures connections au VPS, pensez a changer le port sur PuTTY :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/lEzimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/lEzimage.png)

Pareil si vous utilisez un linux :

```
ssh root@IP_VPS -p VotrePort
```

---

#### <span style="color: rgb(45, 194, 107);">c) Création d'un utilisateur avec les droits Admin</span>

Nous allons a présent créer un utilisateur avec des droits restreints qui pourra se connecter au serveur et aura les droits **SUDO** :

```
adduser NomUser
```

Suite a la commande entrez les informations d'identification de ce nouvel utilisateur.

Testez si SUDO est bien installé :

```
sudo ls -la /root
```

Si ce n'est pas le cas alors faite la commande :

```
apt install sudo
```

Attribuez ensuite les droits :

```
usermod -aG sudo Nom_User 
```

Vous pouvez désormais effectuer des actions Root avec votre utilisateur!

<span style="color: rgb(186, 55, 42);">Si vous souhaitez repasser avec l'utilisateur Root, utilisez la commande suivante :</span>

```
su
```

---

#### <span style="color: rgb(45, 194, 107);">d) Désactivation de l'accès SSH Root</span>

Nous allons maintenant désactiver l'accès SSH a l'utilisateur Root, ouvrez de nouveau avec votre éditeur de texte le fichier :

```
nano /etc/ssh/sshd_config
```

Et commentez `#` la ligne `PermitRootLogin yes` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/9Szimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/9Szimage.png)

Sauvegardez le fichier et redémarrez une nouvelle fois le service SSH :

```
systemctl restart ssh.service
```

---

Dans un futur chapitre nous sécuriseront l'accès encore + à l'aide d'un Firewall.

# Création d'un serveur LAMP

### <span style="text-decoration: underline; color: rgb(35, 111, 161);">I) Whats is LAMP?</span>

L’acronyme LAMP désigne un ensemble de quatre technologies open source : un système d’exploitation Linux, un serveur web Apache, un système de bases de données MySQL et le langage de programmation PHP.  
Ces technologies forment une pile vous permettant d’héberger vos sites ou applications web dynamiques, comme WordPress ou Drupal. LAMP est aujourd’hui la pile la plus utilisée pour héberger un applicatif web.

---

### <span style="text-decoration: underline; color: rgb(35, 111, 161);">II) Préparation du serveur</span>

#### <span style="color: rgb(45, 194, 107);">a) Installation d'Apache</span>

(et je ne vous parle pas d'Amérindiens)

```
sudo apt install apache2 apache2-doc
```

Vérifiez l'état service :

```
sudo service apache2 status
```

Après l'installation, ouvrez votre navigateur web et connectez vous a l'adresse IP de votre serveur *http://IP\_du\_Serveur/* vous devriez tomber sur la page d'accueil d'Apache :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/1zAimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/1zAimage.png)

N'essayez pas de vous connecter en HTTPS (cela ne fonctionnera pas) car vous n'avez actuellement pas de certificat SSL.

Quelques commandes utiles :

```
systemctl start apache2 => démarer le service
systemctl stop apache2 => arrêter le servive
systemctl restart apache2 => redémarrer le service
systemctl enable apache2 => activer le démarrage automatique
systemctl disable apache2 => désactiver le démarrage automatique
```

---

#### <span style="color: rgb(45, 194, 107);">b) Installation de PHP</span>

```
sudo apt install php7.0-cli php7.0-common php7.0-curl php7.0-mbstring php7.0-mysql php7.0-xml
```

OU

```
sudo apt install php7.0
```

Nous allons vérifier la version de PHP installée, dans le répertoire `/var/www/html` éditez le fichier `index.php` :

```
sudo nano info.php
```

Dans ce fichier mettez :

```php
<?php
  phpinfo();
?>
```

Ouvrez de nouveau votre navigateur pour entrez l'adresse `http://ip_du_serveur/info.php` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/u9Cimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/u9Cimage.png)

---

#### <span style="color: rgb(45, 194, 107);">c) Installation de MariaDB</span>

```
sudo apt install mysql-server
```

Lancez la commande suivante pour configurer les informations de base de votre BDD :

```
sudo mysql-secure-installation
```

Suivez les étapes, en changeant le mot de passe root de la BDD :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/wVKimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/wVKimage.png)

Désactivez les connections anonymes :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/zeNimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/zeNimage.png)

Désactiver la connexion à distance avec le root :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/TOoimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/TOoimage.png)

Effaçons la base de données créée de base :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/r6fimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/r6fimage.png)

Enfin chargeons les nouveaux paramètres :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/fXgimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/fXgimage.png)

Connectez-vous a la base de donnée avec la commande :

```
sudo mysql -u root -p
```

Créez un utilisateur et une base de donnée (sinon vous ne pourrez pas vous connecter a PHPMyAdmin) :

```sql
CREATE USER 'YourUser'@'localhost' IDENTIFIED BY 'YourPasswd';
CREATE DATABASE Your_DB;
GRANT ALL ON * . * TO 'YourUser'@'%' IDENTIFIED BY 'password';
```

---

#### <span style="color: rgb(45, 194, 107);">d) Installation de PHPMyAdmin</span>

```
sudo apt install phpmyadmin
```

Dans les choix proposés, sélectionnez un serveur web à reconfigurer automatiquement :

- Cochez apache2, puis Entrée ;
- Acceptez l’aide à la configuration, puis rentrez un mot de passe administrateur de votre BDD.

---

Pour accéder a l'interface de PHPMyAdmin, finalisons la configuration du serveur Apache. Rendez-vous dans le fichier de configuration d'Apache avec votre éditeur de texte :

```
sudo nano /etc/apache2/apache2.conf
```

A la fin du fichier de configuration ajoutez la ligne suivante :

```
Include /etc/phpmyadmin/apache.conf
```

Redémarrez le service Apache :

```
sudo systemctl restart apache2
```

Ouvrez une nouvelle fois votre navigateur et entrez l'adresse `http://IP_du_Serveur/phpmyadmin` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/zkaimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/zkaimage.png)

Vous pouvez maintenant vous connecter avec votre utilisateur créé dans la base de donnée créé plus tôt.

Bien joué. Vous savez maintenant créer un serveur LAMP.

# Mise en ligne de votre site

### <span style="color: rgb(35, 111, 161);">I) Prérequis</span>

WinSCP : Pour faire transvaser des documents de votre bureau a votre VPS

Votre nom de domaine (comme ici : jacques-curtis.fr) avec Hébergement Web et serveur DNS.

### <span style="color: rgb(35, 111, 161);">II) Accéder a votre site web</span>

#### <span style="color: rgb(45, 194, 107);">a) Mettre votre site sur votre VPS</span>

Connectez-vous a votre serveur avec WinSCP :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/XTBimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/XTBimage.png)

Placez vous dans le répertoire `/var/www` du coté du VPS et a l'endroit ou se trouve votre site Web en local.

Copiez ce dernier dans `/var/www` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/3b0image.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/3b0image.png)

Suite à cela, il va falloir initialiser le serveur apache pour que votre site soit accessible directement avec votre @IP, rendez-vous dans le répertoire `/etc/apache2/sites-available/` et ouvrez le fichier `000-default.conf` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/SKFimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/SKFimage.png)

Et changez la ligne `/var/www/html` par `/var/www/exemple` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/ypDimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/ypDimage.png)

Redémarrez une nouvelle fois le service Apache :

```
sudo systemctl restart apache2
```

Maintenant essayez de vous connecter à votre serveur `http://IP_du_Serveur` vous devriez voir votre site apparaitre.

#### <span style="color: rgb(45, 194, 107);">b) Créer un enregistrement DNS</span>

Afin d’avoir accès à votre serveur à l’aide d’un nom de domaine, plutôt qu’une adresse IP, rendez-vous sur le site d’OVH ou sur celui de votre hébergeur WEB.

Allez sur `votre domaine` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/qQHimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/qQHimage.png)

Dans la `Zone DNS` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/Fueimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/Fueimage.png)

Cliquez sur `Ajouter une entrée` :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/Osximage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/Osximage.png)

Créer un enregistrement de type A :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/RQ5image.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/RQ5image.png)

Entrez les information du site et l'adresse IP du VPS :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/ijqimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/ijqimage.png)

Puis faites Suivant et enfin vous pourrez valider :

[![image.png](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/scaled-1680-/jvlimage.png)](https://docs.jacques-curtis.fr/uploads/images/gallery/2023-01/jvlimage.png)

Vous pouvez dès maintenant tenter de vous connecter sur votre site avec le nom de domaine que vous venez de créer.

Par exemple portfolio.jacques-curtis.fr

---

Vous savez a présent comment mettre en ligne un site statique avec nom de domaine!

Faites en bon usage :)