Arch Linux : Installer un serveur LAMP
Table des matières
LAMP est un acronyme :
Avec LAMP, on peut donc mettre en place un serveur Web, hébergeant un site web dynamique écrit en PHP, tout en allant chercher des données dans une base MySQL ou maintenant MariaDB, son fork.
Nous allons voir comment mettre cela en oeuvre sur Arch Linux.
Même si j'ai rédigé ce tuto pour un besoin particulier, je ne conseille évidemment pas d'utiliser un serveur Web sous Arch Linux.
Il n'y a aucune maîtrise de l'évolution de version de PHP, ni du serveur web.
Une "simple" mise à jour du système peut entraîner une mise à jour majeure d'un composant nécessitant une intervention manuelle supplémentaire dans les fichiers de configuration.
Premièrement, on met à jour notre système :
Dans un premier temps, on installe le serveur Web Apache :
On active et démarre le service :
On peut tester le bon fonctionnement : http://ip_du_serveur
On remarquera que par rapport à une base red hat ou Debian, pas de page par défaut mais une arborescence vide.
Les fichiers du serveur web sont dans un emplacement non standard : /srv/http vérifiable via :
Sous Arch Linux, il y a plusieurs solutions pour installer PHP. On privilégiera l'installation et l'utilisation de php-fpm (comme j'ai l'habitude sur les base red hat) :
Sous Arch, on doit paramétrer beaucoup d'éléments à la main. Activons les modules proxy et FastCGI :
Décommenter les lignes :
A la fin du fichier, ajouter une référence à notre fichier de configuration de php-fpm :
Créons notre fichier de config. Il indiquera à Apache de contacter php-fpm si une page PHP est appelée :
On active et démarre le service associé :
On redémarre notre serveur web pour prendre en compte la configuration précédemment modifiée :
On peut faire un petit test en générant une page info.php récapitulant toutes les informations de configuration de PHP (à supprimer par la suite) :
Si vous avez besoin demodules supplémentaires, voici comment rechercher ce qui est disponible dans les dépôts :
On installe le moteur de base de données MariaDB :
Comme avec PHP, de la configuration manuelle est nécessaire.
Installons la base de données de base via :
On peut enfin activer et démarrer le moteur de base de données :
Puis procéder à l'initialisation de celui-ci :
Si on souhaite interroger notre base de données avec PHP, quelques manipulations supplémentaires sont nécessaires :
D'abord éditons le fichier de config de PHP :
Décommenter les lignes permettant d'activer les extensions associées :
Puis on redémarre php-fpm :
Pour tester le bon fonctionnement, je vous propose une simple page PHP à créer :
On mettra ceci dedans, pour interroger notre base de données et afficher la liste des comptes créés :
Pour plus d'infos, sur la syntaxe PHP : https://www.linuxtricks.fr/wiki/php-exemples-avec-pdo-pour-interroger-une-base-mariadb
Introduction
LAMP est un acronyme :
- Linux : Le système d'exploitation
- Apache : Le serveur Web
- MySQL / MariaDB : Le serveur de Base de données
- PHP : Le langage de script
Avec LAMP, on peut donc mettre en place un serveur Web, hébergeant un site web dynamique écrit en PHP, tout en allant chercher des données dans une base MySQL ou maintenant MariaDB, son fork.
Nous allons voir comment mettre cela en oeuvre sur Arch Linux.
Même si j'ai rédigé ce tuto pour un besoin particulier, je ne conseille évidemment pas d'utiliser un serveur Web sous Arch Linux.
Il n'y a aucune maîtrise de l'évolution de version de PHP, ni du serveur web.
Une "simple" mise à jour du système peut entraîner une mise à jour majeure d'un composant nécessitant une intervention manuelle supplémentaire dans les fichiers de configuration.
Prérequis
Premièrement, on met à jour notre système :
Code BASH :
pacman -Syyu
Serveur Web
Dans un premier temps, on installe le serveur Web Apache :
Code BASH :
pacman -S apache
On active et démarre le service :
Code BASH :
systemctl enable --now httpd
On peut tester le bon fonctionnement : http://ip_du_serveur
On remarquera que par rapport à une base red hat ou Debian, pas de page par défaut mais une arborescence vide.
Les fichiers du serveur web sont dans un emplacement non standard : /srv/http vérifiable via :
Code BASH :
grep DocumentRoot /etc/httpd/conf/httpd.conf
Interfacer PHP FPM
Sous Arch Linux, il y a plusieurs solutions pour installer PHP. On privilégiera l'installation et l'utilisation de php-fpm (comme j'ai l'habitude sur les base red hat) :
Code BASH :
pacman -S php-fpm
Sous Arch, on doit paramétrer beaucoup d'éléments à la main. Activons les modules proxy et FastCGI :
Code BASH :
nano /etc/httpd/conf/httpd.conf
Décommenter les lignes :
Code BASH :
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
A la fin du fichier, ajouter une référence à notre fichier de configuration de php-fpm :
Code BASH :
Include conf/extra/php-fpm.conf
Créons notre fichier de config. Il indiquera à Apache de contacter php-fpm si une page PHP est appelée :
Code BASH :
nano /etc/httpd/conf/extra/php-fpm.conf
Code TEXT :
DirectoryIndex index.php index.html <FilesMatch \.php$> SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/" </FilesMatch>
On active et démarre le service associé :
Code BASH :
systemctl enable --now php-fpm
On redémarre notre serveur web pour prendre en compte la configuration précédemment modifiée :
Code BASH :
systemctl restart httpd
On peut faire un petit test en générant une page info.php récapitulant toutes les informations de configuration de PHP (à supprimer par la suite) :
Code BASH :
echo "<?php phpinfo(); ?>" > /srv/http/info.php
Si vous avez besoin demodules supplémentaires, voici comment rechercher ce qui est disponible dans les dépôts :
Code BASH :
pacman -Ss php-
Moteur de base de données MariaDB
On installe le moteur de base de données MariaDB :
Code BASH :
pacman -S mariadb
Comme avec PHP, de la configuration manuelle est nécessaire.
Installons la base de données de base via :
Code BASH :
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
On peut enfin activer et démarrer le moteur de base de données :
Code BASH :
systemctl enable --now mariadb
Puis procéder à l'initialisation de celui-ci :
Code BASH :
mysql_secure_installation
PHP et MariaDB
Si on souhaite interroger notre base de données avec PHP, quelques manipulations supplémentaires sont nécessaires :
D'abord éditons le fichier de config de PHP :
Code BASH :
nano /etc/php/php.ini
Décommenter les lignes permettant d'activer les extensions associées :
Code BASH :
extension=pdo_mysql extension=mysqli
Puis on redémarre php-fpm :
Code BASH :
systemctl restart php-fpm
Pour tester le bon fonctionnement, je vous propose une simple page PHP à créer :
Code BASH :
nano /srv/http/sql.php
On mettra ceci dedans, pour interroger notre base de données et afficher la liste des comptes créés :
Code PHP :
<?php $db="mysql"; $dbhost="localhost"; $dbport=3306; $dbuser="root"; $dbpasswd="root"; $pdo = new PDO('mysql:host='.$dbhost.';port='.$dbport.';dbname='.$db.'', $dbuser, $dbpasswd); $pdo->exec("SET CHARACTER SET utf8"); $stmt = $pdo->prepare("SELECT * FROM mysql.user"); $stmt->execute(); $res = $stmt->fetchAll(); foreach ( $res as $row ) { echo $row['User']."<br>"; } ?>
Pour plus d'infos, sur la syntaxe PHP : https://www.linuxtricks.fr/wiki/php-exemples-avec-pdo-pour-interroger-une-base-mariadb