Skip to content

Commit 0774b14

Browse files
docs: update translations (#2241)
Translation updates for: config.md . --------- Signed-off-by: Kévin Dunglas <kevin@dunglas.fr> Co-authored-by: dunglas <57224+dunglas@users.noreply.github.com> Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
1 parent 9008b7b commit 0774b14

File tree

6 files changed

+904
-514
lines changed

6 files changed

+904
-514
lines changed

docs/cn/config.md

Lines changed: 92 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,35 @@
11
# 配置
22

3-
FrankenPHP、Caddy 以及 Mercure 和 Vulcain 模块可以使用 [Caddy 支持的格式](https://caddyserver.com/docs/getting-started#your-first-config) 进行配置。
3+
FrankenPHP、Caddy 以及 [Mercure](mercure.md)[Vulcain](https://vulcain.rocks) 模块可以使用 [Caddy 支持的格式](https://caddyserver.com/docs/getting-started#your-first-config) 进行配置。
44

5-
[Docker 镜像](docker.md) 中,`Caddyfile` 位于 `/etc/frankenphp/Caddyfile`
6-
静态二进制文件也会在执行 `frankenphp run` 命令的目录中查找 `Caddyfile`
7-
你可以使用 `-c``--config` 选项指定自定义路径。
5+
最常见的格式是 `Caddyfile`,它是一种简单、易读的文本格式。默认情况下,FrankenPHP 会在当前目录中查找 `Caddyfile`。你可以使用 `-c``--config` 选项指定自定义路径。
86

9-
PHP 本身可以[使用 `php.ini` 文件](https://www.php.net/manual/zh/configuration.file.php)进行配置。
7+
以下是用于服务 PHP 应用程序的最小 `Caddyfile` 示例:
108

11-
根据你的安装方法,PHP 解释器将在上述位置查找配置文件。
9+
```caddyfile
10+
# 响应的主机名
11+
localhost
12+
13+
# 可选:提供文件的目录,否则默认为当前目录
14+
#root public/
15+
php_server
16+
```
17+
18+
一个更高级的 `Caddyfile`,支持更多功能并提供方便的环境变量,可以在 [FrankenPHP 仓库中](https://github.com/php/frankenphp/blob/main/caddy/frankenphp/Caddyfile)找到,并随 Docker 镜像提供。
19+
20+
PHP 本身可以[使用 `php.ini` 文件](https://www.php.net/manual/en/configuration.file.php)进行配置。
21+
22+
根据你的安装方法,FrankenPHP 和 PHP 解释器将在以下位置查找配置文件。
1223

1324
## Docker
1425

26+
FrankenPHP:
27+
28+
- `/etc/frankenphp/Caddyfile`: 主配置文件
29+
- `/etc/frankenphp/Caddyfile.d/*.caddyfile`: 自动加载的附加配置文件
30+
31+
PHP:
32+
1533
- `php.ini`: `/usr/local/etc/php/php.ini`(默认情况下不提供 `php.ini`
1634
- 附加配置文件: `/usr/local/etc/php/conf.d/*.ini`
1735
- PHP 扩展: `/usr/local/lib/php/extensions/no-debug-zts-<YYYYMMDD>/`
@@ -29,12 +47,24 @@ RUN cp $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
2947

3048
## RPM 和 Debian 包
3149

32-
- `php.ini`: `/etc/frankenphp/php.ini`(默认情况下提供带有生产预设的 `php.ini` 文件)
33-
- 附加配置文件: `/etc/frankenphp/php.d/*.ini`
34-
- PHP 扩展: `/usr/lib/frankenphp/modules/`
50+
FrankenPHP:
51+
52+
- `/etc/frankenphp/Caddyfile`: 主配置文件
53+
- `/etc/frankenphp/Caddyfile.d/*.caddyfile`: 自动加载的附加配置文件
54+
55+
PHP:
56+
57+
- `php.ini`: `/etc/php-zts/php.ini`(默认情况下提供带有生产预设的 `php.ini` 文件)
58+
- 附加配置文件: `/etc/php-zts/conf.d/*.ini`
3559

3660
## 静态二进制文件
3761

62+
FrankenPHP:
63+
64+
- 在当前工作目录: `Caddyfile`
65+
66+
PHP:
67+
3868
- `php.ini`: 执行 `frankenphp run``frankenphp php-server` 的目录,然后是 `/etc/frankenphp/php.ini`
3969
- 附加配置文件: `/etc/frankenphp/php.d/*.ini`
4070
- PHP 扩展: 无法加载,将它们打包在二进制文件本身中
@@ -55,15 +85,15 @@ localhost {
5585
}
5686
```
5787

58-
你还可以使用全局选项显式配置 FrankenPHP:
59-
`frankenphp` [全局选项](https://caddyserver.com/docs/caddyfile/concepts#global-options) 可用于配置 FrankenPHP。
88+
你还可以使用 `frankenphp` [全局选项](https://caddyserver.com/docs/caddyfile/concepts#global-options) 显式配置 FrankenPHP:
6089

6190
```caddyfile
6291
{
6392
frankenphp {
6493
num_threads <num_threads> # 设置要启动的 PHP 线程数量。默认:可用 CPU 数量的 2 倍。
65-
max_threads <max_threads> # 限制可以在运行时启动的额外 PHP 线程的数量。默认值:num_threads。可以设置为 'auto'。
94+
max_threads <num_threads> # 限制可以在运行时启动的额外 PHP 线程的数量。默认值:num_threads。可以设置为 'auto'。
6695
max_wait_time <duration> # 设置请求在超时之前可以等待的最大时间,直到找到一个空闲的 PHP 线程。 默认:禁用。
96+
max_idle_time <duration> # 设置一个自动扩展的线程在被停用之前可以空闲的最长时间。默认:5s。
6797
php_ini <key> <value> # 设置一个 php.ini 指令。可以多次使用以设置多个指令。
6898
worker {
6999
file <path> # 设置工作脚本的路径。
@@ -79,7 +109,7 @@ localhost {
79109
# ...
80110
```
81111

82-
或者,您可以使用 `worker` 选项的一行简短形式
112+
或者,您可以使用 `worker` 选项的一行简短形式
83113

84114
```caddyfile
85115
{
@@ -91,7 +121,7 @@ localhost {
91121
# ...
92122
```
93123

94-
如果您在同一服务器上服务多个应用程序,您还可以定义多个工作线程:
124+
如果您在同一服务器上服务多个应用程序,您还可以定义多个工作线程
95125

96126
```caddyfile
97127
app.example.com {
@@ -113,12 +143,12 @@ other.example.com {
113143
# ...
114144
```
115145

116-
使用 `php_server` 指令通常是您需要的
146+
使用 `php_server` 指令通常是您需要的
117147
但是如果你需要完全控制,你可以使用更低级的 `php` 指令。
118148
`php` 指令将所有输入传递给 PHP,而不是先检查是否
119149
是一个PHP文件。在[性能页面](performance.md#try_files)中了解更多关于它的信息。
120150

121-
使用 `php_server` 指令等同于以下配置:
151+
使用 `php_server` 指令等同于以下配置
122152

123153
```caddyfile
124154
route {
@@ -152,7 +182,7 @@ php_server [<matcher>] {
152182
file_server off # 禁用内置的 file_server 指令。
153183
worker { # 为此服务器创建特定的worker。可以多次指定以创建多个workers。
154184
file <path> # 设置工作脚本的路径,可以相对于 php_server 根目录
155-
num <num> # 设置要启动的 PHP 线程数,默认为可用数量的 2 倍
185+
num <num> # 设置要启动的 PHP 线程数,默认为可用 CPU 数量的 2 倍
156186
name <name> # 为worker设置名称,用于日志和指标。默认值:worker文件的绝对路径。定义在 php_server 块中时,始终以 m# 开头。
157187
watch <path> # 设置要监视文件更改的路径。可以为多个路径多次指定。
158188
env <key> <value> # 设置一个额外的环境变量为给定值。可以多次指定以设置多个环境变量。此工作进程的环境变量也从 php_server 父进程继承,但可以在此处覆盖。
@@ -167,7 +197,7 @@ php_server [<matcher>] {
167197
由于 workers 只会启动您的应用程序一次并将其保留在内存中,
168198
因此对您的 PHP 文件的任何更改不会立即反映出来。
169199

170-
Wworkers 可以通过 `watch` 指令在文件更改时重新启动。
200+
Workers 可以通过 `watch` 指令在文件更改时重新启动。
171201
这对开发环境很有用。
172202

173203
```caddyfile
@@ -181,8 +211,10 @@ Wworkers 可以通过 `watch` 指令在文件更改时重新启动。
181211
}
182212
```
183213

184-
如果没有指定 `watch` 目录,它将回退到 `./**/*.{php,yaml,yml,twig,env}`
185-
这将监视启动 FrankenPHP 进程的目录及其子目录中的所有 `.php``.yaml``.yml``.twig``.env` 文件。
214+
此功能通常与[热重载](hot-reload.md)结合使用。
215+
216+
如果没有指定 `watch` 目录,它将回退到 `./**/*.{env,php,twig,yaml,yml}`
217+
这将监视启动 FrankenPHP 进程的目录及其子目录中的所有 `.env``.php``.twig``.yaml``.yml` 文件。
186218
你也可以通过 [shell 文件名模式](https://pkg.go.dev/path/filepath#Match) 指定一个或多个目录:
187219

188220
```caddyfile
@@ -213,8 +245,7 @@ Wworkers 可以通过 `watch` 指令在文件更改时重新启动。
213245
如果您想将工作脚本放在公共目录外,可以通过 `match` 指令来实现。
214246

215247
`match` 指令是 `try_files` 的一种优化替代方案,仅在 `php_server``php` 内部可用。
216-
以下示例将在公共目录中提供文件(如果存在)
217-
并将请求转发给与路径模式匹配的 worker。
248+
以下示例将始终在公共目录中提供文件(如果存在),否则会将请求转发给与路径模式匹配的 worker。
218249

219250
```caddyfile
220251
{
@@ -229,34 +260,6 @@ Wworkers 可以通过 `watch` 指令在文件更改时重新启动。
229260
}
230261
```
231262

232-
### 全双工 (HTTP/1)
233-
234-
在使用HTTP/1.x时,可能希望启用全双工模式,以便在完整主体之前写入响应。
235-
已被阅读。(例如:WebSocket、服务器发送事件等。)
236-
237-
这是一个可选配置,需要添加到 `Caddyfile` 中的全局选项中:
238-
239-
```caddyfile
240-
{
241-
servers {
242-
enable_full_duplex
243-
}
244-
}
245-
```
246-
247-
> [!CAUTION]
248-
>
249-
> 启用此选项可能导致不支持全双工的旧HTTP/1.x客户端死锁。
250-
> 这也可以通过配置 `CADDY_GLOBAL_OPTIONS` 环境配置来实现:
251-
252-
```sh
253-
CADDY_GLOBAL_OPTIONS="servers {
254-
enable_full_duplex
255-
}"
256-
```
257-
258-
您可以在[Caddy文档](https://caddyserver.com/docs/caddyfile/options#enable-full-duplex)中找到有关此设置的更多信息。
259-
260263
## 环境变量
261264

262265
可以使用以下环境变量在不修改 `Caddyfile` 的情况下注入 Caddy 指令:
@@ -268,15 +271,13 @@ CADDY_GLOBAL_OPTIONS="servers {
268271

269272
至于 FPM 和 CLI SAPIs,环境变量默认在 `$_SERVER` 超全局中暴露。
270273

271-
[the `variables_order` PHP 指令](https://www.php.net/manual/en/ini.core.php#ini.variables-order)`S` 值始终等于 `ES`,无论 `E` 在该指令中的其他位置如何。
274+
`variables_order` PHP 指令中 `S` 的值始终等于 `ES`,无论 `E` 在该指令中的其他位置如何。
272275

273276
## PHP 配置
274277

275-
加载[附加的 PHP 配置文件](https://www.php.net/manual/en/configuration.file.php#configuration.file.scan)
276-
`PHP_INI_SCAN_DIR`环境变量可以被使用。
277-
设置后,PHP 将加载给定目录中所有带有 `.ini` 扩展名的文件。
278+
为了加载[附加的 PHP 配置文件](https://www.php.net/manual/en/configuration.file.php#configuration.file.scan),可以使用 `PHP_INI_SCAN_DIR` 环境变量。设置后,PHP 将加载给定目录中所有带有 `.ini` 扩展名的文件。
278279

279-
您还可以通过在 `Caddyfile` 中使用 `php_ini` 指令来更改 PHP 配置:
280+
您还可以通过在 `Caddyfile` 中使用 `php_ini` 指令来更改 PHP 配置
280281

281282
```caddyfile
282283
{
@@ -293,6 +294,42 @@ CADDY_GLOBAL_OPTIONS="servers {
293294
}
294295
```
295296

297+
### 禁用 HTTPS
298+
299+
默认情况下,FrankenPHP 会自动为所有主机名(包括 `localhost`)启用 HTTPS。
300+
如果你想禁用 HTTPS(例如在开发环境中),你可以将 `SERVER_NAME` 环境变量设置为 `http://``:80`
301+
302+
或者,你可以使用 [Caddy 文档](https://caddyserver.com/docs/automatic-https#activation) 中描述的所有其他方法。
303+
304+
如果你想将 HTTPS 与 `127.0.0.1` IP 地址而不是 `localhost` 主机名一起使用,请阅读[已知问题](known-issues.md#using-https127001-with-docker)部分。
305+
306+
### 全双工 (HTTP/1)
307+
308+
在使用 HTTP/1.x 时,可能希望启用全双工模式,以便在整个请求体被读取之前允许写入响应。(例如:[Mercure](mercure.md)、WebSocket、Server-Sent Events 等)
309+
310+
这是一个可选配置,需要添加到 `Caddyfile` 中的全局选项中:
311+
312+
```caddyfile
313+
{
314+
servers {
315+
enable_full_duplex
316+
}
317+
}
318+
```
319+
320+
> [!CAUTION]
321+
>
322+
> 启用此选项可能导致不支持全双工的旧 HTTP/1.x 客户端死锁。
323+
> 这也可以通过 `CADDY_GLOBAL_OPTIONS` 环境变量配置来实现:
324+
325+
```sh
326+
CADDY_GLOBAL_OPTIONS="servers {
327+
enable_full_duplex
328+
}"
329+
```
330+
331+
您可以在[Caddy文档](https://caddyserver.com/docs/caddyfile/options#enable-full-duplex)中找到有关此设置的更多信息。
332+
296333
## 启用调试模式
297334

298335
使用Docker镜像时,将`CADDY_GLOBAL_OPTIONS`环境变量设置为`debug`以启用调试模式:
@@ -302,4 +339,3 @@ docker run -v $PWD:/app/public \
302339
-e CADDY_GLOBAL_OPTIONS=debug \
303340
-p 80:80 -p 443:443 -p 443:443/udp \
304341
dunglas/frankenphp
305-
```

0 commit comments

Comments
 (0)