Programmer en php et mysql sous Ubuntu 18.04


Pour pouvoir programmer en php et mysql sur un ordinateur équipé du système d'exploitation ubuntu 18.04, il faut installer sur cet ordinateur : un serveur Apache, le langage php avec les modules nécessaires, une de base de donnée MySQL et l'outil phpmyadmin (pour pouvoir gérer les bases de données en mode graphique et non pas uniquement en mode console). On distingue les étapes suivantes :
1) Installation
-> 1.1) Mise à jour de Ubuntu
-> 1.2) Installation de Apache
-> 1.3) Installation de php
-> 1.4) Installation de MySQL
-> 1.5) Installation de phpmyadmin
2) utilisation de Apache, PHP, MySQL et phpMyadmin
3) Désinstallation complète de Apache, PHP, MySQL et phpMyadmin

1) INSTALLATION

1.1) Mettre jour Ubuntu

On met à jour les paquets existants de ubuntu
• sudo apt update
• sudo apt upgrade

1.2) Installer Apache

On installe Apache
• sudo apt install apache2

Pour vérifier la bonne installation de Apache, on tape la commande service --status-all qui affiche la liste de l'ensemble des services disponibles sur l'ordinateur et notamment la présence du service Apache.
• service --status-all

Pour démarrer ou arrêter le serveur Apache, on tape l'une des commandes suivantes dans le terminal:
• sudo systemctl start apache2 : pour démarrer Apache
• sudo /etc/init.d/apache2 restart : variante pour démarrer Apache
• sudo systemctl stop apache2 : : pour arrêter Apache
• sudo systemctl restart apache2 : pour redémarrer Apache

01

1.3) Installer php

Pour installer le langage PHP (langage de programmation fonctionnant avec le serveur Apache), on tape les commandes suivantes
• sudo apt install php
• sudo apt install php-mysql php-mbstring php-xml libapache2-mod-php php-gd

Pour vérifier la bonne installation du langage PHP, on tape
• php -m
qui affiche la liste des modules installés (dont ctype,.. date, ...gd, ...libxml, mbstring, mysqli, mysqlnd, PDO, pdo_mysql...).

05

On vérifie le bon fonctionnement d'une page index.php dans le répertoire /var/www/html
index.php dans /var/www/html /

03

04

1.4) 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 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 MySQL est bien installé on tape :
• sudo mysql --user=root

06

la réponse montre que MySQL 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';

07

Il est désormais possible de se connecter à MySQL en tapant la commande suivante.
• mysql --user=root --password=mon-mot-de-passe
ou
• mysql -p -u root
suivi de la saisie du mot de passe mysql précédemment choisi.

08

1.5) 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 MySQL. 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 suivi du nom d'utilisateur et du mot de passe créé précédemment.

09

2) UTILISATION

2.1) Utiliser Apache

• sudo systemctl start apache2 : pour démarrer Apache
• sudo /etc/init.d/apache2 restart : variante pour démarrer Apache
• sudo systemctl stop apache2 : pour arrêter Apache
• sudo systemctl restart apache2 : pour redémarrer Apache
• service --status-all : liste des services en cours d'exécution

2.2) Utiliser PHP

• php -m : pour voir la liste des modules php installés
index.php dans /var/www/html
http://127.0.0.1 ou http://localhost

2.3) Utiliser MySQL

Pour démarrer ou arrêter le service mysql, on utilise les commandes suivantes
• mysql -V : pour voir la version de MySQL installée
• sudo systemctl stop mysql : pour arrêter MySQL
• sudo systemctl start mysql : pour démarrer MySQL service
• sudo /etc/init.d/mysql restart : variante pour démarrer MySQL

Pour utiliser MySQL en mode terminal, on saisit dans le terminal :
• mysql -u root -p
puis on saisit le mot de passe mysql créé ci dessus (ct par exemple)

2.4) Utiliser phpmyadmin

Pour démarrer phpmydamin on saisit l'adresse suivante dans la barre d'adresse du navigateur (il faut que MySQL soit démarré pour que PhpMyadmin puisse fonctionner)
http://127.0.0.1/phpmyadmin ou http://localhost/phpmyadmin

3) DESINSTALLATION

On utilise la commande apt-get remove pour supprimer les programmes et apt-get purge pour supprimer les dépendances (nécessaire en cas de réinstallation...) On vérifie les désintallations de la même façon qu'en 1)

3.1) Désinstaller phpmyadmin

• sudo apt-get remove phpmyadmin
• sudo apt-get purge phpmyadmin

3.2) Désinstaller mysql

• sudo service mysql stop
• sudo apt-get --purge remove "mysql*"
• sudo rm -rf /etc/mysql/

3.3) Désinstaller php

• sudo apt-get remove php
• sudo apt-get purge php

3.4) Désinstaller Apache

• sudo apt-get remove apache2
• sudo apt-get purge apache2

4) ANNEXE

4.1) Phpmyadmin Warning sql.lib.php

Depuis phpmyadmin, on crée une nouvelle base de données ("test" par exemple) puis on ajoute une nouvelle table ("news" par exemple) dans cette base de données puis on insère des enregistrements dans cette table.

Lorsqu'on affiche le contenu de cette table, phpmyadmin effectue le travail mais affiche un message de warning.

10

Ce message indique que la ligne 613 du fichier sql.lib.php pose problème (ce fichier se trouve dans le répertoire /usr/share/phpmyadmin/libraries/ de phpmyadmin). En fait, il existe dans ce fichier une erreur dans l'écriture des parenthèses aux lignes 613 et 614...

Le site stackoverflow.com/ a clairement indentifié le défaut et indiqué le correctif pour pouvoir le corriger.

11

Pour pouvoir effectuer la correction à l'aide d'un éditeur de texte, il faut ouvrir les droits en écriture sur ce fichier. Pour cela on ouvre le terminal dans le répertoire /usr/ share/ phpmyadmin/ libraries/ puis on tape la commande
sudo chmod 777 sql.lib.php

12

11b

Ensuite, il ne faut pas oublier de redémarrer apache afin que la modification soit prise en compte
sudo service apache2 restart

4.2) Phpmyadmin Warning plugin_interface.lib.php

De même, si depuis phpmyadmin on essai d'exporter une base de donnée précédemment créée, phpadmin effectue le travail mais envoi un message de warning

Ce message indique que la ligne 551 du fichier plugin_interface.lib.php pose problème (ce fichier se trouve également dans le répertoire /usr/share/phpmyadmin/libraries/ de phpmyadmin). En fait, il existe dans ce fichier un petit défaut à la ligne 551...

13

Pour pouvoir effectuer la correction à l'aide d'un éditeur de texte, il faut ouvrir les droits en écriture sur ce fichier. Pour cela on ouvre le terminal dans le répertoire /usr/ share/ phpmyadmin/ libraries/ puis on tape la commande
sudo chmod 777 plugin_interface.lib.php

Dans ce fichier, on remplace la ligne 551 existante
if ($options != null && count($options) > 0) {
par la ligne suivante
if ($options != null && count((array)$options) > 0) {

La modification revient tout simplement à insérer (array) devant $options afin de forcer le type array

14

Ensuite, il faut redémarrer apache afin que la modification soit prise en compte
sudo service apache2 restart