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. |
/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
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
80. Más adelante lo cambiaremos al puerto 8080.
Cuando XAMPP esté arrancado, podremos comprobar:
http://localhost
http://localhost/phpmyadmin
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
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-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
Direcciones que debemos recordar
| Servicio | Dirección |
|---|---|
| Webmin | https://localhost:10000 |
| XAMPP / Apache | http://localhost:8080 |
| phpMyAdmin | http://localhost:8080/phpmyadmin |
Comprobación final
- Webmin está instalado y abre en el puerto 10000.
- XAMPP está instalado en
/opt/lampp. - Apache arranca correctamente.
- Apache utiliza el puerto 8080.
- phpMyAdmin abre correctamente.
web-on,web-off,web-restartyweb-statusfuncionan.
Fuentes oficiales
Webmin · Descarga e instalación