1

谁能告诉我为什么不鼓励在生产服务器上使用 pcntl 库?PHP 手册对此进行了非常简短的介绍,我迫切需要使用这个库......在 php 中是否有另一种方法可以做同样的事情?

4

2 回答 2

3

在生产环境中不鼓励使用 pcntl,因为它支持的功能(fork、进程控制、信号处理)是相当明确的东西,您应该在 CGI 风格的应用程序中使用。现在,如果您正在用 PHP 编写守护程序或命令行应用程序,那就是另一回事了……

PHP 手册

不应在 Web 服务器环境中启用流程控制,如果在 Web 服务器环境中使用任何流程控制功能,可能会出现意外结果。

于 2011-02-04T22:18:31.597 回答
1

必须清楚 php cli 脚本和 sapi/cgi 脚本的区别。生产系统上的 php 也可能支持 pcntl。

这里重要的是有 2 个 php 配置文件。一个用于 cli,一个用于 cgi 设置。然后必须在 cgi 设置中禁用 pctnl,因为真正的安全问题是,在 web 服务器执行时分叉脚本可能会使僵尸进程淹没系统。

在 cli 环境中,可能需要能够编写分叉的脚本...

于 2011-03-30T10:22:30.107 回答