Dernière modification le 08/08/2021


Installation du serveur Apache

Lancer l’installation du serveur Apache avec la commande :

sudo apt install apache2


Test du serveur Web

Par défaut, Apache place un fichier HTML de test dans le dossier Web qu’il est possible de visualiser depuis un navigateur, avec l’adresse IP du Raspberry :

Si cette page est affichée, le serveur apache est bien fonctionnel.


Installer PHP

Lancer l’installation du moteur PHP avec la commande :

sudo apt install php


Teste PHP

Changer de dossier:

sudo cd /var/www/html

Renommer le fichier “index.html” :

sudo mv index.html index.html.old

Créer un fichier “index.php” :

sudo nano index.php

Ajouter la ligne suivante :

<?php echo "bonjour le monde"; ?>

Enregistrer (crtl+o) et quitter (ctrl+x).
Dans un navigateur avec l’adresse IP du Raspberry, vérifier le message “bonjour le monde”.

Si "<?php echo "bonjour le monde"; ?>" au lieu de « bonjour le monde », redémarrer Apache :

sudo service apache2 restart

Recommencer le test.


Installer MySQL

Installer “Mariadb Server” et “PHP-MySQL” :

sudo apt install mariadb-server php-mysql

Pour activer le serveur “Mariadb” redémarrage du serveur Apache :

sudo service apache2 restart


Test du serveur MySQL

Vérifier si le serveur MySQL est bien fonctionnel, connectez vous au serveur avec le compte root (qui n’a pas de mot de passe) :

sudo mysql -u root

Si le serveur fonctionne les informations suivante s’affiche :

pi@raspberrypi:~ $ sudo mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 35
Server version: 10.0.28-MariaDB-2+b1 Raspbian testing-staging

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

Quitter avec la commande “exit” et la touche “Enter”.


Créer un mot de passe pour le ‘root’ dans MySQL

Le serveur mariadb utilise root comme compte administrateur, mais celui-ci n’a pas de mot de passe. PHPMyAdmin attend un utilisateur avec mot de passe !
Il convient alors de donner un mot de passe à l’utilisateur root.
Ouvre une fenêtre de terminal et connectez le serveur mysql :

sudo mysql -u root ↲
MariaDB [mysql]>

changer de base de données :

USE mysql; ↲
Database changed

Mettre à jour le mot de passe de l’utilisateur ‘root’ :

UPDATE user SET password=PASSWORD("LeMotDePasse") WHERE user="root"; ↲
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 changed: 1 Warning: 0

Vide la cache :

FLUSH PRIVILEGES; ↲
Query OK, 0 row affected (0.00 sec)


Installer PHPMyAdmin

Installation de l’interface d’administration “PHPMyAdmin”, avec la commande :

sudo apt install phpmyadmin

Pendant l’installation l’outil de configuration des paquets vous demande de spécifier la base de données à utiliser :

Sélectionner apache2 (barre d’espace) et ensuite “Ok”.

Ensuite nouvelle demande “Faut-il configurer la base de données de phpmyadmin avec dbconfig-common?” :

Répondre “Yes”.

A la question “Mot de passe de connexion MySQL pour phpmyadmin :” :

Veuillez fournir un mot de passe pour que phpmyadmin s'enregistre auprès du serveur de base de données. S'il est laissé vide, un mot de passe aléatoire aléatoire sera généré. Puis “Ok”.

Confirmer le mot de passe et “Ok”.


Lien vers phpmyadmin dans le serveur web

Effectuer un lien entre le dossier “phpmyadmin” et le dossier racine du serveur, avec la commande :

sudo ln -s /usr/share/phpmyadmin /var/www/html


Test de PHPMyAdmin

Depuis un navigateur taper l’adresse :

http://{AdresseIpRaspberry}/phpmyadmin/

Ce qui doit donner :

Tester la connexion ‘root’ {AdminMySQL}, avec son mot de passe {MySQLAdminPasswd}.


Si la connexion ‘root’ ne fonctionne pas dans PHPMyAdmin

Se connecter à une console MySQL :

sudo mysql -u root ↲
MariaDB [mysql]>

Confirmer les droits de super utilisateur à ‘root’ via la commande :

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'monmotdepasse' WITH GRANT OPTION;


Configuration PHP (Non effectué)

Il faut insérer les noms de host et de compte user par défaut avec le mot de passe mis en place dans le fichier ‘/etc/php/X.X/apache2/php.ini’ (X.X version de php), au niveau suivant :

