Ruby on rails应用程序显示文件索引而不是应用程序

时间:2016-06-20 14:13:11

标签: ruby-on-rails ruby apache passenger

我想在网上部署一个Ruby on Rails应用程序,为此我使用/部署了以下工具:

  1. Capistrano,将应用程序文件部署到目标位置
  2. Apache的Phusion Passenger模块
  3. 我已通过sudo a2enmod passenger启用了Passenger模块。我还通过gem安装程序安装了乘客gem,并将其添加到我的rails应用程序的Gemfile中。 然后,我为应用程序' myapp'。

    创建了一个Apache虚拟主机

    myapp.conf

      Alias /myapp /var/www/myapp/current/public
      <VirtualHost *:80>
        DocumentRoot /var/www/myapp/current/public
        SetEnv SECRET_KEY_BASE 592da***************************************
       <Directory /var/www/myapp/current/public>
         PassengerEnabled on
         PassengerResolveSymlinksInDocumentRoot on
         PassengerAppRoot /var/www/myapp/current
         PassengerAppType rack
         PassengerStartupFile config.ru
         Allow from all
         Options -MultiViews
         Require all granted
       </Directory>    
     </VirtualHost>
    

    虚拟主机工作,但是当我在Web浏览器中访问URL时,它会在/ var / www / myapp / current / public中显示文件索引,而不是实际的应用程序。这样做的原因似乎是乘客没有开始,但我无法弄清楚原因。我试图调整myapp.conf文件以帮助apache和乘客检测应用程序,但没有成功。

    有人可以帮我解决这个问题吗?提前谢谢。

    其他信息:该应用程序部署在Raspberry Pi 3上,Raspbian Jessie作为操作系统。

1 个答案:

答案 0 :(得分:0)

试试这个。这是用于子uri deployment.Error是因为没有提到PassengerRuby路径。也请通过此链接 https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/

Alias /myapp /var/www/myapp/current/public
 <VirtualHost *:80>
SetEnv SECRET_KEY_BASE 592da***************************************
PassengerRuby /path-to-ruby    /* replace this with your ruby path
 <Location /myapp>
    PassengerBaseURI /myapp
    PassengerAppRoot /var/www/myapp/current
    PassengerEnabled on
 </Location>

 <Directory /var/www/myapp/current/public>
   Allow from all
   Options -MultiViews
   Require all granted
 </Directory>    
</VirtualHost>