Raspbian - installer un serveur PHP et Mysql


Pour pouvoir programmer en PHP et MariaDB (système de gestion de base de données créé à partir du code source de MYSQL et édité sous licence GPL), il faut installer sur le raspberry PI :
1) Un serveur Apache;
2) Le langage de programmation PHP;
3) Le système de gestion de base de données MariaDB (anciennement MySQL);
4) L'outil de gestion de base de données PHPMyAdmin.

On utilise ici un Raspberry pi B3+ avec la version "Raspbian Stretch with desktop and recommended software" du 8 avril 2019 (fichier 2019-04-08-raspbian-stretch-full.zip) disponible sur le site de la fondation raspberry pi https://www.raspberrypi.org/

Ci-après on s'inspire des informations délivrées par la page https://raspbian-france.fr/ installer-serveur-web-raspberry-lamp qui traite de ce sujet de façon claire et complète

INSTALLER APACHE

Avant d’installer le serveur Appache, on met l'ordinateur à jour en utilisant les commandes upgrade et update. L'option update permet d'obtenir (de la part du serveur dépôt dont le nom est indiqué dans le fichier /etc/apt/sources.list) la liste à jour des fichiers qui sont disponibles dans ce dépôt.

L'option upgrade met à jour tous les paquets installés sur le système vers les dernières versions de paquets disponibles.

On tape les commandes suivantes pour mettre à jour le Raspberry Pi
sudo apt update
sudo apt upgrade
sudo apt update

On vérifie qu'Apache n'est pas déjà installé en tapant le commande dpkg -l | grep apache2 dpkg est la commande de base pour manipuler des paquets Debian sur le système. dpkg -l permet de lister l'ensemble des paquets installés sur le système grep est un filtre permettant de limiter la liste au nom apache 2 passé en paramètre

Si Apache 2 est déjà installé on obtient le résultat suivant.

01

Si le serveur Apache n'est pas déjà installé, on tape la commande suivante pour l'installer.
sudo apt install apache2

Une fois l'installation effectuée, on modifie les droits d'accès au dossier /var/www/html/. On fait également en sorte (à l'aide de la commande chown) que ce dossier devienne la propriété de l'utilisateur pi (et non plus de root) et du groupe ww-data. En effet, c'est dans ce répertoire qu'on placera nos pages php écrite en tant qu'utilisateur pi. Il est donc nécessaire qu'on possède les droits d'accès correspondants

sudo chown -R pi:www-data /var/www/html/
sudo chmod -R 770 /var/www/html/

L'utilisateur pi et le groupe www-data possède ainsi tous les droits sur ce répertoire et sur les fichiers qu'il contient (lecture, écriture, exécution soit rwx ou 7) les autres utilisateurs n'ont aucun droit sur ce répertoire et sur les fichiers qu'il contient (soit --- ou 0)

On peut également ajouter l'utilisateur pi au groupe “www-data” en tapant la commande suivante
sudo usermod -a -G www-data pi

Il est souhaitable à ce stade de rebooter le raspberry afin que ces changements soient pris en compte.

A ce stade on ne peut pas tester le fonctionnement du serveur Apache avec un programme php puisque le langage php n'est pas encore installé. Mais on peut tester le bon fonctionnement du serveur Apache en exécutant le fichier index.html qui a été automatiquement placé dans le répertoire /var/www/html lors de l'installation.

Pour cela on saisit l'adresse http://127.0.0.1 de ce fichier dans la barre d'adresse du navigateur Chromium pour le faire fonctionner.

02

remarque : Si on met ce fichier index.html (ou tout autre fichier html) dans un répertoire /var/www/html/test/ il faudra naturellement saisir http://127.0.0.1/test/ pour exécuter ce fichier.

Pour pouvoir éxécuter des pages php il faut d'abord installer le langage php.

INSTALLER PHP

Pour installer PHP on tape la commande suivante dans le terminal. (mbstring est une extension de php qui permet de gérer les chaines de caractères dont les caractères sont codés sur plusieurs octets)
sudo apt install php php-mbstring

Une fois l'installation terminée, on va dans le dossier /var/www/html/, on renomme le fichier existant index.html en index-sauv.html par exemple et on place un fichier index.php contenant c'est un essai par exemple

on saisit l'adresse « http://127.0.0.1 » dans la barre d'adresse de Chromium et la page index.php doit s'afficher.

03

INSTALLER MYSQL

Le paquet mysql-server permet d'installer le serveur de bases données MySQL.
Le paquet php-mysql permet d'installer les modules permettant d'utiliser MySQL ou MariaDB avec PHP.

Pour installer ces paquets on tape la commande suivante dans le terminal de commande
sudo apt install mysql-server php-mysql

Pour vérifier que Le SGBD MariaDB est bien installé on tape
sudo mysql --user=root

04

la réponse montre que MariaDB est opérationnel.

On tape les commandes suivantes qui permettent de:
1) supprimer le compte utilisateur root@localhost;
2) créer le compte utilisateur root@localhost associé au mot de passe de notre choix;
3) accorder tous les droits à cet utilisateur.

DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY 'mon-mot-de-passe';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';

05

Il est désormais possible de se connecter à MariaDB en tapant la commande suivante.
mysql --user=root --password=mon-mot-de-passe

06

INSTALLER PHPMYADMIN

PHPMyAdmin, offre une interface graphique qui permet de gérer les bases de données de façon plus facile qu'en mode console MariaDB. On installe phpmyadmin en tapant la commande suivante.
sudo apt install phpmyadmin

Le package dbconfig-common fournit une interface Debian standard permettant de configurer les paramètres de la base de données. Cependant, on a déjà défini le nom d'utilisateur (root) et le mot de passe (mon-mot-de-passe) en mode console MariaDB. On répond donc non, pendant l'installation, à la question nous demandant si on veut utiliser dbconfig-common

07

On teste le fonctionnement de phpmyadmin en saisissant http://127.0.0.1/phpmyadmin dans la barre d'adresse de chromium. Si on obtient aucune réponse cela peut venir du fait que phpmyadmin se soit installé dans un autre dossier. Si phpmyadmin s'est installé dans le dossier /usr/share/phpmyadmin par exemple, on tape la commande suivante.
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

On teste à nouveau le fonctionnement de phpmyadmin en saisissant http://127.0.0.1/phpmyadmin dans la barre d'adresse de chromium. Si on obtient le message suivant, cela provient du fait qu'il est nécessaire de redémarrer le serveur Apache pour que les choses fonctionnent correctement.

08

Pour cela on tape
sudo systemctl restart apache2

Et normalement, cette fois-ci quand on saisit http://127.0.0.1/phpmyadmin dans la barre d'adresse de chromium, phpmyadmin doit démarrer. le nom d'utilisateur est root et le mot de passe est celui qu'on a choisit précédemment (les initiales de notre nom par exemple)

09