目前我将PHP-FPM与NGINX一起用于前端请求,但也通过长期运行的PHP脚本使用exec运行一些后台进程,使用命令行PHP运行其他脚本。我现在想的是,如果这些也是通过PHP-FPM运行的话会更有效率吗?有关如何做到这一点的任何想法?感谢。
答案 0 :(得分:10)
FPM是 M anage F astCGI P rocesses的工具。只是洗牌。虽然它管理长时间运行的PHP进程,但它只在FastCGI的心理保护下完成。
因为您正在创建后台工作队列,所以您需要 Designed 来管理后台工作队列和正在运行的进程。
Gearman是工作队列的一个很好的选择。它是平台和语言无关的,扫描尺度到天堂和后面。 PECL extension效果很好。
为了保持这些长时间运行的流程,请查看Supervisor。
两个人组成了一个伟大的二人组。查看this blog post by PHP hacker Matthew Weier O'Phinney,记录他与Gearman和Supervisor的一些探索。
答案 1 :(得分:2)
这个问题已经很晚了(4年),但正确的答案是cgi-fcgi
,它可以让你传递命令并在已经存在的内存中运行代码php-fpm