Como consertar um erro de servidor interno desconhecido (500) que o Nginx está apresentando?

O Nginx está me dando um erro 500 que está me deixando louco. Em primeiro lugar, tenho um personalsite.conf arquivo dentro de /etc/nginx/conf.d/ onde tenho meu bloco de servidor.

Esta é minha configuração de bloco de servidor:

server { listen 80; server_name personalsite.me; charset UTF-8; access_log /var/log/nginx/personalsite.access.log main; error_log /var/log/nginx/personalsite.error.log; root /usr/share/nginx/html/personalsite; index index.php index.html index.htm; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } 

Além disso, o usuário nginx tem suas permissões adequadas atribuídas em /usr/share/nginx/html/personalsite/.

Acontece que o Nginx está me dando um erro 500 quando tento navegar personalsite.me, e o engraçado é que eu sei disso porque verifiquei personalsite.access.log e vi, porque o navegador simplesmente fica em branco. Por razões desconhecidas O Nginx não pode me mostrar sua página de erro 500, devidamente declarada no bloco do servidor, como você pode ver.

Outra coisa estranha é que personalsite.error.log está em branco, ele não registra nada.

Além disso, tenho esse domínio declarado com seu IP em meu /etc/hosts arquivo. Portanto, realmente não tenho ideia do que está acontecendo aqui.

Tudo é r unning CentOS 7 em um Digital Ocean VPS.

Resposta

A maioria dos erros ocorre devido à configuração incorreta durante a configuração do Nigix. Vou sugerir que verifique o arquivo (/etc/php-fpm.d/www.conf).

vi /etc/php-fpm.d/www.conf 

Encontre a linha que especifica o parâmetro de escuta e altere-o para que se pareça com o seguinte:

listen = /var/run/php-fpm/php-fpm.sock 

Em seguida, encontre as linhas que definem listen.owner e listen.group e descomente-os. Eles devem ter a seguinte aparência:

listen.owner = nobody listen.group = nobody 

Por último, encontre as linhas que definem o usuário e o grupo e altere seus valores de “apache” para “nginx”:

user = nginx group = nginx 

Em seguida, salve e saia

/etc/init.d php-fpm restart 

Resposta

Não é a melhor resposta do mundo, mas um erro 500 é muito ambíguo, pode ser a configuração do nginx ou pode estar relacionado ao conteúdo do seu site. Minimize sua configuração e reconstrua até que você possa reproduzir o problema.

Substitua o conteúdo do site por um index.html simples com apenas algum texto simples nele. Deixe de fora todas as diretivas de erro extras e o bloco de localização. Depois de estabelecer a funcionalidade básica, você pode se sentir menos insano e adicionar suas outras diretivas, testando conforme você avança, até isolar qualquer diretiva que esteja causando problemas e encontrar a causa raiz a partir daí.

Comentários

  • Na verdade, isso me ajudou a entender que meu Nginx está ok. O problema é com o site que estou ' tentando executar. Substituí todo o conteúdo por apenas um arquivo phpinfo.php e ele funciona perfeitamente. O site que ' estou tentando executar usa o Yii Framework. Verifiquei o wiki oficial e ele diz: " O software é nginx, php-fpm (php5-fpm). Para desempenho, ' é recomendado executar o php-fpm no modo SOCKET, ao invés de acessar via IP: PORT. Esse é o método mostrado abaixo " I ' estou usando Nginx exatamente assim. Portanto, não tenho ideia de por que isso me dá um erro 500 e não escrevo no error.log.

Resposta

Quando o PHP display_errors está desabilitado, os erros do PHP podem retornar o erro Nginx 500.

Você deve dar uma olhada em seus logs do php-fpm, tenho certeza que encontrará o erro lá. Com CentOS 7:

tail -f /var/log/php-fpm/www-error.log 

Você também pode mostrar erros de PHP. Em /etc/php.ini, altere:

display_errors = Off 

para:

display_errors = On 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *