当前位置:首页>Linux>Python之Flask应用部署(Linux)

Python之Flask应用部署(Linux)

  • 2026-04-16 03:41:00
Python之Flask应用部署(Linux)

在生产环境中部署Flask应用时,Flask自带的开发服务器(app.run())并不适合,因为它单进程、低性能且不稳定。我们需要一个高性能的WSGI服务器(如Gunicorn)和一个进程管理工具(如Supervisor或Systemd)来确保服务持续运行、自动重启和开机自启。

本文将详细讲解如何使用 Gunicorn + Supervisor 和 Gunicorn + Systemd 两种方式部署Flask项目,对比它们的异同,并说明代码或配置修改后如何重新部署。


前置条件

假设你已经拥有一个基本的Flask项目,结构如下:

/path/to/yourapp/
├── app.py               # 你的Flask应用入口
├── venv/                # Python虚拟环境(推荐)
└── requirements.txt

示例 app.py 内容:

from flask import Flask
app = Flask(__name__)

@app.route('/')
defhello():
return"Hello, Gunicorn!"

if __name__ =='__main__':
    app.run()

环境要求

  • Linux操作系统(本文以Ubuntu 22.04为例)
  • Python 3.8+
  • 已创建虚拟环境并安装依赖:pip install flask gunicorn

验证Gunicorn能否手动启动:

cd /path/to/yourapp
source venv/bin/activate
gunicorn --workers3--bind0.0.0.0:8000 app:app

如果访问 http://你的服务器IP:8000 能看到输出,说明Gunicorn配置正确。接下来我们将使用进程管理工具来管理它。


一、使用 Supervisor 部署

Supervisor是一个用Python编写的进程管理工具,可以监控和控制类Unix系统上的进程,提供Web界面和命令行工具。

1. 安装 Supervisor

sudoapt update
sudoaptinstall supervisor

安装后自动启动,管理配置文件位于 /etc/supervisor/conf.d/

2. 创建 Supervisor 配置文件

新建配置文件 /etc/supervisor/conf.d/flask_app.conf

[program:flask_app]
command=/path/to/yourapp/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 app:app
directory=/path/to/yourapp
user=www-data                    # 运行进程的用户,建议非root
autostart=true                   # 随supervisor启动而启动
autorestart=true                 # 进程意外退出时自动重启
redirect_stderr=true             # 将stderr重定向到stdout
stdout_logfile=/var/log/flask_app/gunicorn.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
environment=PATH="/path/to/yourapp/venv/bin"   # 可选,设置环境变量

注意

  • 将 /path/to/yourapp 替换为你的实际项目路径。
  • 确保 user 有权限访问项目目录和日志目录。可以先创建日志目录:sudo mkdir -p /var/log/flask_app && sudo chown www-data:www-data /var/log/flask_app
  • 如果虚拟环境路径不同,请调整 command 中的gunicorn路径。

3. 加载配置并启动

# 重新读取配置文件
sudo supervisorctl reread
# 更新配置(添加新程序或修改)
sudo supervisorctl update
# 启动程序
sudo supervisorctl start flask_app
# 查看状态
sudo supervisorctl status

如果状态显示 RUNNING,说明部署成功。

4. 设置 Supervisor 开机自启

Supervisor本身作为系统服务,默认已经配置开机自启(通过systemd管理)。如果没有,可以执行:

sudo systemctl enable supervisor
sudo systemctl start supervisor

5. 常用 Supervisor 命令

sudo supervisorctl status              # 查看所有进程状态
sudo supervisorctl restart flask_app   # 重启指定程序
sudo supervisorctl stop flask_app      # 停止
sudo supervisorctl tail flask_app      # 查看实时日志
sudo supervisorctl tail flask_app stderr

二、使用 Systemd 部署

Systemd 是现代Linux发行版默认的 init 系统,可以管理用户和系统服务。用它来管理Gunicorn更“原生”。

1. 创建 Systemd Service 文件

新建文件 /etc/systemd/system/flask_app.service

[Unit]
Description=Gunicorn instance to serve Flask app
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/yourapp
Environment="PATH=/path/to/yourapp/venv/bin"
Environment="FLASK_ENV=production"
ExecStart=/path/to/yourapp/venv/bin/gunicorn --workers 3 --bind 0.0.0.0:8000 app:app
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=flask_app

[Install]
WantedBy=multi-user.target

参数说明

  • After=network.target
    :保证网络启动后再启动服务。
  • Environment
    :可以设置多个环境变量,例如PATH、FLASK_ENV等。
  • Restart=always
    :无论退出码为何,都自动重启。
  • StandardOutput=journal
    :日志输出到systemd journal,可以用 journalctl 查看。

