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.
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.
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.
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
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';
Il est désormais possible de se connecter à MariaDB en tapant la commande suivante.
mysql --user=root --password=mon-mot-de-passe
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
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.
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)