frankenphp是基于caddy的php应用服务器,将php常驻内存运行,无需nginx+php-fpm架构;它内置web服务、自动https、http/3等能力,配置简化为单个caddyfile,支持worker模式显著提升laravel/symfony等框架性能。

不能直接迁,但可以低成本迁移——FrankenPHP 不是宝塔的“兼容目标”,它不运行在宝塔面板管理的 Nginx/Apache + PHP-FPM 架构下,而是以 Swoole 风格的 HTTP 服务器原生运行 PHP 应用。你不是“换服务器”,而是“换执行模型”。
FrankenPHP 是什么,和宝塔的 PHP 有什么根本区别
FrankenPHP 是一个基于 Caddy 的 PHP 运行时,它把 PHP 当作应用进程直接托管,跳过了传统 Web 服务器(Nginx)+ PHP-FPM 的通信层。这意味着:
-
php-fpm进程不存在,www.conf、pool.d配置全部失效 - 伪静态规则(如 WordPress 的
.htaccess或宝塔里的 Nginx 规则)需重写为 FrankenPHP 的Caddyfile路由逻辑 - 宝塔里启用的 PHP 扩展(如
opcache、redis、mysqli)仍需手动安装并启用,但加载方式可能不同(例如通过php.ini或 FrankenPHP 的扩展配置) - 宝塔的“一键部署”“网站监控”“SSL 自动续签”等功能在 FrankenPHP 环境中完全不可用
迁移 WordPress 到 FrankenPHP 的实际路径
你必须放弃“面板直传”或“整机迁移”这类宝塔专属方案,转为手动适配。核心动作包括:
将 LaTeX(.tex)学术论文转换为 Word(.docx),支持可编辑的 OMML 公式、原生 Word 表格、嵌入图形、IEEE 双栏排版及参考文献
- 从宝塔导出数据库:用
mysqldump或 phpMyAdmin 导出 SQL,注意显式指定--default-character-set=utf8mb4,避免 FrankenPHP 启动后因字符集报错 - 复制网站文件:只取
/www/wwwroot/your-site/*下的代码(不含宝塔生成的.user.ini、.htaccess、404.html等运维层文件) - 重写入口逻辑:WordPress 默认依赖
index.php被 Web 服务器转发请求,FrankenPHP 需要你在项目根目录放一个Caddyfile,内容类似:handle_path /wp-admin/* { reverse_proxy unix//var/run/php/php.sock },否则后台 404 - 替换
wp-config.php中的DB_HOST:FrankenPHP 通常搭配 SQLite 或独立 MySQL 容器,若复用原服务器数据库,DB_HOST得改成可访问的 IP 或 Docker 网络别名,不能写localhost
哪些宝塔功能在 FrankenPHP 里会彻底消失
这不是“迁移后调一下设置就能用”的问题,而是架构级不兼容。以下功能一旦切换就无法恢复:
- 宝塔的“计划任务” → FrankenPHP 没有内置 cron 管理,得用系统
cron或supercronic - 宝塔的“防火墙”“网站监控”“日志切割” → 全部失效,需改用 Caddy 日志、
journalctl或 Prometheus + Grafana - 宝塔 SSL 证书自动部署 → FrankenPHP 不读取宝塔的证书路径,必须手动挂载证书到 Caddyfile 并配置
tls指令 - 宝塔的“PHP 项目管理器” → FrankenPHP 只认标准 PSR-7/PSR-15 入口,WordPress 需加一层
frankenphp扩展或使用官方frankenphp-wordpress示例配置
最常被忽略的一点:FrankenPHP 默认不启用 mod_rewrite 等 Apache 行为,WordPress 的固定链接(permalink)必须靠 Caddy 的 uri 重写规则兜底,漏掉这步,前台文章页全 404——这不是缓存问题,是路由根本没走到 WordPress。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










