首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Rails应用程序的Apache VirtualHosts

用于Rails应用程序的Apache VirtualHosts
EN

Stack Overflow用户
提问于 2014-01-17 18:50:17
回答 1查看 3.4K关注 0票数 1

在服务器上,已经有一个站点正在运行。我试图让我的rails应用程序运行在同一个站点的url上,即站点是example.com,rails应用程序将在example.com/railsapp上运行。

rails应用程序将使用乘客,服务器是ubuntu。当前的虚拟主机文件看起来像;

代码语言:javascript
复制
<VirtualHost *:80>
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    <Directory /var/www/examplesite/>
                Options Indexes FollowSymlinks Multiviews
                AllowOverride All
                Order allow,deny
                allow from all
    </Directory>
</VirtualHost>

我需要添加一个单独的主机文件吗?

代码语言:javascript
复制
<VirtualHost *:80> 
 ServerName ??? 
 DocumentRoot /var/www/railsapp/public
 <Directory /var/www/railsapp/public> 
  AllowOverride all 
  # MultiViews must be turned off. 
  Options -MultiViews 
 </Directory> 
</VirtualHost> 

我不知道该怎么办..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-17 23:47:36

适当的解决方案记录在部署到子URI乘客文档中:

假设您已经有了一个虚拟主机:

代码语言:javascript
复制
<VirtualHost *:80>
    ServerName www.phusion.nl
    DocumentRoot /websites/phusion
    <Directory /websites/phusion>
        Allow from all
    </Directory>
</VirtualHost>

您希望您位于/websites/rails中的Rails应用程序能够从http://www.phusion.nl/subapp中访问。

为此,您需要执行以下操作:

  1. 设置Alias {SUBURI} {PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY}
  2. 创建一个<Location /{SUBURI}>块。
  3. Location块中,设置PassengerBaseURI /{SUBURI}
  4. Location块中,设置PassengerAppRoot {PATH TO YOUR APPLICATION ROOT}
  5. 创建一个<Directory {PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY}>块。
  6. Directory块中,设置Allow from all
  7. Directory块中禁用MultiViews

下面是一个示例:

代码语言:javascript
复制
<VirtualHost *:80>
    ServerName www.phusion.nl
    DocumentRoot /websites/phusion
    <Directory /websites/phusion>
        Allow from all
    </Directory>

    # These have been added:
    Alias /subapp /websites/rails/public
    <Location /subapp>
        PassengerBaseURI /subapp
        PassengerAppRoot /websites/rails
    </Location>
    <Directory /websites/rails/public>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21193587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档