Tuto XAMPP

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

02 · LINUX EN CHROMEBOOK

Preparar Linux antes de montar el servidor

Activaremos Linux, aprenderemos a abrir la Terminal, comprobaremos la arquitectura, actualizaremos el sistema y crearemos nuestros primeros alias.

> abrir Terminal

> uname -m

> actualizar

> herramientas básicas

> web

> siguiente: servidor_

1. ¿Qué es Linux en un Chromebook?

ChromeOS permite activar un entorno Linux integrado. Ese entorno nos proporciona una Terminal, aplicaciones Linux y las herramientas necesarias para preparar nuestro servidor local. ChromeOS sigue siendo el sistema principal y Linux funciona como un entorno separado e integrado dentro del Chromebook.

2. Activar Linux y abrir la Terminal

1. Activamos Linux desde Configuración. Una vez instalado, tendremos disponible la Terminal.

2. Abrimos la Terminal Linux. No confundir con Crosh.

3. Comprobar la arquitectura

El primer comando que ejecutaremos es:

uname -m
ResultadoSignificado
x86_64Intel/AMD de 64 bits.
aarch64ARM de 64 bits.
i386 / i686x86 de 32 bits.

Esta comprobación es importante porque después necesitaremos descargar software compatible con la arquitectura del Chromebook.

4. Algunos comandos básicos

ComandoUso
pwdMuestra la carpeta actual.
lsMuestra archivos y carpetas.
cdCambia de carpeta.
mkdirCrea carpetas.
cpCopia archivos o carpetas.
mvMueve o renombra.
rmElimina archivos. Debe usarse con cuidado.
El símbolo ~ representa tu carpeta personal de Linux.

5. Actualización de Linux

Es aconsejable mantener siempre todos los paquetes actualizados. Podemos hacerlo manualmente o automatizarlo más adelante.

sudo apt update
sudo apt upgrade -y

Actualización de la información de los repositorios e instalación de las nuevas versiones disponibles de los paquetes.

También existe una actualización más completa:

sudo apt full-upgrade -y
sudo apt autoremove

full-upgrade realiza una actualización más completa del sistema y autoremove elimina dependencias que ya no son necesarias.

6. Crear alias actualizar y automatizar tareas

Abrimos el archivo de configuración de Bash:

nano ~/.bashrc

Añadimos al final:

alias actualizar='sudo apt update && sudo apt upgrade -y'
alias actualizar-total='sudo apt update && sudo apt full-upgrade -y'

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

Recargamos la configuración:

source ~/.bashrc

Comprobamos:

type actualizar
type actualizar-total

Desde ahora podemos ejecutar:

actualizar
actualizar-total

Dejamos autoremove fuera de los alias para revisar antes qué paquetes pretende eliminar:

sudo apt autoremove

7. Herramientas básicas

Estas utilidades suelen estar disponibles o pueden instalarse fácilmente si faltan:

sudo apt install wget curl gnupg -y
ProgramaPara qué sirve
wgetDescargar archivos desde Internet.
curlConsultar URLs y servicios desde Terminal.
gnupgGestionar claves y firmas utilizadas por repositorios y paquetes.

8. Comando web: menú para controlar el servidor

Este menú es el método interactivo. En la sección Servidor también se documentan los alias web-on, web-off, web-restart y web-status como alternativa directa.

En lugar de recordar varios alias separados, utilizamos una función llamada web, guardada en ~/.bashrc. Al escribir web aparece un menú desde el que controlamos XAMPP, Webmin y el Quick Tunnel de Cloudflare.

Abrimos el archivo:

nano ~/.bashrc

Añadimos al final la función completa:

