
Los archivos que quiero entregar a través del navegador se encuentran en /root/my_folder
(ubuntu 14.04). Cambié una ruta de /var/www/html
a /root/my_folder
in /etc/apache2/sites-available/000-default.conf
, luego aparece un error prohibido cuando intento acceder a ella en el navegador.
La página de bienvenida predeterminada de Apache indica que:
De forma predeterminada, Ubuntu no permite el acceso a través del navegador web a ningún archivo aparte de los ubicados en los directorios /var/www, public_html (cuando está habilitado) y /usr/share (para aplicaciones web). Si su sitio utiliza una raíz de documentos web ubicada en otro lugar (como en /srv), es posible que deba incluir el directorio raíz de su documento en la lista blanca en /etc/apache2/apache2.conf.
¿Cómo incluyo mi directorio raíz en la lista blanca? /etc/apache2/apache2.conf
¿Qué sintaxis uso?
Respuesta1
No puedes ni debes servir desde el /root
directorio. Solo el root
usuario puede acceder a él mientras Apache se ejecuta con el usuario www-data
. Eche un vistazo al registro de errores y verá que Apache se queja de los permisos:
tail -f /var/log/apache2/error.log
Si de todos modos está trabajando con el root
usuario en su sistema, entonces debe cargar archivos directamente dentro de /var/www/html
, ya que ya tiene permisos allí.
Respuesta2
La solución más sencilla probablemente sería vincular el montaje de ese directorio de /var/www/html
esta manera:
mount -t none -o bind,ro /root/my_folder /var/www/html
luego inicie Apache.
Nota: En la distribución Fedora Linux y probablemente en otras que usan systemd, algunos servicios no ven los montajes realizados después de su inicio debido a algunas características de seguridad habilitadas de forma predeterminada. Para más detalles leasystemd para administradores, parte XII. Además, si usa SELinux, los archivos deben tener una etiqueta adecuada, como public_content_t
por ejemplo.