Php 如何通过apache执行pcntl函数
我正在使用php的pcntl_fork(),我注意到从CLI执行时得到了正确的结果,但当我从apache执行时,它给了我一个异常“未定义函数pcntl_fork()” 是的,我读到通过apache执行是不够安全的 我的问题是: 有没有什么方法可以让我通过apache执行具有pcntl_fork()实现的php脚本 首先,为什么通过apache执行forking并不安全,但从CLI执行forking却足够安全Php 如何通过apache执行pcntl函数,php,apache,pcntl,Php,Apache,Pcntl,我正在使用php的pcntl_fork(),我注意到从CLI执行时得到了正确的结果,但当我从apache执行时,它给了我一个异常“未定义函数pcntl_fork()” 是的,我读到通过apache执行是不够安全的 我的问题是: 有没有什么方法可以让我通过apache执行具有pcntl_fork()实现的php脚本 首先,为什么通过apache执行forking并不安全,但从CLI执行forking却足够安全 如果你希望脚本在用户取消页面请求(在浏览器上按下“停止”或“返回”或“刷新”等)之后继续
如果你希望脚本在用户取消页面请求(在浏览器上按下“停止”或“返回”或“刷新”等)之后继续运行,那么你可能要考虑<代码> IGORIGIOUSERYABORT
至于为什么不允许从apache派生,这是因为PHP与apache的接口方式。我在这方面没有深入的知识来详细解释,但可能是这样的: 如果您使用mod_php,Apache会为每个请求生成一个新的php进程。这意味着apache需要跟踪每个进程,并在请求结束后终止该进程 然而,对于mod_fcgi和其他(我认为)程序,一个PHP进程会产生多个请求,这意味着该进程将继续运行并接受新的请求。然而,为了控制内存泄漏,这些子PHP进程会定期被终止 现在,如果您试图在这些PHP进程子进程中生成一个新进程,坦白说,我不知道会发生什么。生成的进程很可能不会被杀死并继续占用资源