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