2. 启动并启用服务

# 重新加载systemd配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start flask_app
# 设置开机自启
sudo systemctl enable flask_app
# 查看状态
sudo systemctl status flask_app

3. 常用 Systemd 命令

sudo systemctl status flask_app        # 查看状态和最近日志
sudo systemctl restart flask_app       # 重启
sudo systemctl stop flask_app          # 停止
sudo systemctl enable flask_app        # 开机自启
sudo systemctl disable flask_app       # 取消开机自启
sudo journalctl -u flask_app -f# 实时查看服务日志

三、两种方式的异同对比

特性
Supervisor
Systemd
原生性
第三方工具,需要单独安装
Linux系统自带,无需安装
配置语法
INI风格,[program:name]
类似INI,[Service]等分段
进程管理能力
管理任意命令行进程
管理系统服务,功能更强大(依赖关系、资源限制等)
用户权限
通常以root运行Supervisor,再切换用户执行子进程
直接以指定User运行,安全性好
日志管理
可配置日志文件轮转、大小限制
默认输出到journald,也可重定向到文件
Web界面
可选内置Web界面(需配置)
无原生Web界面
开机自启
依赖systemd管理supervisor服务
直接通过systemd enable
进程监控粒度
支持进程组、事件监听等
支持目标单元、依赖链、失败自动恢复
命令易用性supervisorctl
 命令行,支持交互式
systemctl
 更标准,集成度高
适用场景
传统方式,适合管理多个应用(如旧系统)
现代Linux发行版首选,管理所有系统服务

相同点

  • 都能保证Gunicorn进程在崩溃后自动重启。
  • 都支持开机自启。
  • 都可以设置运行用户,避免root风险。
  • 都提供基本的进程状态查询和日志查看。

不同点(重点)

  • 集成度
    :Systemd已深度集成到Linux内核和用户空间,可以管理资源限制(cgroup)、socket激活、定时器等。Supervisor更轻量,但功能较少。
  • 配置变更
    :Systemd修改service文件后需执行 systemctl daemon-reload;Supervisor修改配置文件后需 supervisorctl reread && update
  • 日志
    :Systemd默认使用journal,适合集中日志管理;Supervisor直接写文件,适合传统运维习惯。
  • 学习曲线
    :Systemd配置稍复杂,但现代Linux管理员必须掌握;Supervisor配置更简单,适合不熟悉Systemd的开发者。

四、修改后如何重新部署

无论是修改了Flask代码,还是修改了Gunicorn的启动参数(如workers数量、bind地址),都需要让进程管理工具重新启动Gunicorn进程。

对于 Supervisor

1. 仅修改代码(未改Supervisor配置)

直接重启程序即可:

sudo supervisorctl restart flask_app

这种方式会强制杀死旧进程并启动新进程,会导致数秒的服务中断。如果需要优雅重启(不丢失正在处理的请求),可以发送HUP信号给Gunicorn主进程:

# 先获取Gunicorn主进程PID(通过ps aux | grep gunicorn)
sudokill-HUP<主进程PID>

但Supervisor的重启命令不包含这个机制,因此生产环境中建议使用Systemd的 ExecReload 或自己写脚本。

2. 修改了 Supervisor 配置文件

sudo supervisorctl reread    # 读取所有配置变更
sudo supervisorctl update    # 应用变更(会自动重启受影响的程序)
# 或者显式重启
sudo supervisorctl restart flask_app

对于 Systemd

1. 仅修改代码

重启服务:

sudo systemctl restart flask_app

同样,这会中断服务。更优雅的方式是向Gunicorn主进程发送HUP信号:

sudo systemctl kill-s HUP flask_app

这会让Gunicorn重新加载应用代码而不中断连接(worker进程逐个替换)。注意:如果修改了依赖或模块导入有变化,可能需要完全重启。

2. 修改了 Systemd service 文件

sudo systemctl daemon-reload   # 重新加载service文件
sudo systemctl restart flask_app   # 重启服务使新参数生效

通用建议:优雅重启的最佳实践

对于生产环境,建议在Gunicorn配置中添加 --reload 选项?不推荐,因为 --reload 会监控文件变化自动重启,但可能消耗额外资源且不可控。更常用的做法是:

  • 使用Gunicorn的 --graceful-timeout 和 --timeout 参数控制worker替换过程。
  • 配合负载均衡(如Nginx)实现蓝绿部署或滚动更新,从上游摘除节点后再重启。

简单场景下,直接 restart 短暂中断(<1秒)可以接受;若要求更高可用性,请使用 kill -HUP


