PHP-FPM

使用 PHP-FPM 运行 PHP 应用,同时由 Fluxheim 提供静态资源并安全转发 PHP request。

外部 PHP-FPM pool

[vhosts.php]
enabled = true
root = "/srv/app/public"
index = "index.php"

[vhosts.php.fpm]
mode = "external"
socket = "/run/php-fpm/app.sock"

Endpoint 选择

模式在以下情况使用
socketFluxheim 和 PHP-FPM 在同一 host 上运行。
tcpPHP-FPM runs in another container or host.
tcp_upstreams你需要在 PHP-FPM pools 之间做简单 safe-method failover。
managedFluxheim 应启动并 supervision 一个私有 PHP-FPM master。

Managed PHP-FPM

[vhosts.php.fpm]
mode = "managed"
php_fpm_binary = "/usr/sbin/php-fpm"
socket_dir = "/run/fluxheim/php"
workers = 4
process_manager = "dynamic"
start_servers = 2
min_spare_servers = 1
max_spare_servers = 4

Managed mode lets Fluxheim start a private php-fpm master for the vhost. Use it when you want Fluxheim to own the socket and generated pool files.

PHP 安全控制

  • 将 PHP 文件保持在配置的 root 内。
  • 尽可能直接提供静态资源。
  • PHP 执行失败时绝不要暴露 PHP 源码。
  • 禁止在 upload directories 中执行 PHP。
  • 对不受信任的应用使用 request 和 response byte limits。
简体中文