Installation de LAMP (serveur web) sous Ubuntu 20.04
Mise à jour dépôts
Mise à jour de la liste des fichiers disponibles dans les dépôts APT présents dans le fichier de configuration /etc/apt/sources.list :
sudo apt update
Installation des paquets
Installation d'Apache HTTP Server (serveur HTTP), de MySQL ou bien de MariaDB (gestionnaire de base de données) et de PHP (langage de programmation) avec son module pour communiquer avec MySQL :
sudo apt install apache2 php libapache2-mod-php mysql-server php-mysql
sudo apt install apache2 php libapache2-mod-php mariadb-server php-mysql
Installation de modules complémentaires qui peuvent être nécessaires :
sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
Apache HTTP Server (serveur HTTP)
Autoriser le trafic sur le port 80 pour le pare-feu :
sudo ufw app list
sudo ufw allow in "Apache"
sudo ufw status
Vérification de l'installation d'Apache en rentrant dans la barre d'adresse du navigateur :
localhost
Création de la page info.php détaillant toutes les spécificités de notre environnement PHP :
cd /var/www/html
sudo nano info.php
Ajouter dans le fichier précédemment créé le code PHP suivant :
<?php
phpinfo();
?>
Visualisation du fichier info.php en rentrant dans la barre d'adresse du navigateur :
localhost/info.php
MySQL (gestionnaire de base de données)
Avec MySQL depuis Bionic 18.04, et MariaDB depuis Xenial 16.04, l'authentification de l'utilisateur root de MySQL se fait au moyen du plugin auth_socket, donc avec sudo (root du système et non root de MySQL) :
sudo mysql -u root -p
show databases;
exit;
Création d'une base test avec la table membres contenant les champs id et pseudo :
sudo mysql -u root -p
CREATE DATABASE test CHARACTER SET 'utf8';
CREATE TABLE test.membres
(
id INT PRIMARY KEY NOT NULL,
pseudo VARCHAR(250)
);
INSERT INTO test.membres VALUES ('1','carmen');
show databases;
exit;
phpMyAdmin
Installation de phpMyAdmin en sélectionnant apache2 :
sudo apt-get install phpmyadmin
Ajouter phpMyAdmin à Apache grâce au fichier apache2.conf :
sudo nano /etc/apache2/apache2.conf
Ajouter à la fin du fichier apache2.conf :
# Include phpMyAdmin
Include /etc/phpmyadmin/apache.conf
Redémarrer Apache :
sudo service apache2 restart
sudo service apache2 status
L'authentification de l'utilisateur root de MySQL au moyen du plugin auth_socket ne permet pas de se connecter avec phpMyAdmin. Il nous faut donc pour cela créer un utilisateur super-administrateur ayant les pleins pouvoirs dans MySQL :
sudo mysql -u root -p
CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON * . * TO 'my_user'@'localhost';
FLUSH PRIVILEGES;
QUIT;
Accéder et se connecter à phpMyAdmin en rentrant dans la barre d'adresse du navigateur :
localhost/phpmyadmin
PHP (langage de programmation)
Création d'une page PHP qui se connecte à la base de données test :
cd /var/www/html
sudo nano test.php
Ajouter dans le fichier précédemment créé le code PHP suivant :
<?php
//Connexion à la base de données en PDO :
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8',
'user','password');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$membres = $bdd->query('SELECT * FROM membres');
?>
<?php while($membre = $membres->fetch()) { ?>
- <?php echo $membre['id'] ?> : <?php echo $membre['pseudo'] ?>
<?php } ?>
Visualisation de la table membres en rentrant dans la barre d'adresse du navigateur :
localhost/test.php
Prioriser les fichiers PHP au fichier HTML grâce au fichier dir.conf
sudo nano /etc/apache2/mods-enabled/dir.conf
Placer dans le fichier précédent index.php en première position :
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Autoriser Apache à montrer les erreurs grâce au fichier php.ini :
sudo nano /etc/php/7.4/apache2/php.ini
Dans le fichier précédent retirer les points-virgules et vérifier que :
error_reporting = E_ALL
display_errors = On
Auteur : Josselin Fatah-Roux
Commentaires
Vous n'êtes pas connecté pour pouvoir participer !