当前位置:首页>php>PHP 生产级 Docker 镜像部署与最佳实践

PHP 生产级 Docker 镜像部署与最佳实践

  • 2026-08-21 15:17:11
PHP 生产级 Docker 镜像部署与最佳实践

官方 PHP 镜像到底差了什么?

如果你曾经用 Docker 部署过 PHP 应用,大概率经历过这样的场景:拉一个 php:8.3-fpm 官方镜像,写一份几十行的 Dockerfile 装 Composer、装扩展、调权限,再挂一堆配置文件——php.iniwww.confnginx.conf——最后祈祷生产环境和本地表现一致。

这不是你一个人的问题。官方 PHP Docker 镜像本质上只是一个"能跑 PHP"的最小运行时:没有 Composer,没有生产级的安全加固,默认以 root 用户运行,FPM 参数是裸的默认值,健康检查需要自己写,OPcache 配置全靠自己摸索。对于本地开发勉强够用,但离"生产就绪"还有相当的距离。

于是大多数团队的做法是:fork 一份官方 Dockerfile,加上自己的补丁,维护一个内部镜像。时间一长,这个镜像就变成了没人敢动的"祖传配置"。

Serversideup/php 就是为了解决这个问题而生的。它不是另起炉灶造一个新镜像,而是在官方 PHP 镜像之上,补全了生产环境真正需要的一切。

项目概况

serversideup/php 由 Server Side Up 团队(Dan Pastori 和 Jay Rogers)维护,是一个完全开源(GPL-3.0)的 PHP Docker 镜像方案。截至目前,项目在 GitHub 上有 2,500+ stars,Docker Hub 累计拉取超过 100 万次,已有 46 位贡献者参与开发,最新版本为 v4.5.1(2026 年 7 月发布)。

它支持的 PHP 版本范围很广:PHP 7.4 到 8.5,同时提供 Debian 和 Alpine 两种基础系统。镜像变体覆盖了几乎所有主流部署场景:

变体
适用场景
镜像标签示例
cli
命令行脚本、定时任务、队列 Worker
serversideup/php:8.5-cli
fpm
自带 Web Server 的自定义方案
serversideup/php:8.5-fpm
fpm-nginx
FPM + NGINX(最常用)
serversideup/php:8.5-fpm-nginx
fpm-apache
FPM + Apache
serversideup/php:8.5-fpm-apache
frankenphp
现代高性能方案,基于 Caddy
serversideup/php:8.5-frankenphp

所有镜像同时发布在 Docker Hub 和 GitHub Packages 上,不会因为单一源的故障而拉不到镜像。

核心特性详解

与其罗列所有功能,不如挑几个真正改变开发体验的特性展开聊聊。

环境变量驱动配置

这是 serversideup/php 最核心的设计理念:几乎所有配置项都可以通过环境变量完成,不需要挂载或修改任何配置文件。

一个典型的例子。假设你需要调整 PHP 的内存限制、上传大小、执行时间,并开启 OPcache:

services:php:image:serversideup/php:8.5-fpm-nginxenvironment:PHP_MEMORY_LIMIT:"512M"PHP_UPLOAD_MAX_FILE_SIZE:"200M"PHP_MAX_EXECUTION_TIME:"180"PHP_OPCACHE_ENABLE:"1"

就这样。不需要 COPY php.ini /usr/local/etc/php/conf.d/,不需要在 Dockerfile 里写 RUN sed -i ...。改完重启容器即可生效。

环境变量覆盖了 PHP 本身的几乎所有可调参数,也覆盖了 NGINX/Apache/Caddy 的关键配置。举几个容易忽略但很有用的:

  • PHP_FPM_PM_MAX_CHILDREN:FPM 最大子进程数,默认 20,低配机器上可能需要调小
  • PHP_OPCACHE_JIT 和 PHP_OPCACHE_JIT_BUFFER_SIZE:PHP 8.x 的 JIT 编译器开关,CPU 密集型场景可以开启试试
  • NGINX_CLIENT_MAX_BODY_SIZE:NGINX 请求体大小限制,默认 100M
  • PHP_FPM_PM_CONTROL:FPM 进程管理策略,fpm-nginx 和 fpm-apache 默认是 ondemand(按需启动),这对低流量站点很友好

我个人的经验是:刚开始用的时候会不习惯"什么都靠环境变量"这种方式,觉得不如直接改配置文件直观。但用了一段时间之后,你会发现这恰恰是容器化应该有的样子——配置跟着部署走,而不是跟着镜像走。

非 root 运行与安全加固

官方 PHP 镜像默认以 root 用户运行。这意味着如果你的应用被攻破,攻击者拿到的就是容器内的 root 权限。在 Kubernetes 等编排平台中,root 容器通常会被安全策略直接拒绝。

serversideup/php 默认以 www-data(UID 33)用户运行,遵循最小权限原则。这在安全层面带来了几个好处:

  • 爆炸半径受限:即使应用被入侵,攻击者无法在容器内执行特权操作
  • Kubernetes 兼容:很多集群的 PodSecurityPolicy 或 OPA 策略要求非 root 运行
  • 符合 CIS/NIST 基准:安全审计时少一项整改

如果需要在构建阶段安装扩展,可以临时切换到 root:

FROM serversideup/php:8.5-cliUSER rootRUN install-php-extensions bcmath imagick redis mongodbUSER www-data

这里用到的 install-php-extensions 也是预装好的工具(来自 mlocati/docker-php-extension-installer),一行命令装扩展,自动处理依赖,不用再操心 apt-get 装一堆 dev 库。

另一个值得注意的安全细节:镜像默认关闭了 server_tokens(不暴露 NGINX 版本号),Session Cookie 默认要求 Secure 连接,SSL 模式支持 off/mixed/full 三种策略。这些都是"不需要你额外操心但确实有用"的加固。

S6 Overlay 进程管理

如果你用过 fpm-nginx 或 fpm-apache 变体,会发现容器里实际上跑着两个进程:PHP-FPM 和 Web Server(NGINX/Apache)。Docker 的哲学是"一个容器一个进程",但现实部署中把 FPM 和 Web Server 放在一起往往更实用——少一层网络跳转,配置也更简单。

问题是:谁来管理这两个进程的生命周期?如果一个挂了怎么办?

serversideup/php 选择了 S6 Overlay 作为 init 系统。S6 是一个轻量级的进程管理方案,专门为容器设计,比 Supervisor 更适合 Docker 场景。它提供了:

  • 进程监督:FPM 或 Web Server 异常退出时自动重启
  • 优雅关闭:收到 SIGTERM 时按正确顺序停止进程,支持零停机部署
  • 统一日志:所有进程的日志都输出到 STDOUT/STDERR,直接对接 Docker 日志驱动

对使用者来说,这些细节是透明的。你只需要知道:容器内的进程管理是可靠的,不需要自己写启动脚本或者额外装 Supervisor。

S6 的行为也可以通过环境变量调整。比如 S6_BEHAVIOUR_IF_STAGE2_FAILS 默认值是 2(服务启动失败时停止容器),确保编排系统能检测到故障并重启。排查问题时可以把 S6_VERBOSITY 从默认的 1 调高,会看到更详细的启动日志。

FrankenPHP 支持

FrankenPHP 是这个项目里最值得关注的变体之一。它不是一个传统的 FPM 进程管理器,而是把 PHP 直接嵌入到 Caddy Web Server 中运行,从根本上消除了 FPM 和 Web Server 之间的 FastCGI 通信开销。

用 FrankenPHP 意味着什么?

  • 架构简化:不再需要 FPM + NGINX 双进程,一个 FrankenPHP 进程就搞定了一切
  • HTTP/2、HTTP/3 原生支持:Caddy 自带这些能力,不需要额外配置
  • Worker 模式:可以把 PHP 应用常驻内存,省去每次请求的框架启动开销(对 Laravel 这类重型框架效果显著)
  • 性能提升:社区反馈在多种场景下比传统 FPM 快 2-3 倍

切换方式非常简单:

services:php:image:serversideup/php:8.5-frankenphpports:-"80:8080"volumes:-./:/var/www/html

把 image 从 fpm-nginx 换成 frankenphp,其他配置基本不变。Caddy 相关的配置(端口、日志级别、Server Root 等)通过 CADDY_* 前缀的环境变量控制。

