Accueil > Le développement > La formation > Les Outils Numériques > Les lignes de commande sous macOS > Les lignes de commande - Leçon 4 - Installer la pile LAMP

Les lignes de commande - Leçon 4 - Installer la pile LAMP

samedi 30 septembre 2023, par Vincent CALLIES

Après avoir après à ouvrir le Terminal sous macOS (leçon 1), à l’utiliser et à faire un script Shell (leçon 2), nous avons appris à installer une solution telle que ImageMagick avec ses dépendances en utilisant le gestionnaire de paquets Homebrew (leçon 3).

Certaines des applications Web open source les plus utilisées actuellement, comme par exemple WordPress, Drupal ou SPIP s’exécutent sur LAMP et s’installent avec Composer. La pile LAMP a été l’une des premières piles logicielles open source pour le Web. LAMP est l’acronyme de Linux, Apache, MySQL et PHP. Ensemble, ils constituent un ensemble de logiciels éprouvés pour la création d’applications Web performantes. Quoi de plus naturel, dans cette formation, que d’apprendre à utiliser la pile LAMP en ligne de commande ! Et nous verrons comme installé Composer, qui n’est - ni plus ni moins - qu’un concurrent de Homebrew.

1. Démarrer le serveur HTTP Apache en ligne de commande

1.1. le serveur natif sur macOS

Nous avons un serveur HTTP nativement installé sur macOS, c’est le serveur Apache. Pour connaitre sa version, entrer la ligne de commande suivante :
httpd -v

Mais si l’on va sur Safari et que l’on entre l’URL http://localhost pour voir ce serveur local, il ne se passera rien. Il faut démarrer le serveur préalablement.
C’est la commande apachectl qui permet de le faire. Une aide peut être obtenue sur cette commande via la ligne de commande :
apachectl -help

Pour démarrer le serveur Apache, entrer la ligne de commande ci-dessous (Le système d’exploitation vous demandera de confirmer votre autorisation pour une telle démarche en sollicitant votre mot de passe) :
sudo apachectl start
L’arrêt du serveur se fait par :
sudo apachectl stop

Si l’on va sur Safari et que l’on entre l’URL http://localhost pour voir le serveur local dument démarré, il affichera « It works ! » [en], ce qui veut dire, en anglais, Cela marche !. C’est le fichier index.html.en qui affiche ce message en HTML. Vous le trouverez avec le Finder dans Bibliothèque/WebServer/Documents. Mais ne cédons pas à la facilité.

Tentons de retrouver en ligne de commande le fichier index.html.en en utilisant la commande find. Il faut tout d’abord se placer à la racine pour accéder aux fichiers system.
depuis le répertoire utilisateur, remonter à la racine par différentes commandes successives :
cd ..
Puis, arrivé à la racine, tapez :
cd Library/WebServer/Documents
Puis tapez
sudo vim index.html.en
Modifier « It works ! » par « We are in ./Library/WebServer/Documents »

1.2. Installer et démarrer un nouveau serveur

Vous pouvez souhaitez installer un serveur avec Homebrew en plus du serveur existant, pour une multitude de raisons dont celle de pouvoir mettre à jour le serveur facilement et automatiquement, ou encore pour ne pas vous soucier des changements induits par les mises à jour de MacOs sur l’application native.

L’installation d’Apache se fait par la ligne de commande suivant :
brew install httpd

Par défaut, le serveur httpd installé par Homebrew utilise un port différent de celui de l’installation standard de macOS. Ainsi il est possible d’utiliser les deux en même temps.

Vous pouvez appeler votre nouveau serveur via l’URL
http://localhost:8080
Vous pouvez aussi l’appeler en ligne de commande, et la console vous indiquera alors le code HTML non interprété :
curl localhost:8080

Le port à utiliser par défaut est indiqué dans le fichier de configuration. Si vous éditez ce fichier avec une application en ligne de commande (ici vim)
vim /opt/homebrew/etc/httpd/httpd.conf
vous devriez voir une ligne indiquant :
Listen 8080

2. Installer le gestionnaire de paquets Composer

Composer est un gestionnaire de paquets utilisé assez universellement. Il est écrit en php. Homebrew vous permet de l’installer, avec ses dépendances, dont le php. Vous pourrez utiliser les deux gestionnaires de paquets parallèlement, Homebrew et Composer.

Une simple ligne de commande vous permet d’installer composer avec l’aide de son concurrent Homebrew.
brew install composer

Homebrew installera les dépendances de composer : apr, ca-certificates, openssl@3, apr-util, argon2, aspell, autoconf, libunistring, libidn2, libnghttp2, libssh2, openldap, rtmpdump, curl, unixodbc, freetds, libavif, gd, gmp, icu4c, krb5, libpq, libsodium, libzip, oniguruma, readline, sqlite, tidy-html5 et php.

