我在Ubuntu上使用Passenger 3,Apache,RVM和Rails 3.1应用程序时遇到了困难。出于某种原因,Rails应用程序没有加载,但我之前运行的基本相同,没有问题。
我在RVM和Passenger中安装了Ruby 1.9.2,默认安装了所有宝石。
我将以下内容放在apache.conf
文件中:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby
这是我的虚拟主机配置:
<VirtualHost *:80>
ServerName server
DocumentRoot /root/www/tester/public
<Directory /root/www/tester/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Passenger似乎正在加载,正如Apache日志所示:
[Wed Jan 11 23:18:28 2012] [notice] Apache/2.2.20 (Ubuntu) Phusion_Passenger/3.0.11 configured -- resuming normal operations
但是,我根本无法加载应用程序。
如果我单独运行Passenger,我会收到以下错误:
2012/01/11 23:03:31 [error] 13427#0: *4 "/root/www/sound/public/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0"
我将所有权限更改为755
并将所有权归给apache (www-data)
,但无济于事。
最后,当我运行乘客身份时,我得到:
----------- General information -----------
max = 6
count = 0
active = 0
inactive = 0
Waiting on global queue: 0
----------- Application groups -----------
但是,正如您所看到的,没有加载应用程序。
答案 0 :(得分:3)
修复! - 我需要删除启用站点的目录中的默认虚拟主机文件!
答案 1 :(得分:1)
我的猜测是你正在寻找合适的地方, 它与用户权限有关。
乘客的第1号规则是;
另外,我建议,不要以root身份运行。
/var/www
或/var/rails
是放置rails应用的常用位置
但我通常最终会为每个应用程序提供一个用户,并将其放在主目录中。
即,对于我的申请,我有;
myapp
/home/myapp/deploy/
/home/myapp/deploy/current
myapp
我的apache配置类似于
<VirtualHost *:80>
ServerName myapp.com
DocumentRoot /home/myapp/deploy/current
</VirtualHost>
对我而言,这使得所有权分离明确, 并避免任何这些问题。
(值得注意的是,通过capistrano完成的所有任务都以myapp
用户身份完成)