PM2管理PHP脚本 - 群集模式

时间:2016-03-14 15:33:13

标签: javascript php node.js cluster-computing pm2

目前我用PM2成功管理了一些PHP守护进程(单个实例),到目前为止一直都很好!

使用PM2并在管理Node.js / IO.js应用程序时,我可以在PM2上以群集模式启动它们而不会有压力!提到的php deamons也不会发生同样的情况!

所以,首先,甚至可以使用PM2管理/启动PHP脚本的集群实例(或PM2功能仅在Node.js / IO.js脚本上可用)?

如果是这样(可能),使用PM2集群PHP脚本需要什么特殊的“调整”?

尝试启动某些pm2 start xxx.php -i 2 --name XXX时,我在错误日志路径中收到以下错误:

SyntaxError: Unexpected token <
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function._load (/usr/local/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21)
    at /usr/local/lib/node_modules/pm2/lib/ProcessContainer.js:200:23
    at /usr/local/lib/node_modules/pm2/node_modules/async/lib/async.js:52:16
    at /usr/local/lib/node_modules/pm2/node_modules/async/lib/async.js:1209:30
    at WriteStream.<anonymous> (/usr/local/lib/node_modules/pm2/lib/Utility.js:126:13)
    at WriteStream.EventEmitter.emit (events.js:95:17)

...这让我相信它甚至无法解析给定的PHP文件!

提前感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

简短回答:你不能在php中使用集群模式。

pm2群集模式仅适用于javascript。在内部,它使用nodejs cluster模块和需要您的脚本(code line)。 这也解释了你的错误,pm2试图用javascript执行php代码(因此SyntaxError)。

使用fork模式时,它使用你的解释器(这里是php)来启动脚本。这就是为什么你也可以在nodejs上运行python或ruby!

相关问题