frankenphp运行wordpress需配置入口路由、重写规则、php参数及https:设frankenphp_worker_entrypoint=index.php;caddy中添加rewrite * {to {path} {path}/ /index.php?{query}};php.ini启用cgi.fix_pathinfo=1、opcache并调大memory_limit;挂载证书并配置tls指令,wp-config.php中定义wp_home和wp_siteurl为https地址。

FrankenPHP 运行 WordPress 不需要传统 Nginx + PHP-FPM 的多层配置,但需针对性调整几个关键点:核心是让 FrankenPHP 正确识别 WordPress 的入口逻辑、静态资源路径、PHP 运行时行为,以及 HTTPS 和重写规则支持。
1. 启用 WordPress 入口路由(必需)
FrankenPHP 默认不自动识别 index.php 为入口,必须显式声明 WordPress 的“worker”入口。在 docker-compose.yml 或 frankenphp.yaml 中配置:
- 设置
FRANKENPHP_WORKER_ENTRYPOINT=index.php环境变量 - 或在服务定义中添加
entrypoint: ["frankenphp", "worker", "index.php"] - 确保
index.php文件位于 Web 根目录(如/var/www/html/),且可被 FrankenPHP 读取
2. 配置 URL 重写与 PATH_INFO 支持
WordPress 固定链接(Permalinks)依赖 Apache 的 .htaccess 或 Nginx 的 try_files,而 FrankenPHP 使用内置 Caddy 路由引擎,需手动启用重写:
- 在
frankenphp.yaml或 Caddyfile 片段中添加重写规则:rewrite * { to {path} {path}/ /index.php?{query} } - 确保 PHP 的
cgi.fix_pathinfo=1(在php.ini中)——这是解析PATH_INFO的前提,否则/post/hello/类链接会 404 - 禁用
opcache.validate_timestamps=0(开发阶段建议设为1),避免重写生效后页面不刷新
3. 调整 PHP 运行时参数(推荐)
FrankenPHP 内嵌 PHP 运行时,但部分 ini 设置仍需显式覆盖,尤其对 WordPress 插件生态友好:
- 内存限制至少设为
memory_limit = 256M(插件多时建议512M) - 启用 OPcache 并合理配置:
opcache.enable=1opcache.memory_consumption=128opcache.max_accelerated_files=10000 - 关闭错误显示:
display_errors=Off,同时开启日志:log_errors=On,日志路径建议映射到宿主机持久化目录
4. 证书与 HTTPS(生产环境必需)
FrankenPHP 原生支持 HTTPS 终止,无需额外反向代理:
- 将证书文件(
fullchain.pem和privkey.pem)挂载进容器,例如映射到/data0/Server/Auths/certs/ - 在配置中指定 TLS:
https://yourdomain.com { tls /data0/Server/Auths/certs/fullchain.pem /data0/Server/Auths/certs/privkey.pem } - WordPress 后台需同步设为 HTTPS:在
wp-config.php中添加define('WP_HOME', 'https://yourdomain.com');define('WP_SITEURL', 'https://yourdomain.com');
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











