【问题标题】:Virtualhost configuration for 2nd rails app第二个 Rails 应用程序的虚拟主机配置
【发布时间】:2013-04-03 18:10:14
【问题描述】:

我有一个 Ubuntu/Apache VPS,我有一个运行良好的 Rails 应用程序。现在我想添加第二个 Rails 应用程序并更改虚拟主机,以便访问子文件夹将显示第二个 Rails 应用程序。

Rails 应用与 Capistrano 一起部署到:

/home/<myname>/apps/<app_1>/current
/home/<myname>/apps/<app_2>/current

“/etc/apache2/sites-available/default”文件如下所示:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        RailsBaseURI /app_1
        <Directory /var/www/app_1>
          Options -MultiViews
        </Directory>

        RailsBaseURI /app_2
        <Directory /var/www/app_2>
          Options -MultiViews
        </Directory>
</VirtualHost>

我希望对第二个应用重复相同的操作会起作用,但事实并非如此。我忘记了公共文件夹的内容是如何在 /var/www/app_1 中结束的?

当我现在访问“www.mysite.com/app_2”时,它会说:

没有这样的文件或目录 - config/environment.rb

但访问“www.mysite.com/app_1”确实有效。有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails-3 capistrano passenger


    【解决方案1】:

    确保您有一个来自 /var/www/app_2 的符号链接指向 /home/yourname/apps/app_2/current 中的应用

    sudo ln -s /var/www/app_2 /home/yourname/apps/app_2/current

    【讨论】:

      【解决方案2】:

      Apache 仅使用 1 个文件夹作为其文档根目录,因此如果您仅指定 2 个应用程序但不告诉 apache 从何处获取第二个应用程序,它将使用主文档根目录来查找文档,因此在这种情况下它将路由 app_2到第一个应用程序。

      尝试同时添加第二个虚拟主机,就像您有 2 个不同的域将每个域指向正确的文件夹/URL 时一样,请查看此链接。

      http://httpd.apache.org/docs/2.2/vhosts/examples.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        • 2019-05-03
        • 1970-01-01
        • 2012-08-25
        • 2011-09-24
        • 1970-01-01
        • 2017-05-27
        相关资源
        最近更新 更多