Nginx가 나를 미치게 만드는 500 오류를 표시합니다. 우선 personalsite.conf
가 있습니다. 내 서버 블록이있는 /etc/nginx/conf.d/
내부에 보관합니다.
다음은 내 서버 블록 구성입니다.
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; } }
Plus nginx 사용자에게는 /usr/share/nginx/html/personalsite/
에 서명 된 적절한 권한이 있습니다.
문제는 Nginx가
, 그리고 재미있는 점은 personalsite.access.log
를 확인하고 확인했기 때문에 브라우저가 공백이 되었기 때문에 알 수 있다는 것입니다. Nginx는 500 오류 페이지를 표시 할 수 없습니다. 보시다시피 서버 블록에 올바르게 선언되어 있습니다.
또 다른 이상한 점은 personalsite.error.log
가 비어 있다는 것입니다. 아무것도 기록하지 않습니다.
또한 해당 도메인이 내 /etc/hosts
아카이브에 IP로 선언되어 있습니다. 그래서 여기서 무슨 일이 일어나고 있는지 전혀 모릅니다.
p>
모든 것이 r Digital Ocean VPS를 통해 CentOS 7 실행.
답변
Nigix 설정시 잘못된 구성으로 인해 대부분의 오류가 발생합니다. 파일 (/etc/php-fpm.d/www.conf
)을 확인하는 것이 좋습니다.
vi /etc/php-fpm.d/www.conf
수신 매개 변수를 지정하는 줄을 찾고 다음과 같이 변경합니다.
listen = /var/run/php-fpm/php-fpm.sock
다음으로 listen.owner
및 listen.group
주석을 제거하십시오. 다음과 같이 표시되어야합니다.
listen.owner = nobody listen.group = nobody
마지막으로 사용자 및 그룹을 설정하는 줄을 찾고 값을 “apache”에서 “nginx”로 변경합니다.
user = nginx group = nginx
그런 다음 저장하고 종료
/etc/init.d php-fpm restart
답변
세계 최고의 답변은 아니지만 500 오류는 모호한 것입니다. nginx 구성이거나 사이트 콘텐츠와 관련이있을 수 있습니다. 구성을 최소화하고 문제를 재현 할 수있을 때까지 다시 빌드하십시오.
사이트 콘텐츠를 일반 텍스트가 포함 된 간단한 index.html로 바꿉니다. 모든 추가 오류 지시문과 위치 블록은 제외하십시오. 기본 기능을 설정 한 후에는 문제를 일으키는 지시문을 격리하고 거기에서 근본 원인을 찾을 수있을 때까지 진행하면서 테스트하면서 다른 지시문을 추가 할 수 있습니다.
댓글
Answer
PHP display_errors가 비활성화되면 PHP 오류가 Nginx 500 오류를 반환 할 수 있습니다.
php-fpm 로그를 살펴보면 오류를 찾을 수 있습니다. CentOS 7 :
tail -f /var/log/php-fpm/www-error.log
PHP 오류도 표시 할 수 있습니다. /etc/php.ini에서 다음을 변경하십시오.
display_errors = Off
다음으로 :
display_errors = On
phpinfo.php
파일로 교체했는데 완벽하게 실행됩니다. 실행하려는 웹 사이트 '는 Yii Framework를 사용합니다. 공식 위키를 확인한 결과 " 소프트웨어는 nginx, php-fpm (php5-fpm)입니다. 성능을 위해 '는 IP : PORT를 통해 액세스하는 대신 SOCKET 모드에서 php-fpm을 실행하는 것이 좋습니다. 이것이 바로 " ' Nginx를 그대로 사용하고 있습니다. 그래서 500 오류가 발생하고 error.log에 기록하지 않는 이유를 모르겠습니다.