WordPress

Une recette PHP-FPM pratique pour un front controller WordPress normal.

Vhost 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_"]

Vérifications courantes

  • Assurez-vous que l'utilisateur PHP-FPM peut lire les fichiers WordPress.
  • Gardez les uploads inscriptibles seulement là où WordPress a besoin d'écrire.
  • Put cache in front of public assets, not wp-admin.
  • Keep login, preview, cron, XML-RPC, and admin paths out of shared cache.
  • Utilisez le preset WordPress comme base, puis ajoutez les bypass propres au site.

Bon cas d'usage

Cette configuration vise un front controller WordPress normal ou Fluxheim sert les fichiers statiques surs, bloque PHP dans les chemins d'upload et transmet les requetes dynamiques a PHP-FPM.

Français