使用 Passenger 和 Apache2 部署 Rails 应用程序

使用 Passenger 和 Apache2 部署 Rails 应用程序

使用 Passenger 和 Apache2 在 Ubuntu 中部署 Rails 应用程序有什么特殊之处吗?

我已按照许多说明页面的指示正确安装了 Passenger,但每次我在 sites-available 目录中添加新元素(随后添加 a2ensite 文件)时,我都没有任何反应。此外,passenger-status 也没有报告任何内容。

<Virtualhost *:80>
   DocumentRoot  /var/www/html/mynewapp/public
   <Directory /var/www/html/mynewapp/public>
      Allow from all
      Options -Multiviews
   </Directory>
</VirtualHost>

我必须部署(示例)应用程序的 Web 服务器仅用于内部目的,并且仅具有本地 IP 地址(因此没有域名垃圾,这也是我排除 Servername 指令的原因)。奇怪的是,我甚至没有在 apache error_log 中收到错误。

有任何想法吗?

答案1

我自己弄清楚了这一点;结果发现这不是 apache 配置文件的问题,而是应用程序没有在乘客那里注册。

为了绕过这个问题,我只需将虚拟主机设置为侦听特定端口(例如 123),然后更新 apache conf 以侦听该端口。此时,passenger-status 报告池中的应用程序。

答案2

您想要通过 apache 使用乘客模块来执行什么操作?

我知道的唯一方法是通过libapache2-mod-passenger

我只是发布了我的配置,在我的情况下是针对侨民应用程序的。(据我所知,虚拟主机中需要一个服务器名称,至少它是与其他虚拟主机的区别!?)

<VirtualHost *:80>
    DocumentRoot "/var/www/diaspora/public"
    ServerName diaspora
        PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.7
        PassengerRuby /usr/bin/ruby1.8
    #ProxyPass / http://localhost:3000/

    Options +ExecCGI
    Options Indexes
    Options +FollowSymLinks


<Directory "/var/www/diaspora">
    Order allow,deny
    allow from all
    AllowOverride All
</Directory>

<Directory "/var/www/diaspora/public">
    Order allow,deny
    allow from all
        Options -MultiViews
</Directory>
</VirtualHost>

相关内容