2012-01-14 75 views
0

我在运行Ubuntu的测试服务器上使用“rvm install”安装了rvm(mutiuser选项)和ruby。 如果我登录并执行“ruby test.rb”,脚本将正确运行。 但是,如果我使用我的php代码中的“exec”执行它,我会收到一个错误消息。如何从LAMP Web应用程序执行Ruby脚本

如果我“su www-data”并尝试执行该脚本,那么我得到相同的错误,所以我想问题是如何让“www-data”具有正确的环境来执行Ruby脚本。我已经尝试将“www-data”添加到“rvm”组中并且不起作用。如果我给出Ruby bin的完整路径,那么脚本会执行,但在需要gem时会失败。

我也尝试执行一个.sh,其中第一行是“rvm use ruby​​-xxx”,第二行是“ruby test.rb”,但也不起作用。

我应该使用“apt-get install”安装Ruby吗?

非常感谢。

回答

0

嗯,我不知道多用户版本,但如果你正在运行一个单用户版本,可以为用户运行脚本,就像这样:

/bin/su - postgres -c "/path/to/backup_db.sh /tmp/test" 

this question and answers

+0

所以你说我应该撤消我所做的,为普通用户安装rvm和ruby,然后“su”给该用户?我要去尝试一下。无论如何,我想知道如何使用www-data来配置它。 – martincho 2012-01-14 13:45:02

+0

@martincho:我不是说你应该,但你*可以* :-) – 2012-01-14 13:48:58

相关问题