当前位置:首页>Linux>Linux 自动更新实战:一套配置实现安全补丁自动安装(Ubuntu+CentOS)

Linux 自动更新实战:一套配置实现安全补丁自动安装(Ubuntu+CentOS)

  • 2026-06-30 00:55:00
Linux 自动更新实战:一套配置实现安全补丁自动安装(Ubuntu+CentOS)

熬夜排查服务器异常,最后发现是因为一个已知的系统漏洞未及时打补丁,被黑客趁机入侵;或者每天手动执行apt update && apt upgradednf update,重复又繁琐,偶尔一忙就忘记,给系统留下安全隐患。

Linux系统的安全漏洞就像家里没关的窗户,随时可能被“小偷”(黑客)盯上。大量安全事件与未及时修复漏洞有关(具体比例因环境而异)——小到服务器被入侵、数据泄露,大到业务瘫痪、合规审计失败,损失不可估量。

手动更新补丁不仅耗时耗力,还容易遗漏;而自动更新安全补丁,能让系统自动修复已发布补丁覆盖的已知漏洞,在漏洞被利用前堵住缺口,成为Linux服务器安全防护的“第二道防线”。

今天这篇教程,就手把手教你实现Linux系统自动更新与安全补丁自动安装,覆盖Ubuntu和CentOS两大主流发行版,从配置到测试、从通知到风险规避,新手也能看完就会用,彻底解放双手,守住系统安全底线。

一、为什么必须自动安装安全补丁?

很多运维新手会有一个误区:“我的服务器在内网,不用打补丁;或者偶尔手动更一次,问题不大”。但事实是,一旦边界防护被突破或存在横向移动风险,未修复漏洞会迅速被利用,而一个未修复的高危漏洞,在公开后可能在较短时间内被利用。

1. 安全漏洞的致命风险

常见的漏洞风险主要有3类,每一种都可能带来毁灭性后果:

  • 远程代码执行漏洞
    :黑客无需登录服务器,就能通过漏洞执行恶意代码,直接控制服务器(如ShellShock、Log4j漏洞);
  • 权限提升漏洞
    :普通用户可利用漏洞提升至root权限,篡改系统配置、删除核心数据;
  • 信息泄露漏洞
    :黑客通过漏洞窃取服务器中的敏感数据(如密码、数据库信息、业务数据)。

2. 手动更新的3大弊端

  1. 易遗漏
    :Linux系统漏洞更新频繁,每天可能有多个安全补丁发布,手动更新很难做到全覆盖;
  2. 效率低
    :如果管理多台服务器,逐台手动更新耗时耗力,不符合运维自动化的趋势;
  3. 不及时
    :漏洞修复的“黄金时间”是发布后的24小时内,手动更新往往会错过这个窗口,给黑客可乘之机。

综上,自动安装安全补丁不是“可选操作”,在生产环境中强烈建议启用——它能让系统在后台自动完成补丁检测、下载、安装,既节省时间,又能最大程度降低安全风险。

二、实操环节:Ubuntu 自动更新配置(unattended-upgrades)

Ubuntu系统默认提供了unattended-upgrades工具,专门用于自动安装安全更新和重要补丁,配置简单,无需复杂操作,新手可直接套用。

1. 安装 unattended-upgrades 工具

Ubuntu 18.04及以上版本默认已安装,若未安装,执行以下命令安装:

# 更新软件包列表
sudo apt update

# 安装 unattended-upgrades
sudo apt install -y unattended-upgrades apt-listchanges

说明:apt-listchanges 用于查看更新包的变更日志,方便后续了解补丁内容。

2. 核心配置:自动安装安全更新

通过编辑配置文件,设置自动更新的规则(如更新源、更新类型、是否自动重启等),配置文件路径:/etc/apt/apt.conf.d/50unattended-upgrades

# 编辑配置文件
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

将以下配置复制粘贴到文件中(替换原有内容,关键配置已标注说明):

// 允许自动更新的源(仅开启安全更新,避免非必要更新导致不兼容)
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";  // 安全更新(必开)
        // "${distro_id}:${distro_codename}-updates";  // 普通更新(生产环境建议注释,按需开启)
        // "${distro_id}:${distro_codename}-proposed"; // 测试版更新(禁止开启)
        // "${distro_id}:${distro_codename}-backports";// 回溯更新(禁止开启)
};

// 自动安装安全补丁(核心开关)
Unattended-Upgrade::Automatic-Reboot "false";  // 是否自动重启(默认关闭,生产环境谨慎开启)
Unattended-Upgrade::Automatic-Reboot-Time "03:00";  // 自动重启时间(若开启重启,建议设置凌晨低峰期)

