XAMPP FAQs for Linux
Description: Instructions on how to install XAMPP for Linux distributions.

# Linux Questions Fréquentes

Comment installé-je XAMPP ?

  Choisissez votre système Linux, la version 32-bit ou 64-bit.

  Changez les permissions pour l'installateur

  `chmod 755 xampp-linux-*-installer.run`

  Lancez l'installeur

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

  C'est terminé. XAMPP est désormais installé dans le répertoire /opt/lampp.

Does XAMPP include MySQL or MariaDB?

  Since XAMPP 5.5.30 and 5.6.14, XAMPP ships MariaDB instead of MySQL. The commands and tools are the same for both.

Comment lancer XAMMP ?

  Démarrer XAMPP avec cette commande :

  `sudo /opt/lampp/lampp start`

  Vous devriez voir quelque chose comme ça à l'écran:

  `Starting XAMPP 1.8.2...
  LAMPP: Starting Apache...
  LAMPP: Starting MySQL...
  LAMPP started.
  Ready. Apache and MySQL are running.`

  De l'aide pour un message d'erreur ? Visitez nos pages de la communauté.

  Aussi, remarquez qu'un outil graphique permet de gérer aisément vos serveurs. Vous le démarrerai avec les commandes suivantes :

  `cd /opt/lampp
  sudo ./manager-linux.run (or manager-linux-x64.run)`

Stopper XAMPP ?

  Stopper XAMPP avec cette commande :

  `sudo /opt/lampp/lampp stop`

  Vous devriez voir quelque chose comme ça à l'écran:

  `Stopping XAMPP 1.8.2...
  LAMPP: Stopping Apache...
  LAMPP: Stopping MySQL...
  LAMPP stopped.
  `

  De l'aide pour un message d'erreur ? Visitez nos pages de la communauté.

  Aussi, un outil très pratique pour démarrer/stopper vos serveurs existe. Vous le démarrerai avec les commandes suivantes:

  `cd /opt/lampp
  sudo ./manager-linux.run (or manager-linux-x64.run)`

Comment tester si tout a fonctionné ?

  Consultez avec votre navigateur cette URL:

  `http://localhost`

  You should see the XAMPP start page, as shown below.

XAMPP destiné à la production?

  XAMPP est destiné exclusivement aux développeurs. La manière dont XAMPP est configuré donne un maximum de libertés en cours de développement. Ceci permet de gagner du temps en phase de développement, mais peut être fatal en environnement de production.

  Liste des trous de sécurité dans XAMPP:

  1. L'administrateur MySQL (root) sans mot de passe.
  2. Le démon MySQL est accessible via le réseau.
  3. ProFTPD utilise le mot de passe "lampp" pour l'utilisateur "daemon".

  Pour corriger la plupart des failles de sécurité, utilisez cette commande:

  `sudo /opt/lampp/lampp security`

  Cette commande teste la sécurité de votre installation XAMPP, puis la sécurise. Par exemple, elle limitera l'accès aux pages de démonstration à l'utilisateur 'lampp' et son mot de passe.

Que signifient les messages d'erreur que je vois au lancement de XAMPP ?

  Les messages d'erreur possibles au démarrage de XAMPP :

  `LAMPP-Apache is already running.
  An Apache daemon is already running.`

  Le démarrage de XAMPP-Apache avec le script LAMPP a échoué car une instance d'Apache fonctionne déjà. Arrêter ce service pour démarrer XAMPP correctement.

  `LAMPP-MySQL is already running.
  A MySQL daemon is already running.`

  Principalement pour les mêmes raisons que l'erreur ci-dessus, le script de démarrage de LAMPP a trouvé un processus MySQL fonctionnant déjà sur votre système. Pour lancer correctement LAMPP, vous devez d'abord arrêter ce processus.

Apache doesn't seem to start. What can I do?

  Cette erreur peut avoir plusieurs causes. Apache affiche cette erreur dans plusieurs situations. Pour trouver la cause exacte, faisons quelques recherches :

  `tail -2 /opt/lampp/logs/error_log`

  De l'aide pour un message d'erreur ? Visitez nos pages de la communauté.

Que faire si le message d'erreur est "Cannot restore segment prot after reloc: Permission denied?"

  Some Linux distributions have SELinux activated by default and this is preventing the successful start of XAMPP. You should deactivate it in order to start the XAMPP servers:

  `sudo /usr/sbin/setenforce 0`

  XAMPP devrait fonctionner à nouveau.

