我正在尝试在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
答案 0 :(得分:11)
默认情况下,乘客将以拥有config/environment.rb
或config.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"