繁体   English   中英

适用于Rails应用程序的Apache VirtualHosts

[英]Apache VirtualHosts for a Rails app

在服务器上,已经有一个站点正在运行。 我试图使我的rails应用程序在同一站点的URL上运行,即该站点为example.com,并且rails应用程序将在example.com/railsapp运行。

Rails应用程序将使用乘客,并且服务器为ubuntu。 当前的virtualhosts文件如下所示:

<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>

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

<VirtualHost *:80> 
 ServerName ??? 
 DocumentRoot /var/www/railsapp/public
 <Directory /var/www/railsapp/public> 
  AllowOverride all 
  # MultiViews must be turned off. 
  Options -MultiViews 
 </Directory> 
</VirtualHost> 

我不确定该怎么办...

正确的解决方案记录在“ 部署到子URI乘客”文档中:

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

<VirtualHost *:80>
    ServerName www.phusion.nl
    DocumentRoot /websites/phusion
    <Directory /websites/phusion>
        Allow from all
    </Directory>
</VirtualHost>

并且您希望可以从URL http://www.phusion.nl/subapp访问位于/websites/rails Rails应用程序。

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

  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

这是一个例子:

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM