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.
8080 → XAMPP / servidor principal.
8081 →
@public_html, distribuidor de las webs.8085 →
tutoxampp, web concreta utilizada con Cloudflare.10000 → Webmin.
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
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/
.htaccess.
Require all granted permite el acceso web a esa carpeta.
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.
@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>
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
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
httpd.conf hay que reiniciar Apache para que cargue los cambios.
Resumen de rutas y accesos
| Elemento | Ruta 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 |