Suite à mon précèdent billet, Rester simple, et surtout à celui de Cascador, j’ai décidé de continuer dans l’objectif que je m’étais fixé à l’ouverture initiale de ce blog en 2015 : Rester accessible.
Aussi je vais continuer comme à mes débuts, de tenter de faire passer des choses simples, non pas destinées aux grands manitous Linuxiens, mais à ceux qui débarquent et pataugent encore un peu. Comme moi donc 🙂
Article moins long que d’habitude et assez simple pour se mettre en jambes : Comment installer et utiliser Xampp sur Linux.

Pourquoi Xampp ?

Xampp est un logiciel open-source qui permet de déployer très rapidement un serveur local, sur une base LAMP (Linux, Apache, MySQL, Perl/Python/PHP).

Ce logiciel existe aussi bien sur Windows, Mac ou Linux, aussi si vous l’utilisiez déjà sur un autre OS (ou équivalent, genre Wamp), vous ne serez pas dépaysé.

Enfin, je dis local car, bien qu’il soit possible de le pousser en production, ce n’est pas du tout recommandé. Préférez à cela une vraie installation à la main depuis les dépôts, avec une vraie sécurité et des réglages plus fins.

Bref, quoi qu’il en soit, c’est largement suffisant pour qui veut développer des scripts web sur son PC.

Installation

Commencez par télécharger l’installateur sur le site d’ apachefriends.

Puis, allez dans le dossier de téléchargements, et ouvrez une console. On va tout d’abord rendre le fichier téléchargé exécutable :

chmod +x xampp-linux-*-installer.run 

Et on va lancer l’installation :

sudo ./xampp-linux-*-installer.run

Puis validez les étapes suivantes. De toutes façon, pas bien le choix, Xampp s’installera que vous le vouliez ou non dans /opt/lamp/ .

opt-lamp

Une fois finie, l’install vous proposera de lancer le Manager de Xampp en version graphique.

Manager Lamp

Vous avez à présent 2 façons de manager votre stack Lamp : La manière barbue, avec un shell, et ma façon, avec un beau panel graphique 🙂

Par le shell

Pour ça, rien de compliqué, il faut juste savoir ouvrir un terminal, et taper quelques commandes :

Pour démarrer toute la stack LAMP

sudo /opt/lampp/lampp start

A noter que pour toutes actions sur Xampp (démarrer, arrêter, redémarrer), il vous faudra les droits de super utilisateur (sudo).

Arrêter LAMP

sudo /opt/lampp/lampp stop

Redémarrer

sudo /opt/lampp/lampp stop

Raccourci

Si vous souhaitez raccourcir les commandes précédentes, vous pouvez créer un lien symbolique ainsi :

sudo ln -s /opt/lampp/lampp /usr/bin/lampp

Vous pourrez ensuite utiliser les commandes :

sudo lampp start

Ou stop, restart, etc.

Lancer le panel graphique

Sinon, si vous êtes nostalgique de la fenêtre à la Windows, vous pouvez contrôler Xampp depuis une interface qui ne vous apportera rien de plus que la console.
Pour cela, ouvrez un terminal et lancez :

sudo /opt/lampp/manager-linux-x64.run

Et vous devriez voir apparaître l’interface utilisateur :

Xampp GUI

Créer un lanceur

Personnellement, la console ça va bien, mais 2 clics de souris c’est plus rapide. Aussi j’ai cherché un peu et j’ai trouvé le moyen de lancer Xampp en GUI sans passer par une console, en ajoutant un raccourci (lanceur) sur le bureau ou dans le menu d’applications.

Créez donc un nouveau lanceur (avec MenuLibre ou Alacarte), et entrez-y les quelques informations suivantes :

En gros, l’éditeur de menus créera un fichier .desktop dans le dossier /home/votre_user/.local/share/applications avec pour contenu :

[Desktop Entry]
Name=Xampp
Exec=sh -c "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY sudo /opt/lampp/manager-linux-x64.run"
Comment=Serveur local
Terminal=false
Icon=/opt/lampp/htdocs/favicon.ico
Type=Application

Rien de particulier si ce n’est le Exec=sh -c ... qui va lancer le manager Lamp en interface graphique, sans ouvrir de shell (sh -c).

Dossier , permissions et utilisateur

Après l’installation, le répertoire où devront se trouver vos fichiers web (ou scripts) se trouve à /opt/lampp/htdocs .
Si déjà ce n’est pas très pratique, l’inconvénient est surtout que ce dossier appartient à l’utilisateur root, et donc que cela va engendrer des problèmes de permissions :

  • L’utilisateur “normal” n’a pas le droit de modifier ce dossier, ni d’ajouter ses scripts
  • En cas de modification des droits, si un des scripts créé un fichier, l’utilisateur courant ne pourra pas le modifier non plus.

La solution la plus évidente et simple est donc de modifier le serveur local afin de s’adapter à notre environnement, et surtout de ne pas être embêté avec les droits.

Dossier htdocs

