通过PHP-FPM运行命令行PHP

9

目前,我使用PHP-FPM与NGINX处理前端请求,但也会通过长时间运行的PHP脚本使用exec运行其他脚本,使其成为后台进程。但我认为,如果这些也通过PHP-FPM运行,将更加高效。您有关于如何实现的任何想法吗?谢谢。


1
我出于其他原因感兴趣;我想要能够从命令行刷新APC缓存,但这使用的是与PHP-FPM处理不同的缓存。如果我可以将一个命令管道传输到FPM进程中执行,那么问题就解决了。 - El Yobo
@ElYobo,创建一个名为“localhost”的新虚拟主机,然后在那里提供一些脚本怎么样? :) 这不是一个好方法,但大多数人很快就能明白你在做什么。 - SimonSimCity
2个回答

9
FPM是一个工具,用于管理FastCGI进程。只需打乱字母顺序即可。虽然它管理长时间运行的PHP进程,但仅在FastCGI的心理保护伞下执行。
因为您正在创建后台工作队列,所以需要设计一个管理后台工作队列和运行进程的工具。
Gearman是工作队列方面的绝佳选择。它跨平台、跨语言,并且可以扩展到无限高度。PECL扩展很好地支持了它。
对于保持这些长时间运行的进程,可以看看Supervisor。
这两个工具组合起来效果很好。查看PHP黑客Matthew Weier O'Phinney的博客文章,记录了他探索Gearman和Supervisor的一些经验。

链接已过期....是这个吗?http://www.mwop.net/blog/240-Writing-Gearman-Workers-in-PHP.html - SimonSimCity
确实,就是那个。我已经更新了我的帖子。 - Charles

4

虽然回答有点晚(4年),但正确的答案是cgi-fcgi,它可以让您在已经存在于内存中的php-fpm中传递命令并执行代码。


1
是的,我认为这就是我当时正在寻找的东西,谢谢! - Rob Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接