|
|
1
21
因此,实际上不应该从通过Apache执行的PHP脚本中使用该函数:它应该仅在从命令行执行PHP脚本时使用。
|
|
|
2
3
首先,在为WorkerMPM配置的Apache安装上运行PHP作为模块不是一个好主意,因为PHP不是线程安全的(我认为在PHP手册中也有这样的说明)。
是的,它应该分叉这个过程。这个
PHP manual
甚至说你应该读
更新 :下面是PHP Worker MPM手册中的相关页面: http://php.net/install.unix.apache2.php
我还找到了这个页面,还有一些进一步的说明: http://www.stevekallestad.com/blog/apache_worker_mpm_with_php.html |
|
|
3
3
我会尽量简明扼要, 通过apache使用“fork”是可能的,您需要“安装”,然后在php.ini中启用函数,最后您需要在apache目录中添加扩展(symlink也可以完成这项工作)。 前任:
另一方面,我已经在很多项目中使用了forking,它在优化大多数项目时非常出色,但是,当使用apache时,有一个bug,我基本上是用forking来分配孩子,做任何类型的硬核工作,而且它是有效的……很好,但是在加载下,它在开始创建僵尸进程之前工作了一段时间,我可以使用“pcntl_signal(sigchld,sig_ign);”来管理僵尸进程,它基本上会在孩子完成任务后立即删除进程,这有点帮助,然后当apache变得疯狂时,就开始线程化,最后崩溃。我们的服务器,我还不能解释这个行为(但我会),这个由Apache创建的weir/evil tree只能从“ps”或服务器状态或Apache日志中看到,我说evil tree是因为它基本上创建了数百个进程,其中包含子进程… 简而言之: 福克和阿帕奇会合作吗?对。。。绝对地 只是不要滥用它 希望这能帮上忙 |
|
|
4
0
我刚刚尝试通过apache使用pcntl_fork,奇怪的情况是,在fork子进程之后,父进程将标准输出(浏览器)提供给它的子进程。所以,您可以图像化,浏览器无法从父进程接收输出。 |