Recherche de site Web

Installer Apache, MariaDB, PHP (pile LAMP) sur le serveur Ubuntu 18.04 LTS


Comme vous le savez peut-être déjà, la pile LAMP est une plateforme de développement web populaire et open source qui peut être utilisée pour exécuter et déployer des sites web dynamiques et des applications web. En général, la pile LAMP est composée du serveur web Apache, des bases de données MariaDB/MySQL, et des langages de programmation PHP/Python/Perl. LAMP est l'acronyme de Linux, MariaDB/MYSQL, PHP/Python/Perl. Dans ce tutoriel, nous verrons comment installer Apache, MariaDB et PHP (pile LAMP) sur un serveur Ubuntu 18.04 LTS.

Installer Apache, MariaDB, PHP (pile LAMP) sur le serveur Ubuntu 18.04 LTS

Pour le but de ce tutoriel, j'utiliserai la boîte de test suivante.

  • Système d'exploitation : serveur Ubuntu 18.04 64 bits LTS
  • Adresse IP : 192.168.225.22/24

1. Installer le serveur web Apache

Pour installer le serveur web Apache, exécutez la commande suivante depuis le Terminal :

$ sudo apt install apache2

Vérifiez si le serveur web Apache fonctionne ou non :

$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Fri 2018-07-06 11:42:35 UTC; 27s ago
Main PID: 2079 (apache2)
Tasks: 55 (limit: 2322)
CGroup: /system.slice/apache2.service
├─2079 /usr/sbin/apache2 -k start
├─2081 /usr/sbin/apache2 -k start
└─2082 /usr/sbin/apache2 -k start

Jul 06 11:42:35 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Jul 06 11:42:35 ubuntuserver systemd[1]: Started The Apache HTTP Server.

Le service Apache est chargé et en cours d'exécution !

1.1 Ajuster le pare-feu pour permettre le serveur web Apache

Par défaut, le navigateur web Apache ne peut pas être accessible depuis des systèmes distants si vous avez activé le pare-feu UFW dans Ubuntu 18.04 LTS. Vous devez autoriser le trafic HTTP et HTTPS via UFW en suivant les étapes ci-dessous.

Tout d'abord, voyons quelles applications ont installé un profil en utilisant la commande :

$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Comme vous pouvez le voir, les applications Apache et OpenSSH ont installé des profils UFW.

Si vous consultez le profil “Apache Full”, vous verrez qu'il permet le trafic vers les ports 80 et 443 :

$ sudo ufw app info "Apache Full"
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

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 voulez pas autoriser le trafic https, mais seulement le trafic http (80), exécutez plutôt cette commande :

$ sudo ufw app info "Apache"

Maintenant, ouvrez votre navigateur web et allez à http://localhost/ ou http://IP-Address/.

Si vous voyez un écran semblable à celui ci-dessus, vous êtes prêt à démarrer. Le serveur Apache fonctionne !

2. Installer MariaDB

MariaDB est le remplacement direct du serveur de base de données MySQL.

Pour l'installer, exécutez :

$ sudo apt install mariadb-server mariadb-client

La version de MariaDB dans les dépôts officiels d'Ubuntu pourrait être obsolète. Si vous voulez installer la dernière version de MariaDB, ajoutez le dépôt officiel MariaDB pour Ubuntu et installez-le comme montré ci-dessous.

Tout d'abord, ajoutez le dépôt MariaDB et importez la clé comme indiqué ci-dessous.

$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 
$ sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sgp1.mirrors.linux-console.net/mariadb/repo/10.3/ubuntu bionic main'

Après avoir ajouté le dépôt, exécutez les commandes suivantes pour installer MariaDB.

$ sudo apt update
$ sudo apt install mariadb-server

Vérifiez si le service MariaDB fonctionne ou non en utilisant la commande :

$ sudo systemctl status mysql

Exemple de sortie :

● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-07-06 11:52:12 UTC; 2min 39s ago
Main PID: 3869 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2322)
CGroup: /system.slice/mariadb.service
└─3869 /usr/sbin/mysqld

Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: mysql
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: performance_schema
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: Phase 6/7: Checking and upgrading tables
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: Processing databases
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: information_schema
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: performance_schema
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: OK
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3975]: Checking for insecure root accounts.
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3979]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Mysql fonctionne !

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

Lors de l'installation de MariaDB, il définira le mot de passe pour le compte utilisateur administratif (root).

Si vous essayez de configurer le mot de passe manuellement en utilisant la commande :

$ mysql_secure_installation

Vous ne pouvez pas vous connecter pour définir le mot de passe. Vous verrez une erreur comme ci-dessous.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Enter current password for root (enter for none):

Pour résoudre ce problème, connectez-vous en tant qu'administrateur de base de données MySQL en utilisant la commande :

$ sudo mysql -u root

Après vous être connecté à l'invite MySQL, exécutez les commandes suivantes une par une.

use mysql;
update user set plugin='' where User='root';
flush privileges;
\q

Vous pouvez maintenant définir le mot de passe administrateur de la base de données en utilisant la commande :

$ mysql_secure_installation

Entrez le mot de passe password, et appuyez sur la touche ENTRÉE pour accepter les valeurs par défaut.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): # Press ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] # Press ENTER
New password: # Enter password
Re-enter new password: # Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] # Press ENTER
 ... 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? [Y/n] # Press ENTER
 ... Success!

By default, MariaDB 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? [Y/n] # Press ENTER
 - Dropping test database...
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
 ... Failed! Not critical, keep moving...
 - 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? [Y/n] # Press ENTER
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

C'est tout. Le mot de passe pour le compte utilisateur administratif de la base de données a été défini.

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 du document racine Apache. En général, 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, il s’agit de /var/www/html/.

Créez info.php dans le dossier racine d'apache comme indiqué ci-dessous.

$ sudo vi /var/www/html/info.php

Ajoutez les lignes suivantes :

<?php
phpinfo();
?>

Enregistrez et quittez le fichier. Redémarrez le service Apache pour que les modifications prennent effet.

$ sudo systemctl restart apache2

Maintenant, ouvrez votre navigateur web et tapez : http://IP-address/info.php dans la barre d'adresse.

Vous serez satisfait d'un écran comme celui-ci.

Installer des modules PHP

Pour améliorer la fonctionnalité de PHP, vous pouvez installer certains modules PHP supplémentaires.

Pour lister les modules PHP disponibles, exécutez :

$ sudo apt-cache search php- | less

Exemple de sortie :

Utilisez les flèches pour monter et descendre entre les résultats. Pour quitter les résultats, tapez q.

Pour trouver les détails de n'importe quel module PHP particulier, par exemple php-gd, exécutez :

$ sudo apt-cache show php-gd

Pour installer un module PHP, exécutez :

$ 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.

Félicitations ! Nous avons configuré avec succès la pile LAMP sur le serveur Ubuntu 18.04 LTS.

Lire aussi :

  • Installer le stack Apache, MySQL, PHP (LAMP) sur Ubuntu 18.04 LTS
  • Installer Nginx, MariaDB, PHP (Stack LEMP) sur 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 voilà, c'est tout pour le moment. Comme vous pouvez le voir, configurer une pile LAMP sur Ubuntu est absolument facile et simple. Même quelqu'un avec peu d'expérience peut facilement configurer une pile LAMP. D'autres bonnes choses arrivent. Restez à l'écoute !

Santé !