【问题标题】:Rails 3 Deploy: Multiple rails apps single domain error: No such file or directory - config/environment.rbRails 3 部署:多个 Rails 应用程序单域错误:没有这样的文件或目录 - config/environment.rb
【发布时间】:2012-06-22 09:54:29
【问题描述】:

昨天,我在 Linode 上购买了一台服务器。我安装了 Apache、RVM、Rails、MySQL,并在一个域上托管了一个单一的 Rails 应用程序,遵循来自http://library.linode.com/frameworks/ruby-on-rails-apache/ubuntu-10.04-lucid 的一个很好的指南。它还解释了如何将多个 Rails 应用程序放在同一个域中,但是当我尝试访问我的域 our-portal.com/adm 时出现错误:

No such file or directory - config/environment.rb

Application root: /srv/www/our-portal.com/public_html

这里出了点问题……有人有什么想法吗?我可以很好地托管一个应用程序,但不能托管多个...这是我的虚拟主机设置

<VirtualHost *:80>
   ServerAdmin webmaster@our-portal.com
   ServerName  our-portal.com
   ServerAlias www.our-portal.com
   DocumentRoot /srv/www/our-portal.com/public_html/
   RailsBaseURI /adm
   RailsBaseURI /matrix
   ErrorLog  /srv/www/our-portal.com/logs/error.log
   CustomLog /srv/www/our-portal.com/logs/access.log combined
 </VirtualHost>

我的应用程序路径位于 /srv/www/our-portal.com/adm/ 中,我使用链接

ln -s /srv/www/our-portal.com/adm/public/ /srv/www/our-portal.com/public_html/adm/
ln -s /srv/www/our-portal.com/matrix/public/ /srv/www/our-portal.com/public_html/matrix/

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 apache


    【解决方案1】:

    我得到了它,这些是我所做的更改。

     <VirtualHost *:80>
       ServerAdmin webmaster@our-portal.com
       ServerName  our-portal.com
       ServerAlias www.our-portal.com
       DocumentRoot /srv/www/our-portal.com/public_html
       <Directory /srv/www/our-portal.com/public_html>
             Allow from all
       </Directory>
    
       RailsBaseURI /adm
       RailsBaseURI /matrix
       <Directory /srv/www/our-portal.com/public_html/adm>
             Options -MultiViews
       </Directory>
       <Directory /srv/www/our-portal.com/public_html/matrix>
             Options -MultiViews
       </Directory>
       ErrorLog  /srv/www/our-portal.com/logs/error.log
       CustomLog /srv/www/our-portal.com/logs/access.log combined
     </VirtualHost>
    

    我还认为我的链接没有正确创建。它有助于输入

    ln -s 
    

    并双击选项卡(不执行命令)查看 Unix 处理此函数路径的正确方式。我的链接看起来像这样

    ln -s /srv/www/our-portal.com/adm/public/ our-portal.com/public_html/adm
    ln -s /srv/www/our-portal.com/sitedb-pro/public/ our-portal.com/public_html/matrix
    

    请注意与我的旧链接的不同之处。使用双击选项卡,我能够正确引用这些文件夹。

    【讨论】:

      【解决方案2】:

      尝试将DocumentRoot 设置为应用程序的公共文件夹:

      DocumentRoot /srv/www/our-portal.org/app/public
      

      【讨论】:

      • 如果我将 DocumentRoot 直接设置为单个应用程序,如何在单个域上托管多个应用程序?
      • 不是我要找的答案,不过谢谢!我正在寻找如何在一个 VirtualHost 下使用 RailsBaseURI 来做到这一点。
      猜你喜欢
      • 2023-03-20
      • 2012-09-21
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      相关资源
      最近更新 更多