五、总结

部署方式
优点
缺点
Supervisor
配置简单,易上手;支持Web界面;适合管理多个非系统级进程
额外依赖;日志轮转需手动配置;不是系统原生组件
Systemd
原生集成,功能强大(cgroup、socket激活等);日志管理方便(journalctl);系统标准
配置稍复杂;在不同发行版间有细微差异(但可接受)

推荐选择

  • 如果你的操作系统是较新的Linux发行版(Ubuntu 16.04+,CentOS 7+),首选 Systemd。它是未来标准,无需额外安装,运维命令统一。
  • 如果你需要管理大量非系统级应用(如多个Flask项目、Celery worker等),且习惯了Supervisor的交互式命令行和Web监控,可以使用Supervisor。但注意,在Systemd系统中运行Supervisor实际上多了一层抽象。

无论哪种方式,请确保:

  • Gunicorn的worker数量适中(建议 (2*CPU核心数)+1)。
  • 使用Nginx等反向代理处理静态文件和负载均衡。
  • 日志有轮转策略,避免磁盘占满。

通过本文的详细步骤,你应该能够轻松地将Flask项目部署到生产环境,并理解两种主流进程管理方式的异同。根据你的团队习惯和基础设施选择合适的方案即可。

CSDN地址:

https://blog.csdn.net/weixin_45146962/article/details/159989560?sharetype=blogdetail&sharerId=159989560&sharerefer=PC&sharesource=weixin_45146962&spm=1011.2480.3001.8118

欢迎关注公众号,感谢对文章的点赞分享喜欢,冉成未来会持续更新前后端开发技术、人工智能技术、IT相关的文章及学习经验、知识分享,未来虽然充满着不确定性,但我们可以不断提升自己,不断为未来做准备,让未来更好的自己成就更美好的未来。

Python之Flask开发框架-项目实战生活管理助手

Python之Flask开发框架(第五篇)

Python之Flask开发框架(第四篇)

Python之Flask开发框架(第三篇)

Python之Flask开发框架(第二篇

Python之Flask开发框架(第一篇)

Python之FastAPI 开发知识(第五篇)

Python之FastAPI 开发知识(第四篇)

FastAPI 开发知识(第三篇)

FastAPI 开发知识(第二篇)

FastAPI 开发知识(第一篇)

Django 基础入门教程(第五篇)

Django 基础入门教程(第四篇)

Django 基础入门教程(第三篇)

 Django 基础入门教程(第二篇)

Django 基础入门教程(第一篇)

Python基础系列 | Python之PyQt5基础知识(五)

Python基础系列 | Python之PyQt5基础知识(四)

Python基础系列 | Python之PyQt5基础知识(三)

Python基础系列 | Python之PyQt5基础知识(二)

Python基础系列 | Python之PyQt5基础知识(一)

Python基础系列 | Scrapy框架详细解析

Python基础 | Python之Selenium测试工具集

Python基础系列 | Python爬虫技术(二)

Python基础系列 | Python爬虫技术(一)

Python基础系列 | Python设置pip镜像源

Python基础系列|Python基础知识(六)

Python基础系列|Python基础知识(五)

Python基础系列|Python基础知识(四)

Python基础系列|Python基础知识(三)

Python基础系列|Python基础知识(二)

Python基础系列|Python基础知识(一)

python中列表的处理

Python 基础语法入门:从零开始学习 Python

Windows环境下部署 Python 项目

干货|AI人工智能简介及python环境搭建

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-16 19:22:28 HTTP/2.0 GET : https://f.mffb.com.cn/a/485640.html
  2. 运行时间 : 0.106774s [ 吞吐率:9.37req/s ] 内存消耗:5,033.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f920c6b30d2a9c3373ffd20622c38366
  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.000371s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000535s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000281s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000487s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000636s ]
  6. SELECT * FROM `set` [ RunTime:0.000233s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000646s ]
  8. SELECT * FROM `article` WHERE `id` = 485640 LIMIT 1 [ RunTime:0.000477s ]
  9. UPDATE `article` SET `lasttime` = 1776338548 WHERE `id` = 485640 [ RunTime:0.002175s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000276s ]
  11. SELECT * FROM `article` WHERE `id` < 485640 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001016s ]
  12. SELECT * FROM `article` WHERE `id` > 485640 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.005900s ]
  13. SELECT * FROM `article` WHERE `id` < 485640 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.014944s ]
  14. SELECT * FROM `article` WHERE `id` < 485640 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003561s ]
  15. SELECT * FROM `article` WHERE `id` < 485640 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006011s ]
0.108380s