Nginx 服务器 500error 日志查看及解决办法

2025-07-26 0 472 百度已收录

新手刚用 Nginx 搭好网站,访客却说打不开,自己一看页面显示 “500 Internal Server Error”—— 刷新好几次都这样,急得不知道该点哪里。其实 Nginx 的 500 错误并不可怕,它会把错误原因记在日志里,只要找到日志、看懂日志,大部分问题都能解决。今天小编就把日志查看方法和常见错误的解决办法讲清楚,就算你刚接触 Nginx 也能跟着做。
一、为啥要看日志?日志就是 “故障说明书”
可能有人会问:“直接试各种办法不行吗,非要找日志?” 当然不行。Nginx 的 500 错误可能是配置错了,也可能是 PHP 代码有问题,还可能是权限不够 —— 瞎试的话,运气好能解决,运气不好可能越弄越糟。而日志会明明白白告诉你 “哪个文件错了”“错在哪里”,就像修电器时师傅先看故障代码,效率高多了。
小编之前帮朋友修 Nginx 服务器,没看日志前试了半小时没好,看了日志发现就是一个配置文件多了个空格,删掉就好了。
Nginx 服务器 500error 日志查看及解决办法
二、Nginx 日志在哪?怎么看?分步骤教你
不同服务器的日志位置可能不一样,但大多逃不出这几个地方,按顺序找:

  1. 先确定日志存放路径
    默认情况下,Nginx 的错误日志在这两个位置:

  • Linux 系统:一般在/var/log/nginx/error.log
  • 自己指定过路径:打开 Nginx 配置文件(通常是/etc/nginx/nginx.conf或站点配置文件),找 “error_log” 这一行,后面的路径就是日志位置(比如error_log /www/logs/nginx_error.log;

  1. 查看日志内容
    找到路径后,用这两个命令查看:

  • 想直接看最新日志:cat /var/log/nginx/error.log(把路径换成你的实际路径)
  • 想实时看日志(适合测试时用):tail -f /var/log/nginx/error.log(打开后,操作网站触发错误,日志会实时显示)

如果日志内容太多,可以用 “grep” 筛选 500 错误相关的内容:grep "500" /var/log/nginx/error.log
网友 “运维小李” 说:“我一般用 tail -f 实时看,改配置的时候一边改一边看日志,错了马上就知道,特别方便。”
三、常见日志错误及解决办法:附表格对照
把日志里常出现的错误和解决办法整理成表格,遇到时直接查:

日志里的错误提示 意思是什么 解决办法
“Permission denied” 没有文件访问权限 chmod 755 文件名改权限;确保 Nginx 运行用户(通常是 www)有访问权
“No such file or directory” 找不到文件或文件夹 检查路径是否正确;确认文件是否存在;路径别用中文或特殊符号
“FastCGI sent in stderr: Primary script unknown” PHP 文件找不到或路径错 检查 Nginx 配置里的 “root” 路径是否正确;PHP 文件是否在指定目录
“worker_connections are not enough” 连接数不够 打开 nginx.conf,把 “worker_connections” 从 1024 改成 2048 或更高,重启 Nginx
“invalid number of arguments in “xxx” directive” 配置指令参数错 找到对应配置行,检查语法(比如少了分号、括号不匹配)

  1. 权限问题最常见(Permission denied)
    比如日志里显示 “open () “/www/html/index.php” failed (13: Permission denied)”,就是 Nginx 没权限访问 index.php。
    解决步骤:

  • ls -l /www/html/index.php查看文件权限,看是否有 “r”(读)权限。
  • chown -R www:www /www/html把文件夹所有者改成 Nginx 运行用户(www 是常见用户,具体看你服务器的设置)。

  1. 配置文件语法错误(invalid directive)
    比如日志里说 “invalid directive in /etc/nginx/conf.d/default.conf:10”,就是 10 行有语法错。
    解决步骤:

  • 打开该配置文件,找到第 10 行,检查是否少了分号、括号是否成对。
  • 改完后用nginx -t检查配置是否正确,显示 “ok” 再重启 Nginx(systemctl restart nginx)。

四、如果还解决不了:试试这 2 个通用办法

  1. 重启 Nginx 和 PHP
    有时候是进程卡住了,重启服务能解决:

  • 重启 Nginx:systemctl restart nginx(CentOS 系统)或service nginx restart(Ubuntu 系统)
  • 重启 PHP(如果用 PHP 的话):systemctl restart php-fpm

  1. 恢复默认配置
    如果是改了配置后出现的错误,恢复到之前的默认配置:

  • 找到配置文件的备份(如果没备份,就重新下载 Nginx 默认配置)
  • 用默认配置覆盖当前配置,再一步步添加自己的设置,添加一项就用nginx -t检查一次。

五、自问自答:这些疑问你可能也有
问:“日志里没找到 500 相关的错误,怎么办?”
答:可能是错误没被记录,检查 nginx.conf 里的 error_log 是否开启(有没有注释掉);也可能是错误出在 PHP,这时候要去看 PHP 的日志(一般在/var/log/php-fpm/error.log)。
问:“改了权限还是提示 Permission denied,怎么回事?”
答:可能是 SELinux 或防火墙限制了,新手可以暂时关闭 SELinux(setenforce 0)试试,能解决的话再去配置 SELinux 规则(别一直关着,不安全)。
问:“一定要用命令行吗?有没有图形化工具?”
答:有!如果用宝塔面板之类的可视化面板,可以直接在面板里找到 “Nginx 日志” 和 “文件管理”,不用输命令,新手可以试试这种方式。
六、小编建议
看日志解决 Nginx 500 错误,核心就是 “找到日志→看懂提示→对应解决”。新手别怕命令行,常用的就 cat、tail、grep 这几个,输几次就记住了。另外,改配置文件前一定要备份,比如cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak,万一改错了,复制回去就行。
小编觉得最重要的是耐心,日志里的英文提示别怕,用翻译软件翻一下大概意思,再对照教程找解决办法。其实 Nginx 比想象中友好,错误提示都很明确,只要肯花时间看,大部分问题自己都能解决。
希望这些方法能帮到你,以后遇到 Nginx 500 错误,再也不用手足无措了。

最新业务:世纪货币网
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

兔格号 SEO百科 Nginx 服务器 500error 日志查看及解决办法 https://www.tglzm.com/seo/seo_ask/5379.html

一个独行者,独揽万古

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务