我已经在VPS上部署了一个Rails 4应用程序,它根据任务执行shell命令。该应用程序使用Passenger在Nginx上运行。
我遇到的情况是没有任何shell命令可以工作。经过一些调试后,我注意到每个命令都返回一个“未找到”的错误消息。
例如:
out = %x[date 2>&1] # outputs 'sh: 1: date: not found\n'
为什么会这样?是否有一些配置设置我应该设置为允许生产模式下的shell命令?我对rails非常陌生,所以我不确定是什么导致这种情况。
更新:
这里有更多信息,当从rails whoami
查询时,我得到www-data
,如果我打印$ PATH我得到/usr/local/lib/ruby/gems/2.1.0/bin
但是如果在命令行中执行sudo -u www-data printenv PATH
1}}结果是/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
...这有什么意义吗?