![使用 Apache2 和 Passenger 启动 Rails 应用程序时显示目录根目录](https://linux22.com/image/1319458/%E4%BD%BF%E7%94%A8%20Apache2%20%E5%92%8C%20Passenger%20%E5%90%AF%E5%8A%A8%20Rails%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%E6%98%BE%E7%A4%BA%E7%9B%AE%E5%BD%95%E6%A0%B9%E7%9B%AE%E5%BD%95.png)
我已完成以下操作以尝试使用 Apache 2.2.21 和 Passenger 3.0.13 托管 Rails 3.2.3 应用程序:
- 已安装宝石乘客
- rvmsudo 乘客安装-apache2-模块
- 在 /etc/apache2/extra/httpd-vhosts.conf 中添加了网站信息
- 在 /etc/hosts 中添加了一行(不确定是否需要;Passenger 文档中未提及)
- 取消注释 /etc/apache2/httpd.conf 中的行以包含 /etc/apache2/extra/httpd-vhosts.conf
- 重新启动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,并使其正常运行。