; Default host for mysql_connect() (doesn't apply in safe mode).
mysqli.default_host ='localhost'
; Default user for mysql_connect() (doesn't apply in safe mode).
mysqli.default_user ='root'

; Default password for mysqli_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysqli.default_pw ='monmotdepasse'


Configuration phpmyadmin (Non effectué)

Il ne reste plus qu’à effectuer l’implantation des noms de host et de compte user par défaut avec le mot de passe dans le fichier ‘/usr/share/phpmyadmin/config.inc.php’, il est possible que le fichier n’existe pas, il faut alors le créer.
Ajouter les lignes suivantes:

$cfg['Servers'][$i]['host']='localhost';
$cfg['Servers'][$i]['user']='root';
$cfg['Servers'][$i]['password']='monmotdepasse';

Note : dans mon cas cette étape n’était pas nécessaire !


Ajouter un utilisateur dans MySQL

Personnellement j’ai ajouté un utilisateur et celui-ci avait accès à phpmyadmin sans problème.
Ouvre une fenêtre de terminal et connectez le serveur mysql :

sudo mysql -u root ↲
MariaDB [mysql]>

Créer l’utilisateur avec la commande suivante :

CREATE USER 'nouveau_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';

Attribuer les droits ‘GRANT’ au nouveau utilisateur :

GRANT ALL PRIVILEGES ON * . * TO 'nouveau_utilisateur'@'localhost';

Vide la cache :

FLUSH PRIVILEGES; ↲
Query OK, 0 row affected (0.00 sec)


Accès au répertoire www en SFTP (Non effectué)

Activer le protocol SSH. Voir Raspberry - Rapsbian SSH.
Il sera alors possible de faire une connexion SFTP avec le compte ‘pi’.
De base le répertoire est la propriété de ‘root’, donc pi ne peux écrire dans ce dossier. Il faut changer le propriétaire du dossier ‘www’ et des sous dossiers avec la commande suivante :

sudo chown -R pi /var/www

Maintenant ‘pi’ peux écrire dans le dossier ‘www’.

Pour simplifier l’accès en SFTP il est recommandé de mettre une adresse ip fixe, voir “Raspberry - Raspbian Configuration IP”’.


Changement de mot de passe MySQL (Non effectué)

Stopper MySQL:

systemctl stop mysql

Démarrer MySQL en mode “single-user”, ce qui bypasse la demande de mot de passe, avec la commande suivante :

mysqld_safe --skip-grant-tables &

Maintenant taper la commande “mysql” pour vous connecter :

mysql

Ensuite au prompt MySQL, changez le mot de passe ‘root’ en utilisant la commande (MySQL) suivante :

UPDATE mysql.user SET password=password("YourNewStrongPassword") WHERE user='root'; FLUSH PRIVILEGES; exit;

Maintenant stopper MySQL et redémarrer MySQL :

systemctl restart mysql


Connexion externe au serveur MySQL

Repérer la ligne :
bind-address = 127.0.0.1

Où ?
Fichiers possible en fonction de la distribution :

/etc/my.cnf

ou

/etc/mysql/mariadb.conf.d/50-server.cnf (ici le 12-0-2022)

...

Editer le fichier “50-server.cnf” :

sudo nano /etc/mysql/maria.conf.d/50-server.cnf

Commenter la ligne “bind-address = 127.0.0.1” :

# bind-address = 127.0.0.1

Enregistrez et quittez.
Redémarrer le serveur MySQL:

sudo systemctl restart mysql


Erreurs


Erreur 613 avec phpmyadmin

Lien Utile

Contexte
PHP 7.2, 7.3 et phpMyAdmin 4.6.6

Corriger
Problème dans le fichier sql.lib.php, en premier avant toute modification effectuer une copie de sécurité du fichier. L’emplacement du fichier est /usr/share/phpmyadmin/libraries/sql.lib.php.

sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak

Ensuite éditer le fichier avec nano,vim,leafpad,...:

sudo leafpad /usr/share/phpmyadmin/libraries/sql.lib.php

Rechercher la chaîne suivante :

(count($analyzed_sql_results['select_expr'] == 1)

Ajouter la parenthèses comme suit :

((count($analyzed_sql_results['select_expr']) == 1)

Enregistrer le fichier et quitter.


Erreur 551 Import/Export issues

Lien Utile

Contexte
PHP 7.2, 7.3 et phpMyAdmin 4.6.6

Corriger
Problème dans le fichier plugin_interface.lib.php losque vous voulez effectuer un import ou un export, en premier avant toute modification effectuer une copie de sécurité du fichier. L’emplacement du fichier est /usr/share/phpmyadmin/libraries/plugin_interface.lib.php.

sudo cp /usr/share/phpmyadmin/libraries/plugin_interface.lib.php /usr/share/phpmyadmin/libraries/plugin_interface.lib.php.bak

Ensuite éditer le fichier avec nano,vim,leafpad,...:

sudo leafpad /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

Rechercher la chaîne suivante :/

if ($options != null && count($options) > 0)

Si vous ne le trouvez pas rechercher :

if ($options != null && count($options) > 0)

Modifier la ligne comme suit :

if (! is_null($options) && count((array)$options) > 0) {

Enregistrer le fichier et quitter.


Liens