跳转到主内容
极星编程网:以代码为星,赴技术山海!

宝塔面板网站报错500如何分析_查看PHP错误日志与排查配置

error.log 是定位 PHP 500 错误的第一手证据,需重点搜索 PHP Parse error、Fatal error 和内存耗尽等关键词,并核对时间戳、display_errors 生效状态、扩展启用情况及文件权限。 看
error.log
里有没有
PHP Parse error
或
Fatal error
500 错误不是服务器宕了,而是 PHP 进程在执行时被硬性中断——要么根本没跑起来,要么代码当场炸了。
error.log
是第一手证据,90% 的问题靠它就能定性。 进宝塔 → 网站 → 选站点 → 日志 → 错误日志,打开最新
域名.error.log
重点搜三类关键词:
PHP Parse error
(语法错)、
PHP Fatal error
(致命错误)、
Allowed memory size exhausted
(内存爆了) 如果看到
Premature end of script headers
,说明 PHP 进程压根没输出就退出了,大概率是扩展缺失或
php-fpm
没起来,不是代码问题 注意时间戳:必须和你刷新页面的时间一致,否则日志是旧的,查了也白查 确认
display_errors = On
是否真生效 线上默认关掉错误显示,所以只看到 500,看不到具体哪行炸了。临时打开能直接在浏览器里看到错误详情,比翻日志还快,但必须确保它真的起作用。 改网站根目录下的
.user.ini
,把
display_errors = Off
改成
On
,同时确认
error_reporting = E_ALL
如果用了自定义
php.ini
或 Nginx 配置里写了
fastcgi_param PHP_VALUE
,它会覆盖
.user.ini
,得一并检查 改完必须重启 PHP(不是重载),否则无效;定位完立刻关掉,避免泄露路径或敏感信息 检查 PHP 扩展和禁用函数是否匹配程序需求 换 PHP 版本、装新插件、升级 Laravel/WordPress 后突然 500,八成不是代码问题,是扩展没跟上或关键函数被禁用了。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 Laravel 10 要求
mbstring
、
openssl
、
pdo_mysql
全启用;Typecho 在 PHP 8.0+ 下没开
gd
,上传头像就 500 进宝塔 → 软件商店 → 找对应 PHP 版本 → 设置 → 安装扩展,把基础项全勾上;再进“禁用函数”,把
exec
、
shell_exec
等按需放开 SSH 进入对应 PHP
bin
目录,运行
/www/server/php/82/bin/php -m | grep -E "(mbstring|openssl|pdo)"
,核对是否真加载了 别忽略文件权限和
open_basedir
限制 文件属主不对、目录不可写、跨目录访问被拦,都会导致 PHP 在读配置、写日志、生成缓存时失败,最终返回 500。 立即学习 “ PHP免费学习笔记(深入) ”; 确认 Web 服务运行用户(通常是
www
),执行
chown -R www:www /www/wwwroot/your-site.com
对
runtime
、
storage
、
logs
等可写目录单独授权:
find . -type d \( -name "runtime" -o -name "storage" \) -exec chmod 755 {} \;
如果站点要包含外部配置或调用公共类库,检查“防跨站攻击(
open_basedir
)”设置,手动添加允许路径,比如
/www/wwwroot/common:/tmp
复杂点往往藏在“看似正常”的地方:日志空、
display_errors
改了却没效果、扩展明明勾了却没加载——这时候得一层层剥,别跳步。

相关文章