LAMP est une plate-forme de développement Web gratuite et open-source utilisée pour héberger des sites Web dynamiques et performants. Il se compose de quatre composants open source :Linux, Apache, MySQL/MariaDB et PHP. LAMP utilise Linux comme système d'exploitation, Apache pour le serveur Web, MySQL/MariaDB comme base de données et PHP comme langage de script.
Dans ce tutoriel, nous expliquerons comment installer LAMP et le sécuriser avec Let's Encrypt SSL gratuit sur Ubuntu 18.04.
Prérequis
- Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net.
- Un nom de domaine valide pointant vers l'adresse IP de votre serveur. Dans ce didacticiel, nous utiliserons example.com comme domaine.
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur, en choisissant Ubuntu 18.04 comme système d'exploitation, avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 - Installation du serveur Web Apache
Tout d'abord, installez le serveur Web Apache avec la commande suivante :
apt-get install apache2 -y
Une fois l'installation terminée, démarrez le service Apache et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :
systemctl start apache2 systemctl enable apache2
Ensuite, vérifiez le serveur Web Apache avec la commande suivante :
systemctl status apache2
Le serveur Web Apache est maintenant en cours d'exécution et écoute sur le port 80. Ouvrez votre navigateur Web et saisissez l'URL http://your-server-ip. Vous devriez voir la page par défaut d'Apache dans l'écran suivant :
Cela signifie que le serveur Web Apache fonctionne comme prévu.
Étape 3 - Installer le serveur de base de données MariaDB
MariaDB est le fork le plus populaire du système de gestion de base de données relationnelle MySQL. Vous pouvez l'installer en exécutant la commande suivante :
apt-get install mariadb-server mariadb-client -y
Une fois installé, démarrez le service MariaDB et activez-le après le redémarrage du système avec la commande suivante :
systemctl start mariadb systemctl enable mariadb
mysql_secure_installation
Ce script définira le mot de passe root, supprimera les utilisateurs anonymes, interdira la connexion root à distance et supprimera la base de données de test et l'accès à celle-ci, comme indiqué ci-dessous :
Enter current password for root (enter for none): Press the Enter key Set root password? [Y/n]: Y New password: Enter password Re-enter new password: Repeat password Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Étape 4 - Installation de PHP
apt-get install php php-cli php-mysql php-curl php-zip libapache2-mod-php -y
Une fois tous les packages installés, ouvrez votre fichier php.ini et modifiez certains paramètres requis :
nano /etc/php/7.2/apache2/php.ini
Modifiez les lignes suivantes. Les valeurs ci-dessous sont d'excellents paramètres pour un environnement LAMP :
memory_limit = 256M upload_max_filesize = 100M max_execution_time = 360 date.timezone = America/Chicago
Enregistrez et fermez le fichier. Ensuite, redémarrez le serveur Web Apache pour appliquer la configuration.
systemctl restart apache2
Créez ensuite un fichier info.php dans le répertoire racine de votre document Apache pour tester PHP avec Apache :
nano /var/www/html/info.php
Ajoutez la ligne suivante :
<?php phpinfo( ); ?>
Enregistrez et fermez le fichier. Ensuite, ouvrez votre navigateur Web et visitez l'URL http://your-server-ip/info.php. Vous devriez voir la page de test PHP par défaut illustrée dans l'écran suivant.
Après le test, il est recommandé de supprimer le fichier info.php pour des raisons de sécurité.
rm -rf /var/www/html/info.php
Étape 5 - Création d'un hôte virtuel
Tout d'abord, créez un fichier index.html pour votre domaine example.com.
mkdir /var/www/html/example.com nano /var/www/html/example.com/index.html
Ajoutez les lignes suivantes :
<html> <title>example.com</title> <h1>Welcome to example.com Website</h1> <p>This is my LAMP server</p> </html>
Enregistrez et fermez le fichier. Ensuite, modifiez le propriétaire du répertoire example.com et accordez les autorisations nécessaires :
chown -R www-data:www-data /var/www/html/example.com chmod -R 755 /var/www/html/example.com
Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Apache pour votre domaine, example.com.
nano /etc/apache2/sites-available/example.com.conf
Ajoutez les lignes suivantes :
<VirtualHost *:80> ServerAdmin [email protected] ServerName example.com DocumentRoot /var/www/html/example.com DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/example.com_error.log CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined </VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Voici une brève explication de chaque paramètre dans le fichier ci-dessus :
- Administrateur du serveur : Spécifiez l'adresse e-mail de l'administrateur du serveur.
- Nom du serveur : Nom de domaine associé à l'adresse IP de votre serveur.
- DocumentRoot : Spécifiez l'emplacement du contenu du site Web.
- Index de répertoire : Spécifiez une page par défaut à afficher lors de l'accès à un répertoire.
- Journal d'erreur : Emplacement du fichier journal des erreurs.
- Log personnalisé : Emplacement du fichier journal d'accès.
Ensuite, activez l'hôte virtuel et redémarrez le service Web Apache pour appliquer la configuration :
a2ensite example.com systemctl restart apache2
Pour tester votre site Web, ouvrez votre navigateur Web et saisissez l'URL http://example.com. Vous serez redirigé vers la page suivante :
Étape 6 - Sécuriser votre site Web avec Let's Encrypt
À ce stade, votre site Web fonctionne bien, mais il n'est pas sécurisé. Vous devrez le sécuriser avec le SSL gratuit de Let's Encrypt.
Tout d'abord, vous devrez installer un client Certbot sur votre serveur. Certbot est un client facile à utiliser qui peut être utilisé pour télécharger un certificat à partir de Let's Encrypt et configurer le serveur Web Apache pour utiliser ce certificat.
apt-get install software-properties-common apt-transport-https ca-certificates -y add-apt-repository ppa:certbot/certbot
Une fois le référentiel ajouté, mettez à jour le référentiel et installez Certbot avec la commande suivante :
apt-get update -y apt-get install certbot python-certbot-apache -y
Ensuite, exécutez la commande suivante pour installer Let's Encrypt SSL gratuit pour le site Web example.com :
certbot --apache -d example.com
Vous serez invité à fournir votre adresse e-mail et à accepter les conditions d'utilisation, comme indiqué ci-dessous :
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/example.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/example.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/example.com-le-ssl.conf Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Ensuite, sélectionnez l'option 2 et appuyez sur Entrée pour télécharger le certificat Let's Encrypt et configurer le serveur Web Apache pour utiliser ce certificat. Une fois le processus d'installation terminé, vous devriez voir la sortie suivante :
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/example.com.conf to ssl vhost in /etc/apache2/sites-available/example.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-10-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Maintenant, ouvrez votre navigateur Web et accédez à votre site Web en toute sécurité avec l'URL https://example.com.
Conclusion
Dans le didacticiel ci-dessus, nous avons appris à installer le serveur LAMP sur Ubuntu 18.04 VPS. Nous avons également appris comment sécuriser un serveur LAMP avec le SSL gratuit Let's Encrypt. Vous pouvez désormais installer facilement un serveur LAMP et le sécuriser avec Let's Encrypt SSL gratuit sur Ubuntu 18.04 en utilisant nos services d'hébergement VPS.