踩坑提醒:FrankenPHP 目前支持 PHP 8.3+,如果你的项目还跑在 8.2 或更低版本,暂时用不了。另外,FrankenPHP 的 Worker 模式需要应用做少量适配(比如正确处理数据库连接的持久化),不是所有项目都能"零改动迁移"。建议先在 staging 环境充分测试。

快速上手

废话少说,直接上手。以下是一个最小可运行的 Laravel 项目部署示例。

1. 创建项目

mkdir -p my-app/publiccd my-app

在 public/ 下创建 index.php

<?phpphpinfo();

2. 编写 compose.yml

services:php:image:serversideup/php:8.5-fpm-nginxports:-"80:8080"volumes:-./:/var/www/htmlenvironment:PHP_UPLOAD_MAX_FILE_SIZE:"250M"PHP_OPCACHE_ENABLE:"0"# 开发环境关闭,方便调试

注意端口映射:容器内 Web Server 监听 8080(非特权端口),映射到宿主机的 80。这是刻意为之——非 root 用户无法绑定 1024 以下的端口。

3. 启动

docker compose up

启动成功,输出

访问 http://localhost,看到 phpinfo() 页面就算成功。页面上应该能看到 PHP 8.5、upload_max_filesize = 250Mopcache.enable = Off

4. 构建部署镜像

在生产环境中,为了安全性、可靠性和可移植性,你会直接将代码集成到镜像中

对于一个简单的 PHP 应用程序来说,你的 Dockerfile 可能如下所示

services:php:image:serversideup/php:8.5-frankenphpports:-"80:8080"volumes:-./:/var/www/htmlenvironment:PHP_UPLOAD_MAX_FILE_SIZE:"250M"PHP_OPCACHE_ENABLE:"1"# 生产环境开启

一旦你有了 Dockerfile,就可以使用以下命令构建镜像:

docker build -t docker-php-tinywan-hello:latest .

在部署之前,请先在当地测试你的生产镜像。

compose.prod.yml

services:php:image:docker-php-tinywan-hello:latestports:-"8799:8080"environment:PHP_OPCACHE_ENABLE:"1"PHP_MEMORY_LIMIT:"512M"

运行

dockercompose-fcompose.prod.ymlup

这样你就可以在将镜像部署到实际服务器之前,确认其是否能够正确运行。

性能表现

关于性能,Server Side Up 官方引用了 Rabbit Company CEO Žiga Zajc 的测试数据:在相同条件下,serversideup/php 的 FPM 镜像可以处理约 484 请求/秒,而官方 PHP 镜像只有约 68 请求/秒

这个差距主要来自几个方面:

  • OPcache 预配置:官方镜像不带 OPcache 优化配置,serversideup/php 提供了经过调优的默认参数
  • FPM 进程管理:默认使用 ondemand 策略(fpm-nginx/fpm-apache 变体),按需启动 worker,比 dynamic 更省资源
  • 安全加固的副作用:非 root 运行、正确的文件权限、关闭不必要的功能,这些都间接减少了开销

当然,基准测试的数据需要结合自己的业务场景来看。但至少可以确认:使用这个镜像不会因为"封装了太多东西"而变慢,恰恰相反,合理的默认配置反而比裸镜像跑得更好。

在生产环境中,还可以通过环境变量进一步调优:

environment:PHP_OPCACHE_ENABLE:"1"PHP_OPCACHE_MEMORY_CONSUMPTION:"256"PHP_OPCACHE_MAX_ACCELERATED_FILES:"20000"PHP_OPCACHE_JIT:"1255"PHP_OPCACHE_JIT_BUFFER_SIZE:"128M"PHP_FPM_PM_MAX_CHILDREN:"50"PHP_FPM_PM_CONTROL:"dynamic"PHP_MEMORY_LIMIT:"512M"

内置健康检查

生产环境中,负载均衡器和编排系统需要知道你的应用是否还活着。serversideup/php 内置了健康检查端点(默认路径 /healthcheck),Web 类变体(fpm-nginx、fpm-apache)会自动响应。

这意味着在 Kubernetes 中配置 livenessProbe 和 readinessProbe 变得极其简单:

livenessProbe:httpGet:path:/healthcheckport:8080initialDelaySeconds:10periodSeconds:15readinessProbe:httpGet:path:/healthcheckport:8080initialDelaySeconds:5periodSeconds:10

