GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer la pile Apache, MySQL, PHP (LAMP) sur Ubuntu 18.04 LTS

LAMPE stack 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, la 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 L inux, M ariaDB/M YSQL, P HP/P ython/P euh. Ce tutoriel décrit comment installer Apache, MySQL, PHP (pile LAMP) sur le serveur Ubuntu 18.04 LTS.

Installer la pile Apache, MySQL, PHP (LAMP) sur Ubuntu 18.04 LTS

Pour les besoins de ce didacticiel, nous utiliserons la boîte de test Ubuntu suivante.

  • Système d'exploitation :Ubuntu 18.04.1 Édition Serveur LTS
  • Adresse IP :192.168.225.22/24

1. Installer le serveur Web Apache

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 :

$ sudo systemctl status apache2

Exemple de sortie :

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago
 Main PID: 2025 (apache2)
    Tasks: 55 (limit: 2320)
   CGroup: /system.slice/apache2.service
           ├─2025 /usr/sbin/apache2 -k start
           ├─2027 /usr/sbin/apache2 -k start
           └─2028 /usr/sbin/apache2 -k start

Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably
Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

Toutes nos félicitations! Le service Apache est opérationnel !!

1.1 Ajuster le pare-feu pour autoriser le serveur Web Apache

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 18.04 LTS. Vous devez autoriser les ports http et https 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 complet" profil. Pour ce faire, exécutez :

$ sudo ufw app info "Apache Full"

Exemple de sortie :

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, le profil "Apache Full" a inclus les règles pour permettre le trafic vers les ports 80 et 443 :

Maintenant, exécutez la commande suivante pour autoriser le trafic HTTP et HTTPS entrant pour ce profil :

$ sudo ufw allow in "Apache Full"
Rules updated
Rules updated (v6)

Si vous ne souhaitez pas autoriser le trafic https, mais uniquement le trafic http (80), 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/ .

Page de test Apache

Si vous voyez un écran comme ci-dessus, vous êtes prêt à partir. Le serveur Apache fonctionne !

2. Installer MySQL

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: enab
Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago
Main PID: 3423 (mysqld)
Tasks: 27 (limit: 2320)
CGroup: /system.slice/mysql.service
└─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server...
Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.

Mysql est en cours d'exécution !

2.1 Configurer le mot de passe de l'administrateur de la base de données (root)

Par défaut, MySQL racine le mot de passe utilisateur est vide. 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 le plugin VALIDATE PASSWORD ou pas. Ce plugin 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 laisser ce plugin 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 plugin, appuyez simplement sur n'importe quelle touche pour ignorer la partie de validation du mot de passe et continuer le reste des étapes.

Si votre réponse est Oui , il vous sera demandé de choisir le niveau de validation du mot de passe.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN 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 plugin?

Press y|Y for Yes, any other key for No y

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:

Maintenant, entrez le mot de passe de l'utilisateur root MySQL. N'oubliez pas que vous devez utiliser un mot de passe pour l'utilisateur root mysql en fonction de la politique 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: 50 
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 50 ). 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 ENTRÉE. 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!

C'est ça. Le mot de passe pour l'utilisateur racine MySQL a été défini.

2.2 Modifier 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 dans MySQL 5.7 et les 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 à mysql_native_password . Pour ce faire, connectez-vous à votre invite MySQL à l'aide de la commande :

$ sudo mysql

Exécutez la commande suivante à l'invite mysql pour trouver la méthode d'authentification actuelle pour tous les comptes d'utilisateurs mysql :

SELECT user,authentication_string,plugin,host FROM mysql.user;

Exemple de résultat :

+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Comme vous le voyez, l'utilisateur root mysql utilise auth_socket plugin pour l'authentification.

Pour changer cette authentification en mysql_native_password méthode, exécutez la commande suivante à l'invite mysql. N'oubliez pas de remplacer "password" avec un mot de passe fort et unique de votre choix. Si vous avez activé le plugin VALIDATION, assurez-vous d'avoir utilisé un mot de passe fort basé sur les exigences de la politique actuelle.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Mettez à jour les modifications à l'aide de la commande :

FLUSH PRIVILEGES;

Maintenant, vérifiez à nouveau si la méthode d'authentification est modifiée ou non à l'aide de la commande :

SELECT user,authentication_string,plugin,host FROM mysql.user;

Exemple de sortie :

Bon! Maintenant, l'utilisateur myql root peut s'authentifier à l'aide d'un mot de passe pour accéder au shell mysql.

Sortez de l'invite mysql :

exit

3. Installer PHP

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 apache sera /var/www/html/ ou /var/www/ dans la plupart des distributions Linux basées sur Debian. Dans Ubuntu 18.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 la touche ESC 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 maintenant la page de test php.

page de test php

Habituellement, lorsqu'un utilisateur demande un répertoire au serveur Web, Apache recherche d'abord un fichier nommé index.html . Si vous voulez changer 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 fichier "index.php" 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 et appuyez sur la touche ENTRÉE.

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

Pour installer tous les modules (pas nécessaire cependant), exécutez :

$ sudo apt-get install php*

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.

Ensuite, vous souhaiterez peut-être installer des outils de gestion de base de données pour gérer facilement les bases de données via un navigateur Web. Si c'est le cas, installez phpMyAdmin comme décrit dans le lien suivant.

  • Installer phpMyAdmin avec la pile LAMP sur Ubuntu 18.04 LTS

Toutes nos félicitations! Nous avons réussi à configurer la pile LAMP sur le serveur Ubuntu 18.04 LTS.

Lire aussi :

  • Installer la pile Nginx, MariaDB, PHP (LEMP) dans Ubuntu 18.04 LTS
  • Installer la pile Apache, MariaDB, PHP (LAMP) sur Arch Linux
  • Installer la pile Nginx, MariaDB, PHP (LEMP) sur Arch Linux

Et, c'est tout pour le moment. Comme vous pouvez le constater, la configuration de la pile LAMP dans Ubuntu est absolument simple et directe.

Référence :

  • Océan numérique

Ubuntu
  1. Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 16.04

  2. Tutoriel du serveur Ubuntu 14.10 LAMP avec Apache 2, PHP 5 et MySQL (MariaDB)

  3. Tutoriel du serveur Ubuntu 15.04 LAMP avec Apache 2, PHP 5 et MariaDB (au lieu de MySQL)

  4. Comment installer LAMP Stack sur Ubuntu 22.04 LTS

  5. Comment installer Apache, MySQL, PHP (LAMP) sur Ubuntu 16.04 LTS

Comment installer LAMP Stack (Apache, MariaDB, PHP7.1) sur Ubuntu 17.10

Comment installer LAMP Stack sur le serveur/bureau Ubuntu 20.04

Comment installer Apache, MySQL, PHP sur Ubuntu 18.04 LTS

Comment installer Apache, MySQL, PHP (pile LAMP) sur Ubuntu

Comment installer LAMP sur un serveur Ubuntu 15.04

Comment installer la pile Apache, MySQL, PHP (LAMP) sur Ubuntu 16.04