【问题标题】:Passenger and Apache2 Display File Directory Structure rather than application乘客和 Apache2 显示文件目录结构而不是应用程序
【发布时间】:2011-11-12 16:02:45
【问题描述】:

我在乘客 3.0.9 和 apache2 上设置了 rails 应用程序。但是当通过apache2(即http/localhost)执行rails时,它会显示rails应用程序文件结构。而不是运行应用程序。我的日志是

[2011 年 11 月 12 日星期六 21:20:36] [通知] Apache/2.2.17 (Ubuntu) Phusion_Passenger/2.2.11 PHP/5.3.5-1ubuntu7.3 和 Suhosin-Patch 已配置 -- 恢复正常操作

<VirtualHost *:80> 
  ServerName localhost 
  DocumentRoot /var/www/project_name 
  <Directory /var/www/project_name> 
    Options Indexes FollowSymLinks -MultiViews AllowOverride all Order allow,deny allow from all
  </Directory> 
</VirtualHost>

【问题讨论】:

  • 你能提供你的虚拟主机配置吗?
  • 是的,我的虚拟主机配置是默认配置
  • 请更新配置问题。我不确定您的默认配置是什么。该问题可能是由于未将配置指向正确的公共路径。
  • ServerName localhost DocumentRoot /var/www/project_name 选项索引 FollowSymLinks -MultiViews AllowOverride all Order allow,deny allow from all 虚拟主机>

标签: ruby-on-rails apache2 passenger


【解决方案1】:

将您的 DocumentRoot 设置为您的公用文件夹:

DocumentRoot /var/www/project_name/public

在生产中,如果您使用 capistrano 进行部署,这可能会变成

DocumentRoot /var/www/project_name/current/public

您还需要将您的目录设置更新为公用文件夹。

如果您的虚拟主机没有指向您的公用文件夹,Apache 不知道从哪里正确地为您的应用程序资产提供服务。

【讨论】:

  • 我想知道。如何在此虚拟主机上运行其他项目,即 phpmyadmin、php、ror 项目
  • 我不熟悉如何使用乘客设置 php 项目,因此您需要在另一个问题中找到答案。至于其他有乘客的 RoR 项目,您可以为每个应用程序定义多个虚拟主机配置。如果您在 Mac 上开发,我建议乘客窗格快速设置配置 fngtps.com/passenger-preference-pane 否则您可以手动将每个虚拟主机服务器名和文档根设置到每个应用程序的正确域和公共文件夹。如果您在设置时遇到问题,开始一个新问题应该会有所帮助。
【解决方案2】:

你设置PassengerAppRoot属性了吗?

DocumentRoot 指向应用程序的静态部分,而PassengerAppRoot 用于指向 rails 应用程序

Here 有一篇关于它的文章

【讨论】:

    猜你喜欢
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多