健康检查路径可以通过 HEALTHCHECK_PATH 环境变量自定义。注意 cli 和 frankenphp 变体没有内置这个端点——前者因为没有 Web Server,后者因为 FrankenPHP 有自己的机制。

原生 CloudFlare 支持

如果你的站点走 CloudFlare CDN,获取用户真实 IP 是一个常见问题。CloudFlare 的请求经过代理转发后,Web Server 看到的来源 IP 是 CloudFlare 的节点 IP,不是用户真实 IP。

serversideup/php 的 fpm-nginx 和 fpm-apache 变体预配置了 CloudFlare 的可信代理列表,开箱即用。你不需要手动维护 CloudFlare IP 列表,也不用在 NGINX 里写一堆 set_real_ip_from 指令。

适用场景与局限性

适合的场景:

  • Laravel、WordPress、Symfony 等主流 PHP 框架的新项目或迁移项目
  • 需要从开发到生产保持环境一致性的团队
  • Kubernetes、Docker Swarm 等容器编排环境
  • 想要快速切换 PHP 版本测试兼容性的 CI/CD 流水线
  • 希望降低运维成本、减少"祖传配置"的小中型团队

需要注意的地方:

  • 端口差异:默认监听 8080 而非 80/443,已有的反向代理配置可能需要调整
  • Webroot 路径:默认文档根目录是 /var/www/html/public,如果你的项目结构不同,需要设置 NGINX_WEBROOT 或 APACHE_DOCUMENT_ROOT
  • FrankenPHP 成熟度:虽然性能出色,但 Worker 模式需要应用适配,部分老旧项目可能不兼容
  • 学习成本:如果你的团队对 Docker 不熟悉,从"直接装 LNMP"切换到容器化部署需要一定的适应期
  • 自定义深度:环境变量覆盖了绝大多数场景,但如果你有非常特殊的 NGINX 或 FPM 配置需求,最终还是需要挂载自定义配置文件或基于此镜像二次构建

总结

serversideup/php 解决的不是"能不能用 Docker 跑 PHP"的问题,而是"怎么把 PHP 容器跑好"的问题。它把散落在各种博客、Stack Overflow 回答和团队内部文档里的最佳实践,打包成了一个开箱即用的镜像。

对于 PHP 开发者来说,它的价值在于:你不再需要成为 Docker 和 NGINX 专家才能部署生产级的 PHP 应用。几个环境变量,一个 compose.yml,就能得到一个安全、高性能、易维护的运行环境。

项目完全开源,维护活跃(最近一次更新就在 2026 年 7 月),社区规模也在持续增长。如果你正在为 PHP 容器化部署头疼,或者想给现有的 Docker 方案做一次升级,值得认真试一试。

相关链接:

  • 项目官网:https://serversideup.net/open-source/docker-php
  • GitHub:https://github.com/serversideup/docker-php
  • Docker Hub:https://hub.docker.com/r/serversideup/php
  • 文档:https://serversideup.net/open-source/docker-php/docs/getting-started
  • 社区 Discord:https://serversideup.net/discord

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 16:49:31 HTTP/2.0 GET : https://f.mffb.com.cn/a/509336.html
  2. 运行时间 : 0.273670s [ 吞吐率:3.65req/s ] 内存消耗:4,817.71kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3907768ee5556f855e4951b6573c6cdb
  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.003016s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001876s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000875s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000961s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001436s ]
  6. SELECT * FROM `set` [ RunTime:0.000720s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001488s ]
  8. SELECT * FROM `article` WHERE `id` = 509336 LIMIT 1 [ RunTime:0.001206s ]
  9. UPDATE `article` SET `lasttime` = 1787302171 WHERE `id` = 509336 [ RunTime:0.016450s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000860s ]
  11. SELECT * FROM `article` WHERE `id` < 509336 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001337s ]
  12. SELECT * FROM `article` WHERE `id` > 509336 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.011453s ]
  13. SELECT * FROM `article` WHERE `id` < 509336 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001714s ]
  14. SELECT * FROM `article` WHERE `id` < 509336 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002050s ]
  15. SELECT * FROM `article` WHERE `id` < 509336 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.015965s ]
0.277288s