La pile LAMP est une plate-forme de développement Web open source populaire qui peut être utilisée pour exécuter et déployer des sites Web dynamiques et des applications Web. En règle générale, une pile LAMP se compose d'un serveur Web Apache, de bases de données MariaDB/MySQL, de langages de programmation PHP/Python/Perl. LAMP est l'acronyme de Linux, Apache, MariaDB/MYSQL, PHP/Python/Perl. Ce didacticiel étape par étape décrit comment installer Apache, MySQL, PHP (pile LAMP) sur l'édition serveur Ubuntu 20.04 LTS.
Installer Apache, MySQL, PHP (pile LAMP) sur Ubuntu 20.04 LTS
Pour les besoins de ce didacticiel, nous utiliserons le système Ubuntu suivant.
- Système d'exploitation :Édition serveur Ubuntu 20.04 LTS
- Adresse IP :192.168.225.52/24
Tout d'abord, installons le serveur Apache.
1. Installer le serveur Web Apache dans Ubuntu
Tout d'abord, mettez à jour le serveur Ubuntu à l'aide des commandes :
$ sudo apt update
$ sudo apt upgrade
Ensuite, installez le serveur Web Apache :
$ sudo apt install apache2
Vérifiez si le serveur Web Apache est en cours d'exécution ou non avec la commande :
$ sudo systemctl status apache2
Exemple de sortie :
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabl> Active: active (running) since Fri 2020-05-29 07:02:26 UTC; 25s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 23996 (apache2) Tasks: 55 (limit: 2283) Memory: 5.1M CGroup: /system.slice/apache2.service ├─23996 /usr/sbin/apache2 -k start ├─23998 /usr/sbin/apache2 -k start └─23999 /usr/sbin/apache2 -k start May 29 07:02:26 ubuntuserver systemd[1]: Starting The Apache HTTP Server... May 29 07:02:26 ubuntuserver apachectl[23981]: AH00558: apache2: Could not reliably det> May 29 07:02:26 ubuntuserver systemd[1]: Started The Apache HTTP Server.
Toutes nos félicitations! Le service Apache est opérationnel !!
1.1. Autoriser le serveur Web Apache via le pare-feu UFW
UFW , signifie U F ncompliqué irew all, est un programme de gestion d'un pare-feu netfilter conçu pour être facile à utiliser. UFW est disponible par défaut dans toutes les versions d'Ubuntu.
Par défaut, le navigateur Web Apache n'est pas accessible à partir de systèmes distants si vous avez activé le pare-feu UFW dans Ubuntu 20.04 LTS. Vous devez autoriser le http
et https
ports en suivant les étapes ci-dessous.
Tout d'abord, répertoriez les profils d'application disponibles sur votre système Ubuntu à l'aide de la commande :
$ sudo ufw app list
Exemple de sortie :
Available applications: Apache Apache Full Apache Secure OpenSSH
Comme vous pouvez le voir, les applications Apache et OpenSSH ont installé des profils UFW. Vous pouvez répertorier les informations sur chaque profil et ses règles incluses en utilisant ufw app info "Profile Name"
commande.
Examinons le “Apache Full”
profil à l'aide de la commande :
$ sudo ufw app info "Apache Full"
Exemple de résultat :
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp
Comme vous le voyez, "Apache Full"
le profil a inclus les règles pour activer le trafic vers les ports 80
et 443
.
Maintenant, exécutez la commande suivante pour autoriser le HTTP
entrant et HTTPS
trafic pour ce profil :
$ sudo ufw allow in "Apache Full"
Vous verrez une sortie comme ci-dessous :
Rules updated Rules updated (v6)
Si vous ne voulez pas autoriser https
trafic, mais uniquement http
(80) trafic, exécutez :
$ sudo ufw app info "Apache"
1.2. Tester le serveur Web Apache
Maintenant, ouvrez votre navigateur Web et accédez à la page de test Apache en accédant à http://localhost/
ou http://IP-Address/
.
Si vous voyez la "page par défaut d'Apache 2 Ubuntu" comme indiqué ci-dessous, vous êtes prêt à partir. Le serveur Apache fonctionne !
2. Installer MySQL dans Ubuntu
Pour installer MySQL sur Ubuntu, exécutez :
$ sudo apt install mysql-server
Vérifiez si le service MySQL est en cours d'exécution ou non à l'aide de la commande :
$ sudo systemctl status mysql
Exemple de résultat :
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-29 07:15:22 UTC; 2min 8s ago Main PID: 25242 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 2283) Memory: 323.7M CGroup: /system.slice/mysql.service └─25242 /usr/sbin/mysqld May 29 07:15:16 ubuntuserver systemd[1]: Starting MySQL Community Server... May 29 07:15:22 ubuntuserver systemd[1]: Started MySQL Community Server.
Comme vous le voyez dans la sortie ci-dessus, MySQL est en cours d'exécution !
2.1. Configurer le mot de passe de l'administrateur de la base de données (root) pour Mysql
Par défaut, MySQL root
le mot de passe utilisateur est vide. Il n'est pas recommandé d'utiliser un mot de passe vide pour le compte administratif de la base de données. Vous devez sécuriser votre serveur MySQL en exécutant le script suivant :
$ sudo mysql_secure_installation
Il vous sera demandé si vous souhaitez configurer "VALIDATE PASSWORD"
composant ou non. Ce composant permet aux utilisateurs de configurer un mot de passe fort pour les informations d'identification de la base de données. S'il est activé, il vérifiera automatiquement la force du mot de passe et obligera les utilisateurs à définir uniquement les mots de passe suffisamment sécurisés. Vous pouvez le laisser désactivé en toute sécurité . Cependant, vous devez utiliser un mot de passe fort et unique pour les informations d'identification de la base de données. Si vous ne souhaitez pas activer ce composant, appuyez simplement sur n'importe quelle touche pour ignorer la partie de validation du mot de passe et continuer le reste des étapes.
Entrez y
si vous souhaitez configurer VALIDATE PASSWORD
composant :
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: y
Si votre réponse est Oui , il vous sera demandé de choisir le niveau de validation du mot de passe. Les validations de mot de passe disponibles sont faibles , moyen et fort . Entrez simplement le nombre approprié (0 pour faible, 1 pour moyen et 2 pour mot de passe fort) et appuyez sur la touche ENTRÉE.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Maintenant, entrez le mot de passe pour MySQL root
utilisateur. N'oubliez pas que vous devez utiliser un mot de passe pour MySQL root
utilisateur en fonction de la stratégie de mot de passe que vous avez choisie à l'étape précédente. Si vous n'avez pas activé le plugin, utilisez simplement un mot de passe fort et unique de votre choix.
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Une fois que vous avez entré le mot de passe deux fois, vous verrez la force du mot de passe (dans notre cas, c'est 100 ). Si cela vous convient, appuyez sur Y pour continuer avec le mot de passe fourni. Si vous n'êtes pas satisfait de la longueur du mot de passe, appuyez sur n'importe quelle autre touche et définissez un mot de passe fort. Je suis d'accord avec mon mot de passe actuel, j'ai donc choisi y
.
Pour le reste des questions, tapez simplement y
et appuyez sur ENTER
. Cela supprimera l'utilisateur anonyme, interdira la connexion à distance de l'utilisateur root et supprimera la base de données de test.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
Fait! Nous avons défini MySQL root
mot de passe de l'utilisateur.
2.2. Changer la méthode d'authentification pour l'utilisateur racine MySQL
Par défaut, l'utilisateur racine MySQL est configuré pour s'authentifier à l'aide de auth_socket
plugin à partir de MySQL 5.7 et des versions plus récentes sur Ubuntu. Même si cela améliore la sécurité, cela compliquera également les choses lorsque vous accéderez à votre serveur de base de données à l'aide de programmes externes, par exemple phpMyAdmin. Pour résoudre ce problème, vous devez modifier la méthode d'authentification de auth_socket à caching_sha2_password
ou mysql_native_password
.
Depuis la version MySQL 8.0, le plugin d'authentification préféré et par défaut est caching_sha2_password
. Le caching_sha2_password
le plugin d'authentification fournit un cryptage de mot de passe plus sécurisé que le mysql_native_password
plugin.
Pour changer le plugin d'authentification, connectez-vous à votre invite MySQL à l'aide de la commande :
$ sudo mysql
Ou,
$ mysql -u root -p
Entrez la root
MySQL mot de passe que nous avons configuré à l'étape précédente.
Exécutez la commande suivante à l'invite mysql pour trouver la méthode d'authentification actuelle pour tous les comptes utilisateur MySQL :
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Exemple de résultat :
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$=s%UO"�[email protected]>[email protected] | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | | auth_socket | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)
Comme vous le voyez, l'utilisateur root mysql utilise auth_socket
plugin pour l'authentification.
Pour modifier auth_socket
plugin à caching_sha2_password
, exécutez la commande suivante à l'invite MySQL. Si vous avez activé VALIDATE PASSWORD
plugin, assurez-vous que vous avez utilisé un mot de passe fort basé sur les exigences de la politique actuelle. Un strong should se compose d'au moins 8 caractères dont une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
Remplacez Password123#@!
avec un mot de passe fort et unique de votre choix dans la commande ci-dessus.
Mettez à jour les modifications à l'aide de la commande :
mysql> FLUSH PRIVILEGES;
Vérifiez maintenant si le plugin d'authentification actuel est modifié ou non à l'aide de la commande :
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Exemple de résultat :
Bon! Maintenant, la root
MySQL l'utilisateur peut s'authentifier à l'aide d'un mot de passe pour accéder au shell MySQL.
Quittez l'invite MySQL :
mysql> exit
Remarque :
Même si caching_sha2_password
plugin fournit un cryptage sécurisé amélioré, il a quelques problèmes de compatibilité avec les installations MySQL existantes. Pour plus de détails, consultez ce lien . Si vous rencontrez des problèmes de compatibilité, vous devez définir mysql_native_password
plugin comme plugin d'authentification par défaut.
Pour passer à mysql_native_password
plugin, exécutez la commande suivante à l'invite MySQL.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Mettez à jour les modifications à l'aide de la commande :
mysql> FLUSH PRIVILEGES;
Maintenant, vérifiez à nouveau si la méthode d'authentification est modifiée ou non à l'aide de la commande :
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Exemple de résultat :
Sortez de l'invite mysql :
mysql> exit
3. Installer PHP dans Ubuntu
Pour installer PHP, exécutez :
$ sudo apt install php libapache2-mod-php php-mysql
Après avoir installé PHP, créez info.php
fichier dans le dossier de documents racine d'Apache. Généralement, le dossier du document racine d'Apache sera /var/www/html/
ou /var/www/
dans la plupart des distributions Linux basées sur Debian. Dans Ubuntu 20.04 LTS, c'est /var/www/html/
.
Créons info.php
fichier dans le dossier racine apache :
$ sudo vi /var/www/html/info.php
Ajoutez les lignes suivantes :
<?php phpinfo(); ?>
Appuyez sur ESC
clé et tapez :wq
pour enregistrer et quitter le fichier. Redémarrez le service apache pour appliquer les modifications.
$ sudo systemctl restart apache2
3.1. Tester PHP
Ouvrez votre navigateur Web et accédez à http://IP-address/info.php
URL.
Vous verrez les informations php telles que la version, l'API du serveur et les détails de tous les plugins php activés.
Habituellement, lorsqu'un utilisateur demande un répertoire au serveur Web, Apache recherche d'abord un fichier nommé index.html
. Si vous souhaitez modifier Apache pour qu'il serve des fichiers php plutôt que d'autres, déplacez index.php
en première position dans le dir.conf
fichier comme indiqué ci-dessous
$ sudo vi /etc/apache2/mods-enabled/dir.conf
Voici le contenu du fichier ci-dessus.
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Déplacez le index.php
déposer en premier . Une fois les modifications effectuées, votre dir.conf
le fichier ressemblera à ci-dessous.
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Appuyez sur ESC
clé et tapez :wq
pour enregistrer et fermer le fichier. Redémarrez le service Apache pour appliquer les modifications.
$ sudo systemctl restart apache2
3.2. Installer les modules PHP
Pour améliorer les fonctionnalités de PHP, vous pouvez installer des modules PHP supplémentaires.
Pour lister les modules PHP disponibles, exécutez :
$ sudo apt-cache search php- | less
Exemple de résultat :
Utilisez les touches fléchées pour parcourir le résultat. Pour quitter, tapez q
.
Pour trouver les détails d'un module php particulier, par exemple php-gd , exécutez :
$ sudo apt-cache show php-gd
Pour installer un module php, lancez :
$ sudo apt install php-gd
N'oubliez pas de redémarrer le service Apache après avoir installé un module php. Pour vérifier si le module est chargé ou non, ouvrez le fichier info.php dans votre navigateur et vérifiez s'il est présent.
Toutes nos félicitations! Comme vous pouvez le voir, il est très facile d'installer apache, mysql, php (pile LAMP) sur Ubuntu 20.04 LTS. Vous pouvez maintenant commencer à héberger vos sites Web à l'aide de la pile LAMP.
Lire la suite :
- Installer phpMyAdmin avec la pile LAMP sur Ubuntu 20.04 LTS
Lire connexe :
- Installer Nginx, MySQL, PHP (pile LEMP) sur Ubuntu 20.04 LTS
- Installer Apache, MariaDB, PHP (pile LAMP) dans CentOS 8