目前,我正在使用PM2成功管理一些PHP模型(单个实例),到目前为止一切顺利!
使用 PM2并在管理 Node.js/IO.js 应用程序时,我可以在 PM2 上以集群模式启动它们,没有任何压力!上述 php deamons 不会发生同样的情况!
那么,首先,是否可以使用 PM2 管理/启动 PHP 脚本的集群实例(或者 PM2 功能只能在 Node.js/IO.js 脚本上使用)?
如果是这样(可以做到),需要什么特殊的"tuneups"来使用 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 文件!
提前感谢您对此的任何帮助!
简短的回答:你不能在 php 中使用集群模式。
pm2 集群模式仅适用于 javascript。在内部,它使用 nodejs 集群模块并需要您的脚本(代码行)。这也解释了你的错误,pm2 尝试使用 javascript 执行 php 代码(因此SyntaxError
)。
使用 fork 模式时,它使用您的解释器(此处为 php)来启动脚本。这就是为什么你也可以在nodejs上运行python或ruby!