jueves, 13 de agosto de 2026

Para configurar las carpetas public_html en Apache bajo Ubuntu - http://tu_ip/~nombre_usuario/.

 

Para configurar las carpetas public_html en Apache bajo Ubuntu, debes habilitar el módulo userdir. Esto permite que cada usuario del sistema tenga su propia web accesible desde el navegador mediante la ruta http://tu_ip/~nombre_usuario/.
Sigue estos pasos ordenados directamente en tu terminal:

1. Habilitar el módulo UserDir en Apache

Abre la terminal y ejecuta el comando para activar el módulo de directorios de usuarios:
sudo a2enmod userdir

2. Reiniciar el servicio de Apache

Aplica el cambio reiniciando el servidor web: [1]
sudo systemctl restart apache2

3. Crear la carpeta pública en el usuario

Crea el directorio obligatorio dentro de la carpeta personal del usuario (reemplaza tu_usuario por tu nombre real en Linux) y añade un archivo de prueba:
mkdir -p ~/public_html
echo "<h1>Mi web en Apache funciona</h1>" > ~/public_html/index.html

4. Configurar los permisos correctos (Paso Crítico)

Apache se ejecuta bajo el usuario www-data. Si tu carpeta personal es privada, Apache dará un error 403 Forbidden. Debes dar permisos de lectura y ejecución a otros usuarios en tu Home: [2]
chmod 755 /home/tu_usuario
chmod 755 /home/tu_usuario/public_html
chmod 644 /home/tu_usuario/public_html/index.html

5. (Opcional) Habilitar PHP en las carpetas de usuario

Por defecto, Ubuntu deshabilita la ejecución de scripts PHP dentro de public_html por seguridad. Si vas a usar PHP, debes editar su archivo de configuración:
  1. Abre el archivo de configuración de PHP para Apache (el número de versión de PHP puede variar, usa la tuya):
    sudo nano /etc/apache2/mods-enabled/php8.3.conf
    
  2. Busca las líneas al final del archivo que dicen <IfModule mod_userdir.c> y verás un bloque de código.
  3. Comenta esas líneas añadiendo un signo # al principio de cada una, o elimina la directiva php_admin_flag engine off. Debe quedar algo así:
    #<IfModule mod_userdir.c>
    #    <FilesMatch "\.phps$">
    #        Require all denied
    #    </FilesMatch>
    #    php_admin_flag engine off
    #</IfModule>
    
  4. Guarda los cambios (Ctrl + O, luego Enter) y sal (Ctrl + X).
  5. Reinicia Apache de nuevo: sudo systemctl restart apache2. [3, 4]

6. Probar en el navegador

Ya puedes acceder a la web de ese usuario desde cualquier equipo de la red ingresando a:
http://84.21.171
(Usa tu IP correspondiente o http://localhost/~tu_usuario/ si estás en la misma máquina).
¿Estás configurando esto para un único usuario o necesitas restringir el espacio en disco de los usuarios que suban archivos?

No hay comentarios:

Publicar un comentario