// 排除不需要自动更新的软件包(重点!避免核心业务软件被误更)
Unattended-Upgrade::Package-Blacklist {
"nginx";  // 示例:禁止自动更新nginx(根据实际业务调整)
"mysql-server";  // 示例:禁止自动更新MySQL
        // "php7.4";  // 按需添加,每行一个软件包名
};

// 保存更新日志(便于排查问题)
Unattended-Upgrade::SyslogEnable "true";
Unattended-Upgrade::SyslogFacility "daemon";

// 下载更新后立即安装,无需手动确认
Unattended-Upgrade::InstallOnShutdown "false";

// 清理过期的更新包,释放磁盘空间
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

3. 开启自动更新定时任务

配置完成后,需要开启对应的定时任务(unattended-upgrades并非常驻systemd服务,实际由apt-daily.timer和apt-daily-upgrade.timer两个systemd定时器触发),让系统定期检测并安装更新,执行以下命令:

# 开启自动更新相关定时器(核心触发机制)
sudo systemctl enable --now apt-daily.timer apt-daily-upgrade.timer

# 查看定时器状态(确认是否正常运行,替代查看unattended-upgrades服务)
sudo systemctl list-timers | grep apt

正常运行的状态会显示两个定时器的下次执行时间,若出现异常,可通过journalctl -u apt-daily-upgrade.timer查看日志排查问题。这里需要注意:unattended-upgrades并非长期运行的服务,无需查看其常驻状态,重点关注定时器是否正常即可。

4. 测试配置是否生效(必做步骤)

配置完成后,建议手动触发一次更新,测试是否能正常下载安装补丁:

# 手动触发自动更新(模拟系统定时检测)
sudo unattended-upgrade --dry-run  #  dry-run 表示模拟执行,不实际安装(推荐先执行)
sudo unattended-upgrade --debug    # 调试模式,仅增加日志输出,不影响是否执行更新,可查看详细过程

若执行后无报错,且能正常检测到安全补丁,说明配置生效。

三、实操环节:CentOS Stream / Rocky Linux / AlmaLinux / RHEL 自动更新配置(dnf-automatic)

CentOS 8已于2021年底停止支持(EOL),继续使用存在严重安全风险,因此推荐在CentOS Stream、Rocky Linux、AlmaLinux、RHEL 8+版本中使用dnf-automatic工具(CentOS 7可用yum-cron,下文会补充),用于自动检测、下载、安装安全补丁,与Ubuntu的unattended-upgrades功能类似。

1. 安装 dnf-automatic 工具

# 安装 dnf-automatic
sudo dnf install -y dnf-automatic

# 查看工具版本(确认安装成功)
dnf-automatic --version

2. 核心配置:自动安装安全更新

配置文件路径:/etc/dnf/automatic.conf,编辑配置文件设置更新规则:

# 编辑配置文件
sudo nano /etc/dnf/automatic.conf

修改以下关键配置(其他配置保持默认即可,标注部分为必改项):

[main]
# 自动更新的类型(仅安全更新,生产环境首选)
upgrade_type = security  # 可选值:security(仅安全更新)、default(所有更新)、minimal(最小更新)

# 下载并安装更新(核心开关)
download_updates = yes# 下载更新包
apply_updates = yes# 自动安装更新包

# 自动重启设置(谨慎开启)
reboot = no# 是否自动重启(默认关闭)
reboot_timeout = 300# 重启超时时间(秒),若开启重启,建议设置

# 排除不需要自动更新的软件包(与Ubuntu类似,保护核心业务软件)
exclude = nginx mysql-server php  # 多个软件包用空格分隔

# 日志配置(便于排查问题)
debuglevel = 1
logfile = /var/log/dnf-automatic.log
email_from = root@localhost  # 发送通知的邮箱
email_to = admin@example.com # 接收通知的邮箱(替换为你的邮箱)
email_host = localhost       # 邮件服务器(本地默认即可)

3. 开启 dnf-automatic 服务并设置定时

# 开启服务并设置开机自启
sudo systemctl enable --now dnf-automatic.timer

# 查看定时任务状态(确认是否正常运行)
sudo systemctl list-timers dnf-automatic.timer

dnf-automatic的执行时间由dnf-automatic.timer控制,默认带有随机延迟(RandomizedDelaySec),并非固定“每天一次”,可通过以下命令查看具体定时规则:

systemctl cat dnf-automatic.timer

定时器会定期触发更新检测,若有安全补丁,会自动下载并安装。

补充:CentOS 7 配置(yum-cron)

CentOS 7 不支持dnf-automatic,需使用yum-cron工具,配置步骤如下(注意:yum的security插件依赖仓库提供的安全元数据,仅在支持security metadata的仓库中,“仅更新安全补丁”的配置才有效):

