从php服务器

时间:2015-10-18 01:07:17

标签: php node.js nginx github pm2

我刚遇到问题,我正在使用webhook for github(我在php中写了一个)。

问题是,我想从我的php代码中使用pm2重新启动我的nodejs应用程序:

shell_exec("pm2 restart test");

但我的用户:www-data(nginx)无法执行它..当我尝试登录为www-data我得到了这个:

  

错误:EACCES,权限被拒绝' /。pm2&#​​39;       在错误(本机)       at Object.fs.mkdirSync(fs.js:747:18)       at Object.CLI.pm2Init(/usr/local/lib/node_modules/pm2/lib/CLI.js:40:8)       在对象。 (在/ usr /本地/ LIB / node_modules / PM2 / bin中/ PM2:21:5)       在Module._compile(module.js:460:26)       在Object.Module._extensions..js(module.js:478:10)       在Module.load(module.js:355:32)       在Function.Module._load(module.js:310:12)       在Function.Module.runMain(module.js:501:10)       在启动时(node.js:129:16)

我不想使用" sudo"因为它不是很干净,你有什么想法吗?非常感谢您提前:)

2 个答案:

答案 0 :(得分:0)

运行命令时设置正确的HOME环境变量

$ HOME=/home/USER pm2 restart test

答案 1 :(得分:-1)

嗯,我得到了一个解决方案,它是固定的。

我只需要用这一行运行我的应用程序:

SELECT * FROM `mytable` WHERE SUM(COLUMN2) LIKE '400' 

然后它会在修改文件时观察并自动重启。