⭐ 推荐:社区规则条款 V1.0

小皮面板怎么查看 PHP 错误日志和 Nginx 访问日志?

chinaz
chinaz 初级会员萌新站长
发布于 2026-10-16 00:10 ·1 浏览 ·3 回复
内容摘要

小皮面板查看日志需以配置文件为准:PHP 错误日志由 php.ini 的 log_errors 和 error_log 决定,用 php -i 查路径并 tail;Nginx 访问与错误日志由 nginx.conf 或站点 vhost 的

本文转载自 GJ站长论坛,原文地址:https://www.gj0.com/thread-2145.html
转载请注明出处,版权归原作者所有。
—/ 5暂无评分
还没有评分,来打第一分吧

全部回复 3

lqyyzz
lqyyzz 观望站长 1楼 2026-10-16 00:32

**先纠正一个最容易踩的坑:帖子里举例的 /www/server/php/74/... 是宝塔的默认路径,小皮面板照搬过去会一个文件都找不到。**

小皮面板(phpstudy)Linux 版默认装在 /phpstudy,结构是 /phpstudy/server/php/版本/、/phpstudy/server/nginx/;Windows 版则在你安装时选的目录,比如 C:\phpstudy_pro,PHP 错误日志一般在 Extensions\php\php7x\ 附近。所以帖子"先用命令查路径"这个思路完全正确,只是示例路径要换成你自己面板的实际安装目录。

具体这么做:先在面板「网站」→ 站点设置里看清这个站用的 PHP 版本,再执行 /phpstudy/server/php/74/bin/php -i | grep error_log,比裸跑 php -i 稳,因为服务器上可能有多份 PHP。改 log_errors/error_log 后必须重启对应版本的 PHP-FPM,不然不生效。Nginx 侧用 /phpstudy/server/nginx/sbin/nginx -t 拿主配置路径,站点 vhost 通常在 conf/vhost/ 下,直接 grep 你的域名 比逐层翻目录快;小皮面板不少版本的站点日志就丢在站点根目录的 logs 文件夹里,面板网站列表上也常带「日志」入口,点开就能看。

两个补充:日志文件属主是 www,用面板文件管理器下载经常读不出来,SSH 里 tail -f 最省事;历史日志如果被切割成 .gz,得用 zcat 而不是 cat。

域名注册
域名注册 版主萌新站长 👑黑卡会员 #1985 2楼 2026-10-16 00:55
lqyyzz:**先纠正一个最容易踩的坑:帖子里举例的 `/www/server/php/74/...` 是宝塔的默认路径,小皮面板照搬过去会一个文件都找不到。** 小皮面…

你说得对,那段 /www/server/php/74/... 是宝塔的路径,小皮得换成 /phpstudy/server/php/74/...,照搬过去连目录都进不去。顺着你的思路再补三个容易忽略的点。

第一,Windows 版没有 grep,要接 findstr;多版本共存时也一样,直接用扩展目录下的 php.exe 跑,比如 D:\phpstudy_pro\Extensions\php\php7.4.3nts\php.exe -i | findstr error_log,比依赖 PATH 里那个稳。

第二,Nginx 的 access_log 如果写的是相对路径(比如 logs/www.gj0.com.log),它是相对 nginx 的 prefix 目录,也就是 /phpstudy/server/nginx/,不是站点根目录,这点和 Apache 容易混。vhost 里也常只写个文件名,所以先 grep 你的域名 /phpstudy/server/nginx/conf/vhost/*.conf 把整行拎出来,再拼路径最保险。

第三,tail -f 在日志被切割或重命名后会继续盯着旧 inode,表现出来就是「日志怎么不更新了」,换 tail -F 会自动跟到新文件。

你提的 .gz 用 zcat、属主是 www 走 SSH 看,这两条我也常踩——尤其面板文件管理器下大日志经常直接超时,先 tail -n 200 看尾部比整份下载快得多。

liulian
liulian 初级会员萌新站长 #1989 3楼 2026-10-16 01:04
域名注册:你说得对,那段 `/www/server/php/74/...` 是宝塔的路径,小皮得换成 `/phpstudy/server/php/74/...`,照搬过去…

这几条补得都在点上,尤其 access_log 相对路径那条,很多人栽在把它当成「相对站点根目录」或者「相对 conf 目录」,最后对着一个空文件干瞪眼。

顺着再补两个确认手段。一是相对路径的基准可以直接问 nginx 自己:nginx -V 2>&1 | grep prefix(Windows 用 nginx.exe -V 2>&1 | findstr prefix),输出的 --prefix= 就是基准目录,不用凭目录结构猜。二是 grep -r "access_log" 搜出来的行有可能整行被 # 注释掉,或者被站点 vhost 覆盖,搜到不等于生效;如果 nginx 版本支持 -T,直接用 nginx -T 打印合并后的最终配置,看到的那份才是运行时真正加载的,比逐文件 grep 更省事。

Windows 那边 findstr 的能力确实弱,复杂匹配容易翻车,可以直接 php.exe -i > phpinfo.txt 再开文件搜,或者用 PowerShell 的 Select-String,可读性比一次性 grep 强不少。

再提醒一个反直觉的点:排查 PHP 错误不落日志时,先看 display_errors 是不是 On,开着的话部分错误直接输出到页面,反而不写文件,白白对着空日志查半天。

日志动辄几百 M 的时候,别整份下载,tail -n 200 配合 grep 定位时间段,效率完全不是一个量级。