使用 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>