什么用户正在运行我的Rails应用程序?

时间:2010-11-20 07:30:59

标签: ruby-on-rails deployment passenger

我正在尝试在Apache,Passenger 3.0.0和Rails 3.0.3下部署一个简单的Rails应用程序。我遇到了各种奇怪的错误。主要围绕我认为与bundler或RAILS_ENV相关的内容。

关于该应用程序的唯一非默认事项是该开发&测试环境使用SQLite3,生产使用MySQL。

当从Web浏览器访问应用程序时,Passenger会抛出有关gems(sqlite3)的错误,这些错误是(在Gemfile和database.yml中)声明为非生产环境的一部分。

如何判断服务器尝试运行我的Rails应用程序的用户是什么?我想确保为该用户正确设置RAILS_ENV,因为我认为Passenger因某种原因试图在开发模式下运行此应用程序。

修改:添加了ps aux | grep httpd

的结果
myserver:current elvis$ ps aux | grep httpd
elvis     4424   0.4  0.0    66152    192 s000  S+   11:03AM   0:00.00 grep httpd
_www      1950   0.0  0.2    93024   2544   ??  S    11:40PM   0:01.23 /usr/sbin/httpd -D FOREGROUND
root      1918   0.0  1.0    93024  10244   ??  Ss   11:39PM   0:02.75 /usr/sbin/httpd -D FOREGROUND
_www      4084   0.0  0.2    93024   2536   ??  S     9:41AM   0:00.15 /usr/sbin/httpd -D FOREGROUND

ls -l <​​/ strong> ...

myserver:current elvis$ ls -l config
total 48
-rw-rw-r--  1 aaron  admin  1923 Nov 19 21:40 application.rb
-rw-rw-r--  1 aaron  admin   326 Nov 19 21:40 boot.rb
-rw-rw-r--  1 aaron  admin   741 Nov 19 21:40 database.yml
-rw-rw-r--  1 aaron  admin  1257 Nov 19 21:40 deploy.rb
-rw-rw-r--  1 aaron  admin   149 Nov 19 21:40 environment.rb
drwxrwxr-x  5 aaron  admin   170 Nov 19 21:40 environments
drwxrwxr-x  7 aaron  admin   238 Nov 19 21:40 initializers
drwxrwxr-x  3 aaron  admin   102 Nov 19 21:40 locales
-rw-rw-r--  1 aaron  admin  1808 Nov 19 21:40 routes.rb

3 个答案:

答案 0 :(得分:11)

默认情况下,乘客将以拥有config/environment.rbconfig.ru文件的用户身份运行您的应用,请参阅http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

默认情况下,乘客将在production环境中投放,除非您使用RailsEnv另有说明,请参阅http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env

答案 1 :(得分:3)

您可以运行ps aux | grep httpd来查看正在运行您的Apache进程的用户。

答案 2 :(得分:0)

我用什么来检测哪些用户应该运行rails app

RAILS_USER=$(stat -c '%U' /YOUR_PATH/environment.rb) 

echo "Detected rails user: $RAILS_USER"