AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1169450
Accepted
lostsoul6
lostsoul6
Asked: 2024-12-25 22:09:54 +0800 CST2024-12-25 22:09:54 +0800 CST 2024-12-25 22:09:54 +0800 CST

Erro "Arquivo não encontrado" do Nginx

  • 772

Já li todos os tópicos semelhantes, mas não consegui resolver o problema, então postei aqui:

Posso executar um arquivo PHP no Terminal SSH com sucesso:

root@skins:~/public1# php8.3 /root/public1/public/index.php
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='http://:/requirement#'" />

        <title>Redirecting to http://:/requirement#</title>
    </head>
    <body>
        Redirecting to <a href="http://:/requirement#">http://:/requirement#</a>.
    </body>

Entretanto, não consigo executar o mesmo arquivo no navegador e recebo o erro Arquivo Nginx não encontrado.

Aqui está meu Nginx site.conf:

server {
    listen 80;
    listen [::]:80;
    server_name some.domain.com;
    root /root/public1/public; ##<----THIS IS THE ACTUAL PATH 
 
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
 
    index index.php;
 
    charset utf-8;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
 
    error_page 404 /index.php;
 
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_hide_header X-Powered-By;
    }
 
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

No log de erros do Nginx tenho o seguinte:

2024/12/25 13:55:05 [crit] 74930#74930: *5 stat() "/root/public1/public/" failed (13: Permission denied), client: 88.198.213.143, server: some.domain.com, request: "GET / HTTP/1.1", host: "some.domain.com"
2024/12/25 13:55:05 [crit] 74930#74930: *5 stat() "/root/public1/public/" failed (13: Permission denied), client: 88.198.213.143, server: some.domain.com, request: "GET / HTTP/1.1", host: "some.domain.com"
2024/12/25 13:55:05 [crit] 74930#74930: *5 realpath() "/root/public1/public" failed (13: Permission denied), client: 88.198.213.143, server: some.domain.com, request: "GET / HTTP/1.1", host: "some.domain.com"
2024/12/25 13:55:05 [error] 74930#74930: *5 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 88.198.213.143, server: some.domain.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.3-fpm.sock:", host: "some.domain.com"
2024/12/25 13:55:05 [error] 74930#74930: *5 open() "/root/public1/public/favicon.ico" failed (13: Permission denied), client: 88.198.213.143, server: some.domain.com, request: "GET /favicon.ico HTTP/1.1", host: "some.domain.com", referrer: "http://some.domain.com/"

Alguém pode me ajudar com o que há de errado com minha configuração do Nginx?

nginx
  • 2 2 respostas
  • 29 Views

2 respostas

  • Voted
  1. Best Answer
    Paul
    2024-12-25T22:43:56+08:002024-12-25T22:43:56+08:00

    Sua configuração nginx define o diretório raiz do site em um diretório que o nginxusuário ( www-data) não tem permissão para acessar.

    Altere o diretório raiz do nginx para um local que www-datatenha permissão de acesso.

    Por exemplo:

    root /var/www/html;
    

    É um local comum de diretório raiz.

    • 1
  2. Jörg W Mittag
    2024-12-25T22:44:10+08:002024-12-25T22:44:10+08:00

    A mensagem de erro é clara: Nginx não tem permissão para acessar o arquivo. O que faz sentido: /rooté o diretório home do usuário root – ninguém, exceto o usuário root, deve ter acesso a ele, certamente não um servidor web que esteja exposto a ataques remotos.

    A solução simples é mover o arquivo para algum lugar onde o usuário que está executando o servidor web Nginx (presumivelmente algum usuário do serviço Ngninx) tenha acesso.

    No Ubuntu, por padrão, o Nginx roda sob o www-datausuário. Então, você pode criar um diretório para uso do Nginx mais ou menos assim:

    sudo mkdir -p /srv/www/nginx/public1/public
    sudo chown -R root:www-data /srv/www/nginx
    sudo chmod -R 0750 /srv/www
    

    Isso dará acesso de leitura/gravação ao root, acesso de leitura ao Nginx e nenhum acesso a todos os outros.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve