使用 Apache2 和 Passenger 启动 Rails 应用程序时显示目录根目录

使用 Apache2 和 Passenger 启动 Rails 应用程序时显示目录根目录

我已完成以下操作以尝试使用 Apache 2.2.21 和 Passenger 3.0.13 托管 Rails 3.2.3 应用程序:

  1. 已安装宝石乘客
  2. rvmsudo 乘客安装-apache2-模块
  3. 在 /etc/apache2/extra/httpd-vhosts.conf 中添加了网站信息
  4. 在 /etc/hosts 中添加了一行(不确定是否需要;Passenger 文档中未提及)
  5. 取消注释 /etc/apache2/httpd.conf 中的行以包含 /etc/apache2/extra/httpd-vhosts.conf
  6. 重新启动Apache

当我尝试打开我的网站时,显示以下内容:

Index of /

    Name    Last modified   Size    Description

Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.10 with Suhosin-Patch Phusion_Passenger/3.0.13 Server at lightbesandbox2.com Port 443

以下是该网站的 /etc/hosts 条目:

127.0.0.1   www.lightbesandbox2.com

以下是我的网站的 /etc/apache2/extra/httpd-vhosts.conf 条目:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.lightbesandbox2.com
  ServerAlias lightbesandbox2.com
  PassengerAppRoot /Users/server1/Sites/iktusnetlive_RoR/ 
  DocumentRoot /Users/server1/Sites/iktusnetlive_RoR/public    
  <Directory /Users/server1/Sites/iktusnetlive_RoR/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

当我执行 rvmsudo airline-status 时,我得到以下输出:

----------- General information -----------
max      = 6
count    = 1
active   = 0
inactive = 1
Waiting on global queue: 0

----------- Application groups -----------
/Users/server1/Sites/iktusnetlive_RoR/:
  App root: /Users/server1/Sites/iktusnetlive_RoR/
  * PID: 8140    Sessions: 0    Processed: 2       Uptime: 20m 51s

我的资产都不在我的 Rails 应用程序的公共文件夹中。我使用 Michael Hartl 的 Ruby on Rails 教程中提供的模板编写了一个应用程序。主页位于 /app/views/static_pages/home.html.erb。我决定复制公共文件夹中的 index.html 文件以查看它是否会显示。它按我所希望的方式显示。

有没有办法让 Passenger 找到我的资产,而无需我重写应用程序?

任何帮助,将不胜感激。

答案1

我最终放弃了一段时间,但在使用较新版本的 Phusion Passenger 后,我能够重新开始。我在开发服务器上使用了 3.0.18 版,在生产服务器上使用了 3.0.19 版。我的安全设置中存在一些操作系统损坏。在全新安装服务器软件后,我能够重新开始安装 Phusion Passenger,并使其正常运行。

相关内容