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

# Linux Preguntas frecuentes

¿Cómo instalo XAMPP?

  Elige la arquitectura para tu Linux OS, versión de 32-bits o de 64-bits.

  Cambia los permisos al instalador

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

  Ejecuta el instalador

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

  Eso es todo. XAMPP está ahora instalado en el directorio /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.

¿Cómo inicio XAMPP?

  Para iniciar XAMPP simplemente ejecuta este comando:

  `sudo /opt/lampp/lampp start`

  Deberías ver ahora algo como esto en tu pantalla:

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

  Si recibes algún mensaje de error visita nuestra comunidad para obtener ayuda

  Ten en cuenta que hay además una herramienta gráfica que puedes usar para controlar tus servidores fácilmente. Puedes iniciar esta herramienta con los siguientes comandos:

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

¿Cómo paro XAMPP?

  Para parar XAMPP simplemente ejecuta este comando:

  `sudo /opt/lampp/lampp stop`

  Deberías ver ahora algo como esto en tu pantalla:

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

  Si recibes algún mensaje de error visita nuestra comunidad para obtener ayuda

  Ten en cuenta que existe además una herramienta gráfica que puedes usar para iniciar/parar tus servidores fácilmente. Puedes iniciar esta herramienta con los siguientes comandos:

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

¿Cómo compruebo que todo ha ido bien?

  Escribe la siguiente URL en tu navegador favorito:

  `http://localhost`

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

¿Está XAMPP listo para producción?

  XAMPP no está pensado para uso en producción, sino para entornos de desarrollo. XAMPP está configurado de forma que sea tan abierto como sea posible, permitiendo al desarrollador hacer lo que quiera. En entornos de desarrollo esto es magnífico pero en un entorno de producción puede ser fatal.

  A continuación se muestra una lista de posibles fallos de seguridad en XAMPP:

  1. El administrador de MySQL (root) no tiene password.
  2. El proceso MySQL está accesible a través de la red.
  3. ProFTPD usa la contraseña "lampp" para el usuario "daemon".

  Para arreglar la mayoría de las debilidades de seguridad, simplemente ejecuta el siguiente comando:

  `sudo /opt/lampp/lampp security`

  Esto inicia una pequeña comprobación de seguridad y hace tu instalación de XAMPP más segura. Por ejemplo protege las páginas de prueba de XAMPP por una combinación de usuario ('lampp') y contraseña.

¿Cuál es el significado de los mensajes de error que veo cuando inicio XAMPP?

  Puedes obtener muchos mensajes de error mientras inicias XAMPP:

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

  El script de inicio de LAMPP no inició XAMPP-Apache porque ya hay otro servidor Apache iniciado. Para iniciar XAMPP correctamente, primero tienes que parar ese servidor.

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

  Principalmente debido al mismo error anterior, el script de inicio de LAMPP encuentra un servicio MySQL ejecutándose en el sistema. Para iniciar LAMPP apropiadamente, tienes que parar este servicio primero.

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

  Este error puede aparecer por múltiples razones. Apache lo muestra bajo muchas circunstancias. Para encontrar la razón exacta, tenemos que investigar:

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

  Si recibes algún mensaje de error visita nuestra comunidad para obtener ayuda

Qué hago si el mensaje de error es "Cannot restore segment prot after reloc: Permission denied?"

  Algunas distribuciones de Linux tiene SELinux activado por defecto y eso imposibilita el inicio correcto de XAMPP. Debes deshabilitarlo para iniciar los servidores de XAMPP:

  `sudo /usr/sbin/setenforce 0`

  Ahora XAMPP debería funcionar bien de nuevo.