# 安装 yum-cron
sudo yum install -y yum-cron

# 编辑配置文件
sudo nano /etc/yum/yum-cron.conf

# 修改关键配置
update_cmd = security  # 仅更新安全补丁
update_messages = yes  # 发送更新通知
download_updates = yes # 下载更新
apply_updates = yes    # 安装更新
exclude = nginx mysql-server  # 排除不需要更新的软件包

# 开启服务并设置开机自启
sudo systemctl enable --now yum-cron

四、关键配置:排除不需要自动更新的软件包

在生产环境中,并非所有软件都适合自动更新——比如核心业务使用的nginx、MySQL、PHP等软件,一旦自动更新到不兼容版本,可能导致服务中断、业务异常。需要注意的是,完全排除这类软件会错过其安全补丁,建议仅排除大版本更新,保留安全补丁更新(可通过软件包版本锁定实现)。

因此,排除不需要自动更新的软件包,是自动更新配置中最关键的一步,以下是两大发行版的详细配置方法(前文已提及,此处汇总强调):

1. Ubuntu 排除软件包

编辑 /etc/apt/apt.conf.d/50unattended-upgrades,在Package-Blacklist中添加需要排除的软件包,每行一个:

Unattended-Upgrade::Package-Blacklist {
"nginx";          # 排除nginx
"mysql-server";   # 排除MySQL
"php*";           # 排除所有php相关包(用*通配符)
"docker-ce";      # 排除Docker
};

2. CentOS 排除软件包

编辑 /etc/dnf/automatic.conf(CentOS 8+),在exclude后添加软件包,用空格分隔:

# CentOS 8+
exclude = nginx mysql-server php docker-ce

# CentOS 7(yum-cron),编辑/etc/yum/yum-cron.conf
exclude = nginx mysql-server

💡 实用技巧:排除软件包时,可使用通配符(如php*)排除一类软件,但要谨慎使用,避免误排除必要的系统软件。

五、进阶配置:更新结果通知与自动重启

自动更新后,我们需要知道更新是否成功、安装了哪些补丁;若更新后需要重启(如内核更新),也需要合理配置重启策略,避免影响业务。

1. 更新结果通知(邮件通知,推荐)

通过邮件通知,可实时了解更新结果,若更新失败,能及时排查问题。以下是Ubuntu和CentOS的邮件配置方法:

(1)Ubuntu 邮件配置

# 安装邮件发送工具
sudo apt install -y postfix

# 编辑 unattended-upgrades 配置文件
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

# 添加以下配置(开启邮件通知)
Unattended-Upgrade::Mail "admin@example.com";  # 接收通知的邮箱
Unattended-Upgrade::MailOnlyOnError "true";    # 仅在更新失败时发送邮件(可选,推荐)

(2)CentOS 邮件配置

# 安装邮件发送工具
sudo dnf install -y postfix
sudo systemctl enable --now postfix

# 编辑 dnf-automatic 配置文件
sudo nano /etc/dnf/automatic.conf

# 修改邮件相关配置
email_from = root@localhost  # 发送者邮箱
email_to = admin@example.com # 接收者邮箱
email_host = localhost       # 本地邮件服务器(仅能发送本地邮件)
# 补充说明:若需要发送外部邮件(如QQ邮箱、企业邮箱),需额外配置SMTP relay及DNS、SPF相关设置

测试邮件通知:手动触发一次更新,查看是否能收到邮件(若未收到,检查postfix服务是否正常运行)。

2. 自动重启配置(生产环境谨慎开启)

部分更新(如内核更新、系统核心组件更新)后,需要重启服务器才能生效,但自动重启可能导致业务中断,因此需谨慎配置:

(1)Ubuntu 自动重启

# 编辑配置文件
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

# 修改以下配置
Unattended-Upgrade::Automatic-Reboot "true";  # 开启自动重启
Unattended-Upgrade::Automatic-Reboot-Time "03:00";  # 重启时间(凌晨3点,低峰期)

(2)CentOS 自动重启

# 编辑配置文件
sudo nano /etc/dnf/automatic.conf

# 修改以下配置
reboot = yes               # 开启自动重启
reboot_timeout = 300      # 重启超时时间(5分钟)

⚠️ 重要提醒:生产环境建议关闭自动重启,改为手动重启——更新完成后,查看更新日志,确认无异常后,在业务低峰期手动重启服务器,避免意外中断。

六、生产环境注意事项:规避更新带来的不兼容性风险