Après redémarrage de ma Linux box, XAMPP s'est arrêté ! Comment y remédier ?

  Exact. Ce comportement est normal pour Linux (et pour tous les systèmes de type Unix). L'administrateur doit s'assurer qu'une application particulière s'exécute au démarrage.

  Le processus de démarrage d'un système Linux ne se fait pas de manière standardisée, mais la plupart devraient lancer XAMPP au démarrage en respectant les étapes suivantes.

  Debian, Ubuntu.

  `sudo ln -s /opt/lampp/lampp /etc/init.d/lampp sudo update-rc.d lampp start 80 2 3 4 5 . stop 30 0 1 6 .`

  RedHat, Fedora, CentOS. Si vous Linux utilise l'outil "chkconfig" pour installer les services, utilisez les commandes suivantes:

  `sudo ln -s /opt/lampp/lampp /etc/init.d/lampp
  sudo chkconfig --add lampp`

  SUSE

  `sudo ln -s /opt/lampp/lampp /etc/init.d/lampp sudo chkconfig lampp 2345`

Comment mieux sécuriser mon installation XAMPP ?

  Après installation, XAMPP est accessible à tous sans mot de passe et ceci n'est pas recommandé.

  Pour lancer un test de sécurité simple, taper cette commande (en tant que root):

  `sudo /opt/lampp/lampp security`

  Maintenant, vous devriez voir ce dialogue à l'écran :

  `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] yes XAMPP: Turned off. XAMPP: Stopping MySQL... XAMPP: Starting MySQL... XAMPP: The MySQL/phpMyAdmin user pma has no password set!!! XAMPP: Do you want to set a password? [yes] yes XAMPP: Password: ****** XAMPP: Password (again): ****** XAMPP: Setting new MySQL pma password. XAMPP: Setting phpMyAdmin's pma password to the new one. XAMPP: MySQL has no root passwort set!!! XAMPP: Do you want to set a password? [yes] yes XAMPP: Write the passworde somewhere down to make sure you won't forget it!!! XAMPP: Password: ****** XAMPP: Password (again): ****** XAMPP: Setting new MySQL root password. XAMPP: Setting phpMyAdmin's root password to the new one. XAMPP: The FTP password for user 'nobody' is still set to 'lampp'. XAMPP: Do you want to change the password? [yes] yes XAMPP: Password: ****** XAMPP: Password (again): ****** XAMPP: Reload ProFTPD... XAMPP: Done.`

  (1) Choisir un mot de passe protégera les pages de démo XAMPP (http://localhost/xampp/) par ce mot de passe. L'utilisateur est 'lampp'!

  L'exécution de cette commande devrait rendre l'installation XAMPP plus sûre.

Comment activer eAccelerator ?

  Pour activer eAccelerator recherchez ces lignes dans /opt/lampp/etc/php.ini:

  `;extension="eaccelerator.so" ;eaccelerator.shm_size="16" ;eaccelerator.cache_dir="/opt/lampp/tmp/eaccelerator" ;eaccelerator.enable="1" ;eaccelerator.optimizer="1" ;eaccelerator.check_mtime="1" ;eaccelerator.debug="0" ;eaccelerator.filter="" ;eaccelerator.shm_max="0" ;eaccelerator.shm_ttl="0" ;eaccelerator.shm_prune_period="0" ;eaccelerator.shm_only="0" ;eaccelerator.compress="1" ;eaccelerator.compress_level="9"`

  Otez le point-virgule au début de chaque ligne et redémarrez XAMPP. eAccelerator est alors activé. Pour plus d'informations sur eAccelerator, voyez la page d'accueil d'eAccelerator: http://eaccelerator.net.

Comment activer l'extension OCI8/Oracle pour PHP ?

  Pour activer l'extension OCI8/Oracle pour PHP, exécutez cette commande:

  `sudo /opt/lampp/lampp oci8`

  Ce dialogue commencera :

  `Please enter the path to your Oracle or Instant Client installation: [/opt/lampp/lib/instantclient-11.2.0.3.0] installing symlinks... patching php.ini... OCI8 add-on activation likely successful. LAMPP: Stopping Apache with SSL... LAMPP: Starting Apache with SSL...`

  Alors l'extension devrait être active.

XAMPP fonctionne, mais pourquoi aucune images s'affichent ?

  Ce problème est rencontré dans quelques systèmes Linux. Ouvrez /opt/lampp/etc/httpd.conf et cherchez ces deux lignes :

  `#EnableMMAP off #EnableSendfile off`

  Otez le # des deux lignes et redémarrez Apache. Vos images devraient réapparaître.

How do I enable access to phpMyAdmin from the outside?

  In the basic configuration of XAMPP, phpMyAdmin is accessible only from the same host that XAMPP is running on, at http://127.0.0.1 or http://localhost.

  IMPORTANT: Enabling external access for phpMyAdmin in production environments is a significant security risk. You are strongly advised to only allow access from localhost. A remote attacker could take advantage of any existing vulnerability for executing code or for modifying your data.

  To enable remote access to phpMyAdmin, follow these steps:

  - Edit the etc/extra/httpd-xampp.conf file in your XAMPP installation directory.
  - Within this file, find the lines below.

    `Alias /phpmyadmin "/opt/lampp/phpmyadmin/" <Directory "/opt/lampp/phpmyadmin"> AllowOverride AuthConfig Require local`

  - Then replace 'Require local' with 'Require all granted'.

  `Alias /phpmyadmin "/opt/lampp/phpmyadmin/" <Directory "/opt/lampp/phpMyAdmin"> AllowOverride AuthConfig Require all granted`

  - Restart the Apache server using the XAMPP control panel.
Where are the main XAMPP configuration files?

  The main XAMPP configuration files are located as follows:

  - Apache configuration file: /opt/lampp/etc/httpd.conf, /opt/lampp/etc/extra/httpd-xampp.conf
  - PHP configuration file: /opt/lampp/etc/php.ini
  - MySQL configuration file: /opt/lampp/etc/my.cnf
  - ProFTPD configuration file: /opt/lampp/etc/proftpd.conf
How do I send email with XAMPP?

  To send email with XAMPP, use the PEAR Mail and Net_SMTP packages, which allow you to send email using an external SMTP account (such as a Gmail account). Follow these steps:

  - Install the Mail and Net_SMTP PEAR modules: `pear install Net_SMTP Mail` Note that if these packages are already installed in your system you see the messages below when executing that command: `Ignoring installed package pear/Net_SMTP Ignoring installed package pear/Mail Nothing to install`
  - Create the following example script in your "htdocs" directory to send an email: `<?php require_once "Mail.php"; $from = "your-gmail-username@gmail.com"; $to = 'recipients@example.com'; $host = "ssl://smtp.gmail.com"; $port = "465"; $username = 'your-gmail-username@gmail.com'; $password = 'your-gmail-password'; $subject = "test"; $body = "test"; $headers = array ('From' => $from, 'To' => $to,'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo($mail->getMessage()); } else { echo("Message successfully sent!\n"); } ?>`

    Remember to replace the dummy values shown with your actual Gmail address and account password. If you don't plan to use Gmail's SMTP server, replace the SMTP host details with appropriate values for your organization or ISP's SMTP server.

  - Execute the script by browsing to it using your Web browser. You should see a notification that the message was successfully sent, and the message should be delivered to the recipient email address.
Sauvegarder/Restaurer mon système XAMPP ?

  Attention: La fonction sauvegarde/restauration est en développement et pourrait dysfonctionner.

  Vous créerai la sauvegarde en appelant:

  `sudo /opt/lampp/lampp backup`

  ou

  `sudo /opt/lampp/lampp backup secret`

  Quand "secret" est le mot de passe root pour MySQL. Cette commande fera cette sortie:

  `Backing up databases... Backing up configuration, log and htdocs files... Calculating checksums... Building final backup file... Backup finished. Take care of /opt/lampp/backup/xampp-backup-22-01-14.sh`

  Le fichier /opt/lampp/backup/xampp-backup-22-01-14.sh (de l'exemple ci-dessus) contient vos données de sauvegarde. Stockez le dans un endroit sûr.

  La nouvelle machine doit disposer de la même version d'XAMPP que la machine d'origine/source.

  `sudo sh xampp-backup-22-01-14.sh`

  Vous devriez voir quelques chose comme ceci:

  `Checking integrity of files... Restoring configuration, log and htdocs files... Checking versions... Installed: XAMPP 1.4.2 Backup from: XAMPP 1.4.2 Restoring MySQL databases... Restoring MySQL user databases... Backup complete. Have fun! You may need to restart XAMPP to complete the restore.`

  C'est tout. Retenez que c'est une fonction beta.