Le paquet open source XAMPP est un serveur LAMP complet et préconfiguré. Il contient :
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 multiplateforme : il existe pour Linux, Windows et OS X
Tout est installé de façon conjointe avec les emplacements et autorisations qui vont bien.
Remarque préliminaire importante : ne demandez pas à XAMPP ce pour quoi il n'est pas fait !
XAMPP n'est pas un serveur de production mais un petit serveur local perso. Pour cet usage, il est parfait.
Pour un serveur de production définitif, mieux vaut LAMP qui s'installe via les dépôts, plus riche de possibilités et de réglages, en particulier pour la sécurité.
Cependant, le serveur XAMPP installe des valeurs sûres :
Les sites qui fonctionnent sur XAMPP fonctionneront donc sur LAMPP : il suffit de copier le répertoire et éventuellement de déplacer la base de données. A partir de là, vous pourrez mettre en place les réglages.
Vous pouvez cependant modifier XAMPP moyennant quelques “bidouilles” et une bonne connaissance de sa structure.
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 :
Pour que Xampp se lance au démarrage, lancez dans un terminal :
$ sudo ln -s /opt/lampp/lampp /etc/init.d/lampp $ sudo update-rc.d lampp defaults
Au redémarrage, XAMPP sera démarré.
Créez les aliases en ajoutant au fichier ~/.bash_aliases les lignes :
... # 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'
L'alias sudo='sudo ' permet d'utiliser les autres aliases en sudo, comme avec
$ sudo lampp start
Activez les aliases par un
$ source ~/.bashrc
L'installation a créé l'arborescence :
$ tree /opt/lampp/ -d -L 1 /opt/lampp/ ├── apache2 ├── bin ├── build ├── cgi-bin ├── docs ├── error ├── etc ├── htdocs ├── icons ├── img ├── include ├── info ├── lib ├── libexec ├── licenses ├── logs ├── man ├── manual ├── modules ├── mysql ├── pear ├── php ├── phpmyadmin ├── proftpd ├── sbin ├── share ├── temp └── var 28 directories
Une suggestion
Pour vous simplifier la vie, créez des aliases en éditant ou créant le fichier ~/.bash_aliases pour y écrire :
# 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
XAMPP inclut proFTPD, un serveur FTP open source pour faciliter le transfert de fichiers.
Voir :
Le fichier de configuration est /opt/lampp/etc/proftpd.conf.
Nous choisissons de ne pas toucher au fichier principal et d'utiliser des fichiers de configuration que nous stockerons dans un répertoire /opt/lampp/etc/conf.d/ qui n’est pas affecté par les mises à jour.
Donc :
$ sudo mkdir /opt/lampp/etc/conf.d/ $ sudo mkdir /opt/lampp/etc/proftpd/
(...) # Inclure les fichiers de configuration personnalisés Include /opt/lampp/etc/conf.d/
Tous les fichiers contenus dans le répertoire /etc/proftpd/conf.d/ seront prises en compte.
$ sudo cp <fichier.conf> /opt/lampp/etc/conf.d
Supposons que vous ayez dans votre répertoire de base un script PHP simple, exemple.php, contenant le code suivant, que vous souhaitez transférer sur le serveur XAMPP.
<!-- example.php --> <html> <head></head> <body> <h2><?php echo "Bonjour. Nous sommes le " . date('l'); ?>.</h2> </body> </html>
Pour transférer des fichiers via proFTPD, vous devez d’abord configurer les règles d’accès FTP. Suivez ces étapes.
$ sudo groupadd ftp
$ sudo usermod -a -G ftp moi
$ cd /opt/lampp $ sudo chown root:ftp htdocs $ sudo chmod 775 htdocs
Si vous utilisez XAMPP avec un seul utilisateur qui est seul à transférer des fichiers via FTP, vous pouvez ignorer la création d’un nouveau groupe et simplement rendre cet utilisateur propriétaire du répertoire htdocs/. Pour cela, utilisez la commande
$ sudo chown moi:moi htdocs.
Vous pouvez maintenant transférer des fichiers sur le serveur XAMPP en procédant comme suit :
Créez le répertoire :
$ sudo mkdir /opt/lampp/etc/proftpd/
éditez avec les droits d'administration le fichier /opt/lampp/etc/conf.d/global.conf pour y ajouter les directives :
DefaultRoot ~ AuthUserFile /opt/lampp/etc/proftpd/ftpd.passwd AuthGroupFile /opt/lampp/etc/proftpd/ftpd.group
Vérifiez l'existence de l'utilisateur www-data et de son groupe :
$ id www-data uid=33(www-data) gid=33(www-data) groupes=33(www-data)
On constate que l’identifiant du groupe www-data est 33.
Créons l'utilisateur virtuel admiweb, de home /var/www/html, avec les uid et gid de www-data en lançant les commandes (le mot de passe du compte vous sera demandé) :
$ cd /opt/lampp/etc/proftpd $ sudo ftpasswd --passwd --name=admiweb --uid=33 --gid=33 --home=/var/www/html --shell=/bin/false ftpasswd: creating passwd entry for user admiweb ftpasswd: /bin/false is not among the valid system shells. Use of ftpasswd: "RequireValidShell off" may be required, and the PAM ftpasswd: module configuration may need to be adjusted. Password: Re-type password: ftpasswd: entry created
Vérifiez que l'utilisateur courant peut se connecter :
$ ftp localhost Connected to localhost.localdomain. 220 ProFTPD 1.3.4c Server (ProFTPD) [::ffff:127.0.0.1] Name (localhost:xxxxxxx): 331 Password required for xxxxxxx Password: 230 User xxxxxxx logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 root root 3607 Feb 27 2017 applications.html -rw-r--r-- 1 root root 177 Feb 27 2017 bitnami.css drwxr-xr-x 21 root root 4096 Apr 4 11:48 dashboard -rw-r--r-- 1 root root 30894 May 11 2007 favicon.ico drwxr-xr-x 2 root root 4096 Apr 4 11:48 img -rw-r--r-- 1 root root 260 Jul 9 2015 index.php drwxr-xr-x 2 daemon daemon 4096 Apr 4 11:48 webalizer 226 Transfer complete ftp> bye 221 Goodbye.
De même pour admiweb :
$ ftp localhost Connected to localhost.localdomain. 220 ProFTPD 1.3.4c Server (ProFTPD) [::ffff:127.0.0.1] Name (localhost:xxxxxxx): admiweb 331 Password required for admiweb Password: 230 User admiweb logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 root root 3607 Feb 27 2017 applications.html -rw-r--r-- 1 root root 177 Feb 27 2017 bitnami.css drwxr-xr-x 21 root root 4096 Apr 4 11:48 dashboard -rw-r--r-- 1 root root 30894 May 11 2007 favicon.ico drwxr-xr-x 2 root root 4096 Apr 4 11:48 img -rw-r--r-- 1 root root 260 Jul 9 2015 index.php drwxr-xr-x 2 daemon daemon 4096 Apr 4 11:48 webalizer 226 Transfer complete ftp> bye 221 Goodbye.
Vous pouvez maintenant créer tous les utilisateurs nécessaires en répétant cette commande.
La configuration de proftpd se fait dans /opt/lampp/etc/ 1).
Pour faciliter la configuration, ajouter la répertoire /opt/lampp/etc/conf.d :
$ sudo mkdir /opt/lampp/etc/conf.d
Nous y placerons nos fichiers de configuration en les appelant par des Include. Ainsi, ils ne seront pas affectés par les mises à jour.
Liste des directives : Voir http://www.proftpd.org/docs/directives/linked/by-name.html