自动更新虽好,但在生产环境中,若配置不当,可能导致软件不兼容、服务中断等问题(⚠️ 自动更新可能导致:内核升级、ABI变化、服务重启),以下是必须注意的5点,帮你规避风险:

  1. 仅开启安全更新,禁止普通更新
    :生产环境只需要安装安全补丁,无需更新非安全相关的软件包(如系统工具、普通应用),避免因版本更新导致不兼容;
  2. 必排除核心业务软件
    :将nginx、MySQL、PHP、Docker等核心业务软件加入排除列表,手动控制更新时间和版本,更新前先在测试环境验证;
  3. 开启更新日志和通知
    :实时监控更新过程,若更新失败或出现异常,能及时发现并处理,避免问题扩大;
  4. 避免业务高峰更新
    :调整自动更新的时间(如凌晨2-4点),避开业务高峰,即使出现意外,影响范围也最小;
  5. 定期备份系统和数据
    :更新前自动或手动备份系统配置和业务数据,云环境强烈建议启用快照策略;若更新导致系统异常,可快速回滚,减少损失。

💡 经验提示:建议先在测试环境配置自动更新,运行1-2周,确认无兼容性问题后,再推广到生产环境;对于核心业务服务器,可采用“灰度更新”(先更新1-2台测试,无异常再批量更新)。此外,部分企业会采用“自动检测 + 手动审批”的模式,既保证补丁及时检测,又避免自动安装带来的不可控风险。

七、常见问题与踩坑指南(新手必看)

配置自动更新时,新手容易遇到以下问题,整理了具体的解决方案,帮你避坑:

Q1:自动更新失败,提示“权限不足”?

A:核心原因是服务未以root权限运行,解决方案:

# 重启自动更新服务,确保以root权限运行
sudo systemctl restart unattended-upgrades  # Ubuntu
sudo systemctl restart dnf-automatic.timer  # CentOS 8+
sudo systemctl restart yum-cron             # CentOS 7

Q2:排除软件包后,仍被自动更新?

A:检查排除配置是否正确,常见错误有2种:

  1. 软件包名错误:比如Ubuntu中MySQL的包名是mysql-server,CentOS中是mariadb-server,需用dpkg -l | grep 软件名(Ubuntu)或rpm -qa | grep 软件名(CentOS)确认包名;
  2. 配置文件语法错误:Ubuntu的配置文件中,软件包名需用双引号包裹,CentOS的exclude后用空格分隔,无引号。

Q3:更新后服务无法启动?

A:大概率是更新导致软件版本不兼容,解决方案:

# 1. 查看更新日志,确认更新的软件包
cat /var/log/unattended-upgrades/unattended-upgrades.log  # Ubuntu
cat /var/log/dnf-automatic.log                            # CentOS Stream/Rocky Linux等

# 2. 回滚软件包到之前的版本(以nginx为例)
# 先查看仓库中可用的旧版本
apt-cache policy nginx  # Ubuntu
# 再指定版本回滚(仅当仓库中存在该旧版本时可执行)
sudo apt install nginx=1.18.0-0ubuntu1  # Ubuntu,版本号需根据实际可用版本调整
sudo dnf downgrade nginx                # CentOS Stream/Rocky Linux等,回滚到上一个版本

# 3. 将该软件包加入排除列表,避免再次自动更新
# 补充说明:若仓库中无对应旧版本,需借助系统快照或备份进行恢复

Q4:邮件通知收不到?

A:排查步骤:

  1. 检查postfix服务是否正常运行:sudo systemctl status postfix
  2. 检查邮件配置是否正确,尤其是接收邮箱地址;
  3. 手动发送测试邮件:echo "测试邮件" | mail -s "测试" admin@example.com,查看是否能收到。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 19:21:58 HTTP/2.0 GET : https://f.mffb.com.cn/a/493297.html
  2. 运行时间 : 0.091414s [ 吞吐率:10.94req/s ] 内存消耗:4,617.59kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c1168542a676570cd64beca6171704ab
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000489s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000751s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000326s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000282s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000481s ]
  6. SELECT * FROM `set` [ RunTime:0.000196s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000561s ]
  8. SELECT * FROM `article` WHERE `id` = 493297 LIMIT 1 [ RunTime:0.002330s ]
  9. UPDATE `article` SET `lasttime` = 1783077718 WHERE `id` = 493297 [ RunTime:0.001718s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000269s ]
  11. SELECT * FROM `article` WHERE `id` < 493297 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000807s ]
  12. SELECT * FROM `article` WHERE `id` > 493297 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000427s ]
  13. SELECT * FROM `article` WHERE `id` < 493297 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002416s ]
  14. SELECT * FROM `article` WHERE `id` < 493297 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005951s ]
  15. SELECT * FROM `article` WHERE `id` < 493297 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003878s ]
0.097852s