
Os arquivos que desejo servir via navegador estão localizados em /root/my_folder
(ubuntu 14.04). Mudei um caminho de /var/www/html
para /root/my_folder
in /etc/apache2/sites-available/000-default.conf
, depois disso recebo um erro proibido ao tentar acessá-lo no navegador.
A página de boas-vindas padrão do Apache afirma que:
Por padrão, o Ubuntu não permite acesso através do navegador web a qualquer arquivo além daqueles localizados nos diretórios /var/www, public_html (quando habilitado) e /usr/share (para aplicativos web). Se o seu site estiver usando uma raiz de documento da web localizada em outro lugar (como em /srv), você pode precisar colocar o diretório raiz do seu documento na lista de permissões em /etc/apache2/apache2.conf.
Como coloco meu diretório raiz na lista de permissões /etc/apache2/apache2.conf
, qual sintaxe devo usar?
Responder1
Você não pode e não deve servir a partir do /root
diretório. É acessível apenas pelo root
usuário enquanto o Apache está sendo executado com user www-data
. Dê uma olhada no log de erros e você verá que o Apache reclama de permissões:
tail -f /var/log/apache2/error.log
Se você estiver trabalhando com o root
usuário em seu sistema de qualquer maneira, deverá fazer upload dos arquivos diretamente dentro do /var/www/html
, pois você já tem permissões lá.
Responder2
A solução mais fácil provavelmente seria vincular a montagem desse diretório /var/www/html
assim:
mount -t none -o bind,ro /root/my_folder /var/www/html
então inicie o Apache.
Nota: Na distribuição Fedora Linux e provavelmente em outras que usam o systemd, alguns serviços não veem as montagens feitas após serem iniciados devido a alguns recursos de segurança habilitados por padrão. Para mais detalhes leiasystemd para administradores, parte XII. Além disso, se estiver usando SELinux, os arquivos precisam ter um rótulo adequado, como public_content_t
por exemplo.