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 选择
| 模式 | 在以下情况使用 |
|---|---|
socket | Fluxheim 和 PHP-FPM 在同一 host 上运行。 |
tcp | PHP-FPM runs in another container or host. |
tcp_upstreams | 你需要在 PHP-FPM pools 之间做简单 safe-method failover。 |
managed | Fluxheim 应启动并 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。