Blog

Apache, MySQL, PHP sous Ubuntu 18.04 (LTS)

J’ai choisi arbitrairement d’installer un serveur LAMP (Linux, Apache, MySQL, PHP) en utilisant Ubuntu Desktop 18.04 LTS.

Avantages :

  1. l’interface graphique qui permet de faciliter les tâches d’administration
  2. La version LTS est supportée pendant 5 ans, ce qui lui confère une grande durée de vie.

Inconvénients :

  1. La version Serveur aurait été préférable, car les logiciels installés avec l’interface graphiques ne sont pas utiles dans le cadre d’un serveur LAMP.
  2. L’interface graphique cache les commandes utilisées à cette fin, ce qui ne permet pas un apprentissage optimal dans l’utilisation de l’OS

Installation d’UBUNTU 18.04 LTS

Dans le cadre de ce PPE, j’ai installé un machine virtuelle en utilisant VMWare Workstation 15.5. La démarche aurait été la même avec Virtualbox ou un autre logiciel de virtualisation.

Pour faciliter la suite, nous admettrons les données suivantes :

1. Le compte root est désactivé par défaut sous Ubuntu et donc que les commandes utilisant ce compte d’administration seront précédées par l’appel à la commande « sudo »

2. Le compte utilisé se nome « symfony », le mot de passe associé est « symfony » (Quelle originalité…).

L’installation se déroule sans incident, en utilisant les options par défaut de l’OS :

  • disque dur de 20 Go, partitionnné en SWAP (1,5 Go) et en EXT4 (20 Go, point de montage : /).
  • RAM de 2 Go, ce qui resqte malgré tout acceptable malgré la lourdeur de l’interface graphique (Attention à ne pas vampiriser la machine hôte).
  • Interface réseau en mode « BRIDGE » afin de profiter de l’accès au réseau Internet de la machine hôte.

Une fois l’installation terminée et la machine virtuelle redémarrée, il convient d’installer SSH afin d’administrer la machine virtuelle à distance.

Commande : apt install SSH

Installation des services nécessaires (LAMP)

Pour ce faire j’utilise l’outil en mode graphique « synaptic ». Dans l’outil de recherche, je cherche et valider les sélections nécessaires comme sous l’écran suivant :

Attention à ne pas oublier de cocher les sélection « Sélectionner pour installation »

Une fois que les packages ont été installés d’autres se sont manifestés afin de satisfaire les dépendances aux packages désirés. Cela donne un écran qui devrait ressembler à cela :

Choisir « Appliquer »

Attention : l’installation de phpmyadmin (optionnelle) demande quel serveur web configurer. Dans la mesure où nous utiliserons Apache 2, il convient de le sélectionner (voir écran ci-dessous).

Il est à noter que le serveur Web « Nginx », très populaire, n’est pas pris en compte ici. Dans ce cas, une installation ultérieure et manuelle est requise si vous utilisez ce serveur Web.

Une fois tout cela exécuté, il convient de vérifier le succès de cette installation.

Nous allons faire une double vérification :

  1. Vérification côté Serveur (sur la machine virtuelle),
  2. Vérification côté Client (sur un poste client classique quelque soit son OS).

Vérifications – Coté Serveur

Apache 2 fonctionne parfaitement bien…
MySQL répond parfaitement…
Enfin, PHP répond… Attention, la version 7 est importante pour « Composer »

Vérifications – côté client

http://<IP> doit donner l’écran ci-dessus…
Mysql fonctionne bien à travers une session SSH (avec putty)

Pour PHP, nous allons devoir vérifier de manière différente. En effet, il est possible de vérifier avec la commande « php -v » en utilisant un terminal SSH.

Mais pour le coup, faisons du PHP et demande à PHP de nous parler de lui… Il existe une fonction pour cela (phpinfo()). Nous allons écrire un code, que nous placerons dans le répertoire idoine…

Attention : le répertoire par défaut des pages HTML est « /var/www/html ».

Ce dossier n’est accessible que par l’utilisateur « root » et le groupe « root ».

Nous avons 2 possibilités :

1. Tout faire chez choix et copier les fichiers dans le bon répertoire..

On va créer le fichier « phpinfos.php » qui contient le code (simpliste) suivant, avec la commande :

"nano phpinfos.php"

Enfin, il suffira de le copier au bon endroit :

sudo cp /home/symfony/phpinfos.php /var/www/html/

Tout va bien… PHP répond bien

Attention : il est possible de faire la même chose directement dans le bon répertoire grâce à « sudo » :

sudo nano /var/www/html/phpinfos.php

2. L’utilisateur « symfony » va appartenir au groupe « root », ainsi il sera autorisé à écrire « dans /var/www/html » :

sudo usermod -aG root symfony

S’il est toujours impossible de créer des fichiers ou dossier dans le dossier /var/www/html, il conviendra de modifier les droits au dossier :

sudo chmod 775 /var/www/html -R

et de relancer une session (les droits sur la machines sont préparés à l’ouverture de session…

Création d’un utilisateur MySQL

Pour la suite de notre travail, nous avons besoin d’un utilisateur qui sera autorisé à se connecter au serveur MySQL, et ce, sans utiliser le comtpe d’administration « root ».

Pour cela, il suffit de se connecter au serveur MySQL :

et de créer l’utilisateur idoine (ici « Symfony », mot de passe « symfony » (voir écran)…

Une fois l’utilisateur créé, il faut lui donner des droits sur les bases de données et mettre à jour les privilèges (droits) de cet utilisateur…

Enfin, on peut quitter MySQL.

Pour vérifier, il convient de se connecter à distancer à MySQL en utilisant « PHPMyAdmin » en utilisant l’identifiant qu’on vient de créer :

symfony / symfony

Une fois authentifié, nous devons pouvoir voir les bases de données et faire tout ce qu’on désire dnas le serveur MySQL…

Tout fonctionne pour le mieux…

Nous pouvons donc passer à l’installation du framework Symfony…