Php est le langage dans lequel est écrit Composer. Pour mémoire, Homebrew est écrit en Ruby. Pour connaitre la version de Php installée, la ligne de commande suivante peut être saisie :
php --version

Php est lui-même installé avec des dépendances appelées modules. Pour connaitre les modules installés avec php, vous pouvez passer la ligne de commande suivante :
php -m

Vous remarquerez que Homebrew est capable de mutualiser les dépendances. C’est un des précieux avantages des gestionnaires de paquets. Dans le descriptif de l’installation de Composer, certains éléments précédemment installés avec ImageMagick dans la leçon 3 sont déclarés comme « Already downloaded » [en] c’est à dire déjà téléchargés.

Note : Si l’on prend le temps d’un bilan, macOS est un système Linux que nous avons appris à utiliser avec le Terminal. Nous avons un serveur Apache nativement sur notre ordinateur et le PHP maintenant installé avec Composer. Pour avoir une pile LAMP complète, il nous manque MySQL.

3. Installer un système de gestion de bases de données relationnelles : MySQL

3.1 Installer MySQL avec Homebrew

L’installation du serveur de bases de données se fera très simplement, avec Homebrew, en saisissant la ligne de commande :
brew install mysql

3.1 Démarrer et arrêté le serveur MySQL

On lance le serveur :
mysql.server start
On le stoppera lorsque nécessaire avec la ligne de commande :
mysql.server stop

En attendant, et d’ailleurs Homebrew vous le rappelle, il faut sécuriser l’installation :
mysql_secure_installation

L’installation vous posera différentes questions.

Note : Homebrew peut avoir installer un exécutable (homebrew.mxcl.mysql.plist) au lancement de votre ordinateur. Cet exécutable lance mysqld_safe qui va à son tour lancer ou arrêter le serveur de bases de donnée en même temps que le démarrage ou l’extinction de votre ordinateur. Si vous souhaitez désactiver mysqld_safe, vous pouvez aller dans l’application Réglages système | Général | Ouverture et désélectionner mysqld_safe. Vous aurez à lancer ou éteindre le serveur de bases de donnée vous-même.
Pour en savoir plus : dev.mysql.com 4.3.2 mysqld_safe — MySQL Server Startup Script [en]

3.1 se connecter à la console mysql et travailler

On peut ensuite se connecter à mysql en lui spécifiant l’utilisateur avec le paramètre -u.
mysql -u root -p

Note : Si vous souhaitez fournir votre mot de passe sur la ligne de commande après l’option -p (pour password ce qui veut dire mot de passe en anglais), vous devez le faire sans espace intermédiaire (par exemple, en tant que -pmotdepasse, et non en tant que -p motdepasse). Cependant, pour des raisons de sécurité, il n’est pas recommandé de mettre votre mot de passe sur la ligne de commande. Il est préférable de la saisir à l’invitation de la console.

Pour connaitre les bases de données existantes, vous pouvez entrer la commande suivante :
SHOW DATABASES;

Travailler avec MySQL c’est aussi faire face aux erreurs que l’on commettra et donc aller regarder les journaux (dit log en anglais) des différentes erreurs. Les principaux journaux sont les suivants :

Nom du journalcli MySQLUtilitéActivation
log_error show variables like 'log_error%'; Pour les erreurs activé
general_log_file show variables like 'general_log%'; pour les requêtes à activer
slow_query_log_file show variables like 'slow_query_log%'; pour les requêtes anormalement lente à activer

La commande pour connaitre le répertoire des logs est la suivante :
SELECT @@datadir;

après avoir quitté la console mysql par la commande exit, vous pouvez vous positionner sur le répertoire pertinent avec la commande :
cd $HOMEBREW_REPOSITORY/var/mysql

Pour activer dès le démarrage les logs general_log et slow_query_log, éditer la configuration de mysql :
vim $HOMEBREW_REPOSITORY/etc/my.cnf
La lecture de ce fichier vous permettra de constater que Homebrew a sécurisé votre serveur n’autorisant que les connexions venant de localhost.
Vous pouvez ajouter les lignes suivantes pour y activer le log general_log et slow_query_log

general_log = 1
slow_query_log = 1

Pour en savoir plus sur les logs : dev.mysql.com 5.4 MySQL Server Logs [en]

Conclusion

Le SYNPER donne des formations d’initiation à la programmation. Les articles de cette rubrique accompagnent une formation sur les lignes de commande avec macOS.

  • Un premier article qui vous a appris à passer des commandes sous Linux.
  • Un second article vous a appris à regrouper ces commandes et les exécuter depuis un fichier.
  • Le troisième article vous a appris à appeler un dépôt et procéder à une installation par paquets.
  • Le présent article vous a appris à utiliser la Pile LAMP en ligne de commande. C’est une étape très importante. Cette Pile est grandement utilisée.