Tuto XAMPP

--/--/---- --:--:--

03 · SERVIDOR LOCAL

Instalar Webmin y XAMPP

En esta parte convertimos nuestro Linux en un pequeño laboratorio web. Instalaremos Webmin para administrar el sistema y XAMPP para disponer de Apache, PHP y MariaDB.

Al terminar podremos arrancar y parar todo con nuestros alias web-on, web-off, web-restart y web-status.

> Webmin :10000

> XAMPP /opt/lampp

> Apache :8080

> PHP + MariaDB

> web-on

> servidor preparado_

1. ¿Qué vamos a instalar?

Programa Función
Webmin Panel web para administrar el sistema Linux.
XAMPP Paquete de desarrollo que nos proporciona Apache, MariaDB, PHP y otras herramientas.
XAMPP: se instala en /opt/lampp y su carpeta web predeterminada es /opt/lampp/htdocs.
Apache: comienza en el puerto 80 y más adelante lo cambiaremos al 8080.
Webmin: utiliza el puerto 10000.

2. Instalar Webmin

Primero actualizamos el sistema:

actualizar

Utilizaremos el repositorio oficial de Webmin. Primero descargamos su script de configuración:

cd ~
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh

Ejecutamos el configurador del repositorio:

sudo sh webmin-setup-repo.sh

Y finalmente instalamos Webmin:

sudo apt-get install webmin --install-recommends -y

Comprobamos el servicio:

sudo systemctl status webmin --no-pager
Webmin está disponible en: https://localhost:10000

3. Comandos básicos de Webmin

sudo systemctl start webmin
sudo systemctl stop webmin
sudo systemctl restart webmin
sudo systemctl status webmin --no-pager

Estos comandos serán los que después combinaremos con XAMPP mediante nuestros alias.

4. Instalar XAMPP

Primero actualizamos el sistema:

actualizar

El proyecto utiliza XAMPP 8.2.12 para Linux de 64 bits. Descarga el instalador desde Apache Friends.

Una vez descargado, mueve el archivo .run a Archivos de Linux. Así aparecerá directamente en tu carpeta personal Linux y será más sencillo trabajar con él desde Terminal.

Desde la Terminal entramos en nuestra carpeta personal:

cd ~

Damos permisos de ejecución al instalador:

chmod 755 xampp-linux-*-installer.run

Y ejecutamos la instalación:

sudo ./xampp-linux-*-installer.run
Puerto inicial: después de instalar XAMPP, Apache utiliza por defecto el puerto 80. Más adelante lo cambiaremos al puerto 8080.

Cuando XAMPP esté arrancado, podremos comprobar:

http://localhost
http://localhost/phpmyadmin
XAMPP incluye Apache, MariaDB, PHP y phpMyAdmin, por lo que no vamos a instalar esos componentes por separado.

5. Primera puesta en marcha de XAMPP

Arrancamos el servidor:

sudo /opt/lampp/lampp start

Comprobamos su estado:

sudo /opt/lampp/lampp status

Antes de modificar el puerto, la prueba inicial puede hacerse en: http://localhost

Para detener XAMPP:

sudo /opt/lampp/lampp stop

Y para reiniciarlo:

sudo /opt/lampp/lampp restart

6. Cambiar Apache al puerto 8080

En nuestro proyecto Apache utilizará el puerto 8080. Antes de editar la configuración hacemos una copia:

sudo cp /opt/lampp/etc/httpd.conf /opt/lampp/etc/httpd.conf.bak

Abrimos la configuración con Nano:

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

Dentro de Nano pulsamos Ctrl + W y buscamos:

Listen 80

Lo cambiamos por:

Listen 8080

Volvemos a pulsar Ctrl + W y buscamos:

ServerName

Si aparece una línea como:

ServerName localhost:80

la cambiamos por:

ServerName localhost:8080

Guardamos con Ctrl + O, pulsamos Enter y salimos con Ctrl + X.

Antes de reiniciar Apache comprobamos la sintaxis:

sudo /opt/lampp/bin/apachectl -t

Si aparece Syntax OK, reiniciamos XAMPP:

sudo /opt/lampp/lampp restart
Apache está funcionando en: http://localhost:8080
phpMyAdmin está disponible en: http://localhost:8080/phpmyadmin

7. Comandos web para controlar Webmin, XAMPP y Cloudflare Tunnel

Estos alias permiten arrancar, apagar, reiniciar y consultar el estado de Webmin, XAMPP y el Quick Tunnel de Cloudflare desde la Terminal.

Abrimos el archivo de configuración de Bash:

nano ~/.bashrc

Dejamos los cuatro alias juntos:

alias web-on='sudo systemctl start webmin && sudo /opt/lampp/lampp start; pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null; rm -f "$HOME/.cloudflared-8085.log"; nohup cloudflared tunnel --url http://localhost:8085 > "$HOME/.cloudflared-8085.log" 2>&1 &'

alias web-off='pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null; sudo /opt/lampp/lampp stop; sudo systemctl stop webmin'

alias web-restart='pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null; sudo systemctl restart webmin; sudo /opt/lampp/lampp restart; rm -f "$HOME/.cloudflared-8085.log"; nohup cloudflared tunnel --url http://localhost:8085 > "$HOME/.cloudflared-8085.log" 2>&1 &'

alias web-status='sudo systemctl status webmin --no-pager; sudo /opt/lampp/lampp status; if pgrep -f "cloudflared tunnel --url http://localhost:8085" >/dev/null; then echo "Cloudflare: ACTIVO"; grep -oE "https://[a-zA-Z0-9-]+\.trycloudflare\.com" "$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1; else echo "Cloudflare: INACTIVO"; fi'

Guardamos con Ctrl + O, pulsamos Enter y salimos con Ctrl + X.

Recargamos Bash:

source ~/.bashrc

Ahora ya deben funcionar los cuatro comandos:

web-on
web-off
web-restart
web-status
web-on inicia Webmin, XAMPP y Cloudflare Tunnel.
web-off detiene los tres servicios.
web-restart reinicia Webmin, XAMPP y vuelve a crear el túnel.
web-status muestra el estado de Webmin, XAMPP y Cloudflare y, si está disponible, la URL pública temporal.

8. Diagnóstico rápido

Estado de Webmin:

sudo systemctl status webmin --no-pager

Estado de XAMPP:

sudo /opt/lampp/lampp status

Comprobar puertos 8080 y 10000:

sudo netstat -tulpn | grep -E '(:8080|:10000)'

Comprobar sintaxis de Apache:

sudo /opt/lampp/bin/apachectl -t

Ver los últimos errores de Apache:

tail -n 30 /opt/lampp/logs/error_log

9. Seguridad básica de XAMPP

Apache Friends ofrece una comprobación de seguridad para la instalación:

sudo /opt/lampp/lampp security
XAMPP está pensado para desarrollo, no como configuración de producción. Antes de publicar nada hacia Internet revisaremos qué servicios son visibles.

Direcciones que debemos recordar

ServicioDirección
Webmin https://localhost:10000
XAMPP / Apache http://localhost:8080
phpMyAdmin http://localhost:8080/phpmyadmin

Comprobación final

SIGUIENTE: CONFIGURACIÓN →

Fuentes oficiales

Webmin · Descarga e instalación

Apache Friends · Descargar XAMPP

Apache Friends · Preguntas frecuentes de XAMPP para Linux