2012-01-14 72 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

相關問題