Instalei o lighttpd no Debian Jessie para servir arquivos estáticos, tenho uma unidade USB montada em/media/storage, com/media/storage/www como minha raiz de documento e meu lighttpd.conf se parece com isto:
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
# "mod_rewrite",
)
server.document-root = "/media/storage/www/"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
Quero poder editar o site com meu usuário normal "jurre". Então eu fiz "sudo chown jurre:www-data /media/storage/www" e "sudo chmod 740 /media/storage/www" (para que eu possa ler, escrever e executar arquivos, mas o servidor web só pode ler). É claro que eu saí e entrei novamente e reiniciei o lighttpd depois disso. Adicionei um index.html simples com "Hello World!" para testar a configuração, mas continuo recebendo um erro 403 proibido ao navegar para
ls -l em /media/storage/www :
total 8
-rw-r--r-- 1 jurre www-data 58 May 16 16:43 index.html
Também verifiquei o log de erros do lighttpd, mas ele só mostra quando o servidor web foi desligado e reiniciado, sem nenhum erro no log.
Responder1
Você não pode acessar sua www
pasta porque www-data
o usuário tem apenas 4 direitos (usuário: grupo jurre:www-data
e direitos 740), o que significa que não há direito de execução na www
pasta, apenas leitura (lê o nome e os atributos da pasta).
Você precisa de execução diretamente na pasta, porque executar uma pasta significa abri-la (para listar arquivos ou acessá-la). Você pode fazer isso com seu próprio usuário jurre
(direita 7), mas www-data
não possui o bit de execução definido.
Mude o seu direito nesta pasta para 750 e tente novamente.
Responder2
Outro problema frequente é um SELinux ativo na máquina.
Mesmo com as permissões corretas na árvore de diretórios, você ainda receberá um 403 se o diretório não tiver sido registrado no SELinux.
chcon -R -h -t httpd_sys_content_t /absolute/path
vai consertar isso.
Responder3
Superpelicano,
Seguindo o comentário acima. Pode querer tentar "sudo chown -R www-data:www-data *" ou"sudo chown -R www-data:www-data /media/storage/www/*" Nessa pasta ou subpastas de dentro/mídia/armazenamento/www Dessa forma, o servidor web possui as pastas e arquivos dentro de você, não como usuário.
No que diz respeito ao chmod. Tente também com algo como"sudo chmod -R 755 /media/storage/www/*" Pior caso "chmod -R 775"Existem diferentes níveis de segurança de arquivos entre o servidor web e o próprio sistema operacional físico. O chown/chmod mais no nível do sistema operacional. Também afetará a obtenção de arquivos e páginas da web no servidor.
Espero que isso ajude um pouco .. Felicidades ..