GNU/Linux >> Tutoriels Linux >  >> Linux

Installez le serveur LAMP avec Let's Encrypt Free SSL sur Ubuntu 18.04

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.


Linux
  1. Comment installer Let's Encrypt SSL sur Ubuntu 18.04 avec Nginx

  2. Comment installer LAMP avec PHP 7.4 sur Ubuntu 20.04

  3. Comment installer Gitea avec NGINX et Free Let's Encrypt SSL sur Ubuntu 20.04

  4. Comment installer Let's Encrypt SSL avec Apache sur Debian 11

  5. Comment installer PHP-FPM avec Apache sur Ubuntu 20.04

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

Comment installer Let's Encrypt SSL avec Nginx sur Ubuntu 16.04 LTS

Sécurisez Nginx avec le certificat SSL Let's Encrypt sur Ubuntu 18.04

Comment installer Drupal sur un serveur Ubuntu 20.04 avec Apache

Comment installer LAMP sur un serveur Ubuntu 15.04

Comment sécuriser le serveur LEMP avec Let's Encrypt Free SSL sur Ubuntu 18.04 VPS