¡Tras reiniciar Linux, XAMPP dejó de funcionar! ¿Cómo puedo arreglarlo?

  Correcto. Es un comportamiento normal en Linux (que se aplica a cualquier otro sistema Unix). Es tarea del administrador asegurar que una aplicación en concreto se inicia durante el inicio del sistema.

  No hay una manera estándar de configurar el proceso de inicio de un sistema Linux, pero la mayoría de ellos deberían permitir iniciar XAMPP durante el inicio del sistema siguiendo estos pasos.

  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 tu distribución de Linux usa la herramienta "chkconfig" para instalar los servicios, puedes ejecutar los siguientes comandos:

  `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`

¿Cómo puedo hacer mi instalación de XAMPP más segura?

  En la instalación por defecto, XAMPP no tiene establecida contraseña y no es recomendable ejecutar XAMPP con esta configuración accesible por otros.

  Simplemente ejecuta el siguiente comando (como root) para iniciar una pequeña comprobación de seguridad:

  `sudo /opt/lampp/lampp security`

  Ahora deberías ver el siguiente cuadro de diálogo en tu pantalla:

  `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) Establecer una contraseña protegerá las páginas de ejemplo de XAMPP (http://localhost/xampp/) usando esta contraseña. ¡El nombre de usuario es 'lampp'!

  Tras ejecutar este comando tu instalación de XAMPP debería ser más segura.

¿Cómo activo eAccelerator?

  Para activar eAccelerator simplemente busca las siguientes líneas en /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"`

  Elimina el punto y coma (;) al inicio de cada línea y reinicia XAMPP. eAccelerator está ahora activado. Para más información sobre eAccelerator, comprueba la página de eAccelerator: http://eaccelerator.net.

¿Cómo activo la extensión OCI8/Oracle para PHP?

  Para activar la extensión OCI8/Oracle para PHP ejecuta el siguiente comando:

  `sudo /opt/lampp/lampp oci8`

  El siguiente diálogo se iniciará:

  `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...`

  Ahora la extensión debería estar activada.

XAMPP funciona, pero ¿por qué no se ve ninguna de las imágenes?

  Ese es un problema especial con algunos sistemas Linux. Por favor, abre el fichero /opt/lampp/etc/httpd.conf y busca estas dos líneas:

  `#EnableMMAP off #EnableSendfile off`

  Elimina la # en ambas líneas y reinicia Apache. Tus imágenes deberían verse.

¿Cómo habilitar el accesso a phpMyAdmin desde fuera?

  En la configuración básica de XAMPP, phpMyAdmin es accessible sólo desde la máquina donde está instalada en http://127.0.0.1 o http://localhost.

  IMPORTANTE: Habilitar el accesso de phpMyAdmin para usuarios externos no está recomendado para entornos de producción. Un atacante podría usar cualquier vulnerabilidad de la aplicación para ejecutar código o modificar datos.

  Para habilitar el acceso remote a phpMyAdmin, sigue estos pasos:

  - Edita el fichero /opt/lampp/etc/extra/httpd-xampp.conf en tu directorio de instalación.
  - En este fichero encuentra las siguientes líneas.

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

  - Reemplaza 'Require local' por 'Require all granted'.

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

  - Reinicia el servidor de XAMPP usando el panel de control.
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.
¿Cómo hago una copia de seguridad/restauro mi sistema XAMPP?

  Aviso: La funcionalidad de copia de seguridad y restauración está bajo desarrollo y puede no funcionar correctamente.

  Puedes crear la copia de seguridad ejecutando:

  `sudo /opt/lampp/lampp backup`

  o

  `sudo /opt/lampp/lampp backup secret`

  Donde "secret" is tu contraseña de root de MySQL. Este comando generará la siguiente salida:

  `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`

  El fichero /opt/lampp/backup/xampp-backup-22-01-14.sh (en el ejemplo de arriba) contiene tu copia de seguridad. Guarda este fichero en un lugar seguro.

  En la nueva máquina necesitas la misma versión de XAMPP que en tu máquina origen.

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

  Deberías ver algo así:

  `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.`

  Eso es todo. Ten en cuenta que es una característica beta.