Tuto XAMPP

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

04 · CONFIGURACIÓN

Rutas, Apache y nuestra carpeta de trabajo

Organizaremos tres accesos: 8080 para XAMPP general, 8081 para la raíz @public_html y 8085 para abrir directamente tutoxampp y utilizarlo con Cloudflare.

> XAMPP :8080

> @public_html :8081

> tutoxampp :8085

> Webmin :10000

> apachectl -t

> configuración lista_

1. Estructura que vamos a utilizar

Esta es la estructura elegida para el proyecto. No es obligatorio utilizar esta ubicación: puede colocarse en otra carpeta o unidad siempre que después indiquemos correctamente la ruta en Apache.

---@web/
└── www/
    └── @public_html/                  → puerto 8081
        ├── tutoxampp/                 → puerto 8085 → Cloudflare
        ├── otra-web/
        └── ...

Nuestra ruta real es:

/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html

www es la carpeta principal del entorno web y @public_html es la zona que hemos decidido utilizar como raíz pública de nuestras webs. Dentro de ella se encuentra tutoxampp, que puede abrirse de forma independiente.

Puertos del proyecto:
8080 → XAMPP / servidor principal.
8081 → @public_html, distribuidor de las webs.
8085 → tutoxampp, web concreta utilizada con Cloudflare.
10000 → Webmin.
No publiques toda www. Exponemos @public_html y, cuando interesa, una web concreta de su interior.

2. Crear y comprobar la carpeta

mkdir -p "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html"
ls -ld "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html"

Si ya existe, mkdir -p no la vuelve a crear ni elimina su contenido. La ruta se escribe entre comillas para evitar problemas al copiar comandos.

3. Copia de seguridad de Apache antes de editar

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

Conservamos una copia del archivo de configuración antes de añadir rutas, Alias o nuevos puertos.

4. Confirmar el puerto 8080 de XAMPP

Abrimos la configuración:

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

Comprobamos que Apache utiliza:

Listen 8080

Si existe una línea ServerName asociada al puerto anterior, debe quedar:

ServerName localhost:8080
8080 es el acceso general a XAMPP y al servidor Apache.

5. Crear el Alias /xnenex

Añadimos en /opt/lampp/etc/httpd.conf:

Alias /xnenex "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html"

<Directory "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Con ello, la ruta física:

/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html

queda accesible dentro del puerto 8080 como:

http://localhost:8080/xnenex/
Indexes permite que Apache muestre el contenido de una carpeta si no existe un archivo de inicio. FollowSymLinks permite seguir enlaces simbólicos. AllowOverride All permite utilizar reglas de .htaccess. Require all granted permite el acceso web a esa carpeta.
Si no quieres que Apache muestre listados de carpetas, puedes utilizar Options -Indexes. No utilizamos Require all denied en esta carpeta porque bloquearía completamente su acceso por web.

6. Validar el puerto 8080 y el Alias

grep -nE -- '^Alias /xnenex|---@web/www/@public_html|<Directory' /opt/lampp/etc/httpd.conf
sudo /opt/lampp/bin/apachectl -t
sudo /opt/lampp/lampp restartapache
curl -I http://localhost:8080/xnenex/

La configuración debe devolver Syntax OK y el acceso HTTP debe responder correctamente.

7. Configurar el puerto 8081: @public_html como distribuidor

El puerto 8081 abre directamente @public_html. Desde ahí podemos acceder a tutoxampp o a cualquier otra web que guardemos en esa carpeta.

Abrimos:

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

Añadimos:

Listen 8081

# XNENEX_PUBLIC_8081
<VirtualHost *:8081>
    DocumentRoot "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html"

    <Directory "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

En este caso no necesitamos un Alias adicional: el propio DocumentRoot del puerto 8081 ya es @public_html.

Si @public_html no contiene un archivo index.html o index.php, Indexes permite utilizar este puerto como distribuidor y ver las carpetas de las distintas webs.

8. Comprobar el puerto 8081

grep -n "Listen 8081" /opt/lampp/etc/httpd.conf
grep -A12 -B2 "XNENEX_PUBLIC_8081" /opt/lampp/etc/httpd.conf
sudo /opt/lampp/bin/apachectl -t
sudo /opt/lampp/lampp restartapache
curl -I http://localhost:8081/

Si la sintaxis es correcta, http://localhost:8081/ debe abrir directamente @public_html.

9. Configurar el puerto 8085: tutoxampp como web directa

El puerto 8085 apunta directamente a la carpeta de esta web. Es el origen que utilizaremos después con Cloudflare para publicar tutoxampp sin exponer el distribuidor completo.

Abrimos:

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

Añadimos:

Listen 8085

# TUTOXAMPP_8085
<VirtualHost *:8085>
    DocumentRoot "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html/tutoxampp"

    <Directory "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html/tutoxampp">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
Cloudflare utilizará http://localhost:8085 como origen, por eso este puerto apunta directamente a tutoxampp.

10. Comprobar el puerto 8085

grep -n "Listen 8085" /opt/lampp/etc/httpd.conf
grep -A12 -B2 "TUTOXAMPP_8085" /opt/lampp/etc/httpd.conf
sudo /opt/lampp/bin/apachectl -t
sudo /opt/lampp/lampp restartapache
curl -I http://localhost:8085/

Si todo está correcto, http://localhost:8085/ abre directamente la web tutoxampp.

11. Permisos: qué no hacer

No utilices chmod -R 777 como solución general. Primero comprueba propietario, grupo, permisos y el mensaje de error real.
ls -la "/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html"

12. Diagnóstico

sudo /opt/lampp/lampp status
sudo netstat -tulpn | grep -E '(:8080|:8081|:8085)'
sudo /opt/lampp/bin/apachectl -t
curl -I http://localhost:8080/
curl -I http://localhost:8080/xnenex/
curl -I http://localhost:8081/
curl -I http://localhost:8085/
tail -n 40 /opt/lampp/logs/error_log
Syntax OK valida el archivo de configuración. Después de modificar httpd.conf hay que reiniciar Apache para que cargue los cambios.

Resumen de rutas y accesos

ElementoRuta o acceso
XAMPP /opt/lampp
Carpeta pública /mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html
XAMPP / Apache general http://localhost:8080
Alias /xnenex http://localhost:8080/xnenex/
@public_html · distribuidor http://localhost:8081/
tutoxampp · web directa http://localhost:8085/
Webmin https://localhost:10000
SIGUIENTE: CLOUDFLARE →