Tout d’abord, on va modifier le répertoire racine par défaut (le /opt/lampp/htdocs).
Pour ma part, j’estime que le mieux est de créer un dossier dans notre home, à coté de ‘Documents’, ‘Images’ etc.
On créé donc un dossier que je nomme ‘www‘ :

mkdir $HOME/www

Puis on va indiquer à Apache d’utiliser ce dossier pour nos scripts web. Pour cela on va éditer le fichier/opt/lampp/etc/httpd.conf , qui est en gros le fichier de configuration de notre serveur Apache (httpd), en sudo bien sûr :

sudo gedit /opt/lampp/etc/httpd.conf

Et on va rechercher ces 2 lignes :

DocumentRoot "/opt/lampp/htdocs"
<Directory "/opt/lampp/htdocs">

Qu’on va modifier en y plaçant notre dossier précédemment créé. Pour ma part, ce sera :

DocumentRoot "/home/max/www"
<Directory "/home/max/www">

Daemon

A présent, vous pouvez d’ores et déjà créer des fichiers dans votre dossier ‘www‘, et Apache sera en mesure de les voir. Le problème :
Par défaut, l’utilisateur qui lance les scripts, et donc qui sera potentiellement amené à créer, modifier ou supprimer des fichiers dans votre dossier ‘www’, c’est l’utilisateur ‘daemon‘, du groupe ‘daemon‘.

Le hic, c’est que si vous ne touchez pas aux droits de votre fameux répertoire ‘/home/votre_user/www’, il n’en aura pas le droit. Et si vous les modifiez, c’est vous qui ne serez plus en mesure de modifier ou supprimer les fichiers que ce démon aura créé, parce que ce sera lui qui en sera le propriétaire. Vous me suivez ?

Du coup, le plus simple est de modifier à nouveau le fichier /opt/lampp/etc/httpd.conf, pour modifier cela.
Cherchez ces 2 lignes :

User daemon
Group daemon

Pour ma part, mon nom de connexion est ‘max’, et mon groupe est le même (c’est généralement le cas). Je modifie donc ainsi :

User max
Group max

Enregistrez et fermez le fichier, vous n’en avez plus besoin.
A partir de maintenant, quand votre serveur créera un fichier, vous en serez le propriétaire, et donc pourrez le modifier.

Si jamais vous l’aviez déjà lancé, redémarrez Lamp, sinon lancez-le pour que les modifications soient prises en compte.

Enfin, on va modifier les droits sur notre dossier ‘www‘ pour s’assurer qu’on puisse écrire, exécuter les scripts etc qui s’y trouvent. Les autres utilisateurs n’auront que le droit de lecture et d’exécution des fichiers :

chmod -R 755 $HOME/www

Le -R indique qu’il faut appliquer ces mêmes permissions de manière récursive, c’est à dire dans tous les dossiers/fichiers qui se trouvent dans le ‘www’.
Si vous voulez en savoir plus sur les permissions Linux, je vous invite à faire un tour sur le site leshirondellesdunet.

Utilisation

Il ne vous reste plus qu’à lancer votre serveur Apache, on va tester tout cela.
Dans le dossier ‘www‘, créez un fichier ‘index.html‘, et mettez-y le contenu que vous voulez.
En accédant à http://localhost, vous devriez voir le contenu de votre fichier html.

Erreurs courantes

Dans la pratique, vous ne devriez pas avoir d’erreurs 403 (accès interdit) si vous avez correctement modifié le fichier httpd.conf, ni pour accéder à vos scripts, ni à phpmyadmin.
Si c’est le cas, vérifiez les 2 étapes de la modification et assurez-vous d’avoir correctement exécuté le chmod sur votre répertoire Apache (votre www).

Cependant, il se peut que vous ayez un autre message.

Netstat

netstat est une commande de la librairie net-tools, et est utilisée par Xampp. Si jamais vous voyez ce message :

sudo /opt/lampp/lampp start                              
Starting XAMPP for Linux 7.4.6-0...
XAMPP: Starting Apache.../opt/lampp/share/xampp/xampplib: ligne 22: netstat : commande introuvable
/opt/lampp/share/xampp/xampplib: ligne 22: netstat : commande introuvable
ok.
XAMPP: Starting MySQL.../opt/lampp/share/xampp/xampplib: ligne 22: netstat : commande introuvable
ok.
XAMPP: Starting ProFTPD.../opt/lampp/share/xampp/xampplib: ligne 22: netstat : commande introuvable
ok.

C’est que la librairie n’est pas installée. Pour remédier à cela :

Installer net-tools sous Manjaro :

sudo pacman -S net-tools

Installer net-tools sur Ubuntu ou dérivée :

sudo apt-get install net-tools

Désinstaller Xampp

Enfin, si jamais Xampp ne vous satisfait pas, il est possible de le désinstaller (encore heureux). Tout son contenu tient dans le dossier /opt/lampp, alors il suffit de supprimer cela :

sudo rm -rf /opt/lampp

L’avantage d’avoir mis vos scripts dans le fameux ‘www’, c’est que vous ne les supprimerez pas en désinstallant Xampp 😉