WordPress
适用于普通 WordPress front controller 的实用 PHP-FPM 配方。
WordPress 虚拟主机
[[vhosts]]
name = "wordpress"
hosts = ["blog.example.com"]
[vhosts.web]
root = "/srv/wordpress"
index_files = ["index.php", "index.html"]
deny_dotfiles = true
[vhosts.php]
enabled = true
root = "/srv/wordpress"
index = "index.php"
preset = "wordpress"
try_files = "wordpress"
deny_path_prefixes = ["/wp-content/uploads/"]
[vhosts.php.fpm]
mode = "external"
socket = "/run/php-fpm/wordpress.sock"
WordPress cache route
[[vhosts.routes]]
name = "wp-assets"
path_prefix = "/wp-content/"
action = "proxy"
[vhosts.routes.proxy]
upstreams = ["127.0.0.1:9000"]
[vhosts.routes.cache]
enabled = true
preset = "wordpress"
status_ttls = { "200" = 3600, "404" = 60 }
extensions = ["css", "js", "png", "jpg", "webp", "svg"]
bypass_cookie_name_prefixes = ["wordpress_logged_in_", "wordpress_sec_"]
常见检查
- 确保 PHP-FPM 用户可以读取 WordPress 文件。
- 只在 WordPress 需要写入的位置保持 uploads 可写。
- Put cache in front of public assets, not wp-admin.
- Keep login, preview, cron, XML-RPC, and admin paths out of shared cache.
- 以 WordPress preset 为基线,然后添加站点专用 bypass。
适合场景
此设置适用于普通 WordPress front controller:Fluxheim 提供安全静态文件,阻止 upload path 中的 PHP,并将动态 request 转发到 PHP-FPM。