web() {
    while true; do
        clear

        echo "================================"
        echo "          WEB CONTROL"
        echo "================================"
        echo
        echo "1. ENCENDER"
        echo "2. APAGAR"
        echo "3. ESTADO"
        echo "4. RESTAURAR"
        echo "5. SALIR"
        echo

        read -p "Elige una opción: " opcion

        case "$opcion" in
            1)
                echo
                echo "=== ENCENDIENDO SERVIDOR ==="
                sudo /opt/lampp/lampp start
                sudo systemctl start webmin

                if ! pgrep -f "cloudflared tunnel --url http://localhost:8085" >/dev/null; then
                    rm -f "$HOME/.cloudflared-8085.log"
                    nohup cloudflared tunnel --url http://localhost:8085 \
                        > "$HOME/.cloudflared-8085.log" 2>&1 &
                fi

                echo "Esperando URL de Cloudflare..."
                URL=""
                for i in {1..20}; do
                    URL=$(grep -oE 'https://[a-zA-Z0-9-]+\.trycloudflare\.com' \
                        "$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1)
                    [ -n "$URL" ] && break
                    sleep 1
                done

                echo "XAMPP:      ACTIVO"
                echo "Webmin:     ACTIVO"
                echo "Cloudflare: ACTIVO"
                [ -n "$URL" ] && { echo; echo "URL PUBLICA:"; echo "$URL"; }
                echo
                read -p "Pulsa ENTER para volver al menú..."
                ;;

            2)
                echo
                echo "=== APAGANDO SERVIDOR ==="
                pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null
                sudo systemctl stop webmin
                sudo /opt/lampp/lampp stop
                echo "Cloudflare: detenido"
                echo "Webmin:     detenido"
                echo "XAMPP:      detenido"
                echo "SERVIDOR DETENIDO"
                echo
                read -p "Pulsa ENTER para volver al menú..."
                ;;

            3)
                echo
                echo "=== ESTADO DEL SERVIDOR ==="
                sudo /opt/lampp/lampp status
                if systemctl is-active --quiet webmin; then
                    echo "Webmin: ACTIVO"
                else
                    echo "Webmin: INACTIVO"
                fi
                if pgrep -f "cloudflared tunnel --url http://localhost:8085" >/dev/null; then
                    echo "Cloudflare: ACTIVO"
                    URL=$(grep -oE 'https://[a-zA-Z0-9-]+\.trycloudflare\.com' \
                        "$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1)
                    [ -n "$URL" ] && { echo "URL PUBLICA:"; echo "$URL"; }
                else
                    echo "Cloudflare: INACTIVO"
                fi
                echo
                read -p "Pulsa ENTER para volver al menú..."
                ;;

            4)
                echo
                echo "=== RESTAURANDO SERVIDOR ==="
                pkill -f "cloudflared tunnel --url http://localhost:8085" 2>/dev/null
                sudo systemctl stop webmin
                sudo /opt/lampp/lampp stop
                sleep 2
                sudo /opt/lampp/lampp start
                sudo systemctl start webmin
                rm -f "$HOME/.cloudflared-8085.log"
                nohup cloudflared tunnel --url http://localhost:8085 \
                    > "$HOME/.cloudflared-8085.log" 2>&1 &
                echo "Esperando nueva URL de Cloudflare..."
                URL=""
                for i in {1..20}; do
                    URL=$(grep -oE 'https://[a-zA-Z0-9-]+\.trycloudflare\.com' \
                        "$HOME/.cloudflared-8085.log" 2>/dev/null | tail -1)
                    [ -n "$URL" ] && break
                    sleep 1
                done
                echo "XAMPP:      ACTIVO"
                echo "Webmin:     ACTIVO"
                echo "Cloudflare: ACTIVO"
                [ -n "$URL" ] && { echo; echo "NUEVA URL PUBLICA:"; echo "$URL"; }
                echo
                read -p "Pulsa ENTER para volver al menú..."
                ;;

            5)
                clear
                echo "WEB CONTROL cerrado."
                break
                ;;

            *)
                echo "Opción no válida."
                sleep 2
                ;;
        esac
    done
}

Guardamos con Ctrl + O, Enter, salimos con Ctrl + X y recargamos Bash:

source ~/.bashrc

Desde ahora basta ejecutar:

web
Apache / XAMPP: puerto 8080 — servidor principal.
Webmin: puerto 10000 — panel web.
Web del proyecto: puerto 8085.

9. Instalar utilidades de red

Para comprobar conexiones, puertos y resolución de nombres instalaremos las utilidades básicas de red:

sudo apt install net-tools dnsutils iputils-ping -y
PaqueteHerramientas principales
net-toolsnetstat, ifconfig y route.
dnsutilsdig y nslookup.
iputils-pingping para comprobar conectividad.

10. Instalar PeaZip

Para trabajar gráficamente con ZIP, 7Z, TAR y otros formatos utilizaremos PeaZip. Descarga el paquete DEB adecuado a la arquitectura del Chromebook desde su página oficial.

PeaZip · Descarga oficial para Linux

Mueve el archivo descargado a Archivos de Linux y ejecuta:

cd ~
sudo apt install ./peazip*.deb

Una vez instalado, PeaZip puede abrirse desde el lanzador de aplicaciones Linux.

11. Instalar y utilizar rsync

rsync permite copiar y sincronizar carpetas. Lo utilizaremos para copias de seguridad y para actualizar una carpeta a partir de otra.

sudo apt update
sudo apt install rsync -y

Comprobamos que está disponible:

rsync --version

Copia normal o actualización

rsync -av origen/ destino/

Solo añadir archivos que faltan

rsync -av --ignore-existing origen/ destino/

No sustituir archivos más nuevos del destino

rsync -avu origen/ destino/

Crear un espejo exacto

rsync -av --delete origen/ destino/

Antes de utilizar --delete conviene simular la operación:

rsync -av --delete --dry-run origen/ destino/

-a conserva la estructura y los atributos principales, -v muestra lo que se está copiando y la barra / al final del origen indica que se copia el contenido de la carpeta.

Comprobación final

SIGUIENTE: SERVIDOR →