XAMPP : un serveur LAMP complet
Le paquet open source XAMPP est un serveur LAMP complet et pré-configuré. Il contient :
- un serveur HTTP Apache 2,
- une base de données MariaDB avec phpMyAdmin,
- PHP,
- Perl,
- et un serveur FTP : ProFTPD
- et de nombreuses bibliothèques
XAMPP est très pratique pour créer un serveur local de développement : il fournit au néophyte un serveur de test en quelques clics, sans avoir à choisir ni à connaître les différents services à installer.
Il est multi-plateforme et existe donc pour Linux, Windows et OS X.
Tout est installé de façon conjointe avec les emplacements et autorisations qui vont bien.
- XAMPP n'est pas sécurisé par défaut et ne convient pas à un environnement de production, donc à moins de travailler sur des exercices, l'environnement sera très différent entre développement et production, ce qui limite l'intérêt de XAMPP, qui ne sera en particulier d'aucune utilité si on cherches à s'auto-héberger ou à gérer un VPS.
- XAMPP ne propose pas une configuration standard donc on trouvera moins de documentation et une communauté moins importante pour aider en cas de problème. La documentation officielle de XAMPP est en particulier quasi inexistante.
- XAMPP se dit open source mais les seules sources disponibles simplement concernant Linux sont un simple fichier run. Impossible donc de savoir exactement ce que fait le script d'installation.
Dans ces conditions, mieux vaut généralement installer la pile LAMP telle qu'elle a été conçue officiellement pour Ubuntu.
Cependant, le serveur XAMPP installe des valeurs sûres, celles décrites en introduction.
Les sites qui fonctionnent sur XAMPP fonctionneront a priori avec n'importe quelle pile LAMP (à condition d'avoir des versions compatibles des logiciels, en particulier celle de PHP et de ses modules) : il suffit de copier le répertoire concerné et de déplacer la ou les bases de données avec leurs utilisateurs.
Si vous êtes curieux·euse, vous pouvez modifier XAMPP moyennant quelques « bidouilles » et une bonne connaissance de sa structure.
Mais vous en apprendrez davantage et serez assuré·e d'un bien meilleur niveau de sécurité en mettant en place un serveur LAMP et un accès SFTP.
Pré-requis
- Une connexion internet
Installation
Tout XAMPP tient en un seul répertoire : /opt/lampp.
Son installation est donc d'une extrême simplicité (de même que sa désinstallation = supprimer le répertoire /opt/lampp).
Sur la page https://www.apachefriends.org/fr/index.html, choisissez la version 32 ou 64 bits selon votre système d'exploitation Linux.
Modifiez les autorisations du programme d'installation et lancez-le en mode super-utilisateur :
cd répertoire/de/téléchargement/ sudo chmod +x xampp-linux-*-installer.run sudo ./xampp-linux-*-installer.run
Acceptez toutes les étapes en cliquant sur Next ; pour la dernière fenêtre, cliquez sur Finish → le panneau de contrôle de XAMPP démarre :
Ouvrez l'onglet Manage Servers et cliquez sur Start All pour démarrer les serveurs :
sudo ln -s /opt/lampp/lampp /etc/init.d/lampp sudo update-rc.d lampp defaults
Au redémarrage, XAMPP sera démarré. Le répertoire htdocs est la racine du serveur.
Configuration
Aliases suggérés
Pour vous simplifier la vie, créez des aliases en éditant ou créant le fichier ~/.bash_aliases pour y écrire :
- ~/.bash_aliases
# Alias pour permettre sudo [un_alias] alias sudo='sudo ' # Aliases pour Xampp alias lampp='/opt/lampp/lampp' alias ctlampp='/opt/lampp/manager-linux-x64.run' # Aliases pour proftp alias ftpasswd='/opt/lampp/bin/ftpasswd'
On obtient les raccourcis suivants :
Description | Raccourci | Effet |
---|---|---|
lampp | sudo lampp … | → sudo /opt/lampp/lampp … |
panneau de contrôle | sudo ctlampp | → sudo /opt/lampp/manager-linux-x64.run |
gérer les utilisateurs de proftpd | sudo ftpasswd … | → sudo /opt/lampp/bin/ftpasswd … |
L'alias sudo='sudo ' permet d'utiliser les autres aliases en sudo, comme avec
sudo lampp start
Activez les aliases par :
source ~/.bashrc
Sécurisation
Pour changer les mots de passe de MySQL, MySQL/phpMyAdmin et FTP, lancez :
sudo lampp security
qui donne le dialogue suivant pour créer des mots de passe :
XAMPP: Quick security check... XAMPP: MySQL is accessable via network. XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] XAMPP: Turned off. ... XAMPP: The MySQL/phpMyAdmin user pma has no password set!!! XAMPP: Do you want to set a password? [yes] yes XAMPP: Password: ... XAMPP: MySQL has no root passwort set!!! XAMPP: Do you want to set a password? [yes] yes XAMPP: Write the password somewhere down to make sure you won't forget it!!! XAMPP: Password: ... XAMPP: The FTP password for user 'daemon' is still set to 'xampp'. XAMPP: Do you want to change the password? [yes] yes XAMPP: Password: ... XAMPP: Done.
Créer un lanceur sous Gnome
Si l'installation n'a pas créé de lanceur, le mieux est d'utiliser MenuLibre pour en ajouter un.
Utilisation
Commandes
Avec les aliases suggérés plus haut, voici les commandes :
- Démarrer le serveur :
sudo lampp start
- Redémarrer le serveur :
sudo lampp restart
- Sécuriser le serveur :
sudo lampp security
- Arrêter le serveur :
sudo lampp stop
- Liste des options possibles :
sudo lampp
- Lancer le panneau de contrôle :
sudo ctlampp
Bien sûr, vous pourrez toujours utiliser ces commandes avec /opt/lampp/lampp.
Essai
Depuis un PC du réseau, connectez-vous au PC sur lequel tourne le serveur, par exemple http://192.168.0.7 :
Mettre en place un site
Pour mettre en place un site sur xampp, utilisez un client FTP (par exemple Client FTP : FileZilla) pour déposer le répertoire du site ou de son installateur sur la racine /opt/lampp/htdocs (utilisateur : daemon + mot de passe que vous avez défini à la sécurisation).
Remarques importantes
Rappelons que ce serveur tout-en-un n'a pas d'autre prétention que d'être un petit serveur local de travail.
Pour une mise en exploitation, mieux vaut se tourner vers un Serveur web - LAMP
Pour les curieux, dans XAMPP, les réglages fournis sont :
- pour Apache (port 80) :
- serveur : localhost
- racine : /opt/lampp/htdocs
- user : daemon (avec les mots de passe donnés à la phase de sécurisation)
- Group : daemon
- pour ProFTPd (port 21) :
- serveur : ProFTPD, de type standalone
- racine : /opt/lampp/htdocs
- user : daemon (avec les mots de passe donnés à la phase de sécurisation)
- Umask : 022
Mais dans ce cas, le plus simple est d'installer tout de suite un serveur LAMP et un serveur FTP.
Désinstallation
Pour supprimer cette application, il suffit de supprimer le répertoire /opt/lampp :
sudo rm -R /opt/lampp/
ainsi que l'éventuel raccourci sur le bureau.
Cela effacera tout vos sites en /opt/lampp/htdocs … !
Commencez par recopier en lieu sûr (en mode sudo…) le répertoire /opt/lampp/htdocs !
Modifier l'emplacement de la racine du serveur Apache
Une méthode simple est d'ajouter un montage loop par une ligne dans le fichier /etc/fstab :
/home/USER/www /opt/lampp/htdocs none bind 0 0
Désormais, toute référence à /opt/lampp/htdocs sera redirigée vers le répertoire voulu (à créer au besoin)