NGINX retornando 404 ao visitar?

1

O NGINX joga 404 quando eu visito, e nos meus logs de erros ele dá

/home/dev/Dropbox/www/index.php" failed (13: permission denied)

Não sei por que, isso só aconteceu quando mudei de direção para a caixa de depósito.

Executando ps -ef | grep nginx de saídas:

root 11373 5885 0 15:48 pts/0 00:00:00 sudo nano /etc/nginx/sites-available/default 
root 11374 11373 0 15:48 pts/0 00:00:00 nano /etc/nginx/sites-available/default 
dev 11566 3392 0 15:55 ? 00:00:03 gedit /var/log/nginx/error.log 
root 11607 1 0 16:01 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on;master_process on; 
www-data 11608 11607 0 16:01 ? 00:00:00 nginx:
worker process 
www-data 11609 11607 0 16:01 ? 00:00:00 nginx: worker
process 
dev 11715 5885 0 16:16 pts/0 00:00:00 grep --color=auto nginx

=============================================== =========================

Executando ls -l /home/dev/Dropbox/www/index.php de saídas:

-rw-rw-r-- 1 dev dev 2 Feb 10 15:26 /home/dev/Dropbox/www/index.php
    
por Adam G 10.02.2018 / 16:37

3 respostas

0

Nginx run é o usuário www-data. /home/dev/Dropbox/www/index.php é de propriedade do usuário dev e do grupo dev, ambos com acesso de leitura e gravação. Outros só têm acesso de leitura. Ninguém tem direitos de execução no arquivo.

A execução de chmod +x /home/dev/Dropbox/www/index.php deve definir os direitos de execução para o proprietário, grupo e outros. você verá direitos de acesso como -rwxrwxr-x se fizer ls -l no arquivo novamente.

Além disso, você pode ter que configurar o nginx para permitir que ele use / home / dev / Dropbox / www / para o diretório de dados.

    
por Soren A 10.02.2018 / 17:38
0

A execução de um site fora de qualquer diretório inicial causará problemas. Considere que, para entrar nesse diretório, um usuário precisa ter permissões de leitura e execução ("transversal" para diretórios) disponíveis para elas em todas as pastas da árvore de acesso ( /home , /home/user/ , /home/user/Dropbox/ , etc) até você alcança o diretório para o docroot em si.

Isso introduz um lote de risco de segurança - se alguém invadir o servidor da Web, ele poderá entrar nos dados do seu próprio diretório pessoal sem precisar ser superusuário.

Todos os sites devem ser executados fora do seu diretório pessoal real, seja Dropbox ou não.

Você precisaria fazer sudo chmod +rx /home/ /home/user/ /home/user/Dropbox/ /home/user/Dropbox/www/ para permitir que as coisas acessem corretamente, a menos que você comece a fazer regras de acesso altamente personalizadas.

(Note que o Dropbox não é uma maneira sã de fazer backup / sincronização do seu site, por causa dos problemas de permissões que ele introduz assim ...)

    
por Thomas Ward 10.02.2018 / 17:55
0

Possivelmente, você está usando o php-fpm com nginx . Se isso, você precisa permitir que o usuário nginx grave no soquete php-fpm.

Editar arquivo

% bl0ck_qu0te%

opção de comentário

% bl0ck_qu0te%

definir novo valor (permite que todos os usuários gravem no soquete php-fpm)

% bl0ck_qu0te%

Reinicie a instância do php-fpm para aplicar as alterações

% bl0ck_qu0te%     
por Dexter Morganov 27.02.2018 / 16:52