【问题标题】:Deploying a Rails Application to an LAMP server with Phusion Passenger使用 Phusion Passenger 将 Rails 应用程序部署到 LAMP 服务器
【发布时间】:2011-08-10 07:24:16
【问题描述】:

我刚刚完成了我的第一个 Rails 应用程序,并准备部署到我的 VPS。我决定尝试使用 Phusion Passenger 并完成了极其简单的安装过程。我得到了所有正确的依赖关系,所以最终一切似乎都很好。我认为我的问题在于路由和 apache 配置文件。

正如我所说,我在以下文件的最后添加了以下内容:/etc/apache2/apache2.conf

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.8
PassengerRuby /usr/bin/ruby1.8


<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/bl/gfy/public
    <Directory /home/bl/gfy/public>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>

当我重新启动 apache 时,我收到以下消息:

* Restarting web server apache2                                                                                                                                        [Wed Aug 10 03:16:24 2011] [warn] module passenger_module is already loaded, skipping
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting [Wed Aug 10 03:16:26 2011] [warn] module passenger_module is already loaded, skipping
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

当我将浏览器指向我设置的 IP 时,我会指向 apache 附带的示例文件,而不是我的 rails 应用程序。

任何想法都将不胜感激。

谢谢。

【问题讨论】:

  • 您是否尝试过将 ServerName 更改为不是 localhost?让我们知道会发生什么。
  • @Thiago Jackiw 我尝试将服务器名称更改为我的应用程序的名称,但这也不起作用。此外,我不仅有服务器的 IP,还没有真正要指定的服务器名称。

标签: ruby-on-rails ruby apache passenger


【解决方案1】:

与您的问题有些无关,但仍然。

您看到的两个警告都不重要,不应影响服务器操作。 一个意味着你的服务器主机名没有设置,另一个只是提醒你乘客已经从某个地方加载,可能是在它偶然发现/etc/apache/modules.d之后。

总而言之,您并不想编辑/etc/apache/apache2.conf。而是使用现有结构,例如 /etc/apache2/sites-available 等。

现在回到你的问题。

您的 VirtualHost 很可能被默认主机覆盖。 在你的 shell 中执行 sudo a2dissite default 将禁用它。假设你没有一些异国情调的 LAMP 风味。

【讨论】:

  • 感谢您的提示,现在当我刷新它时,它会将我带到我的 rails 项目的公共文件夹,但它向我显示内容的文件夹列表,而不是作为 rails 应用程序运行它。还有什么建议吗?
  • 我假设您已经解决了这个问题。如果是这种情况-您能否分享一些细节。我相信其他人会发现它很有用。如果不是这样,您可以尝试启用passenger logging。您必须检查常规 apache 错误日志和特定站点错误日志。
  • 问题还没有解决,稍后会处理,等清楚后会发布一些细节。
  • 检查 /etc/apache2/modules.d 获取 mod_rails 或乘客配置文件。检查PassengerEnabled 是否设置为 off 那里。如果是这种情况 - 要么全局启用它(你需要另一个文件,其名称中的前面数字更高),要么只为你的虚拟主机启用。我建议使用后一种,通常最好的做法是保持尽可能小。
  • 实际上,您可以使用grep -Ri PassengerEnabled /etc/apache2/ 而不是检查文件。唯一的缺点是第二天你不会记住特定的文件名:)
猜你喜欢
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 2013-06-22
  • 2013-06-14
相关资源
最近更新 更多