0

我有一个 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”确实有效。有什么建议么?

4

2 回答 2

0

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

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

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

于 2013-04-10T19:48:10.267 回答
0

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

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

于 2013-04-12T16:09:02.937 回答