gpt4 book ai didi

ruby-on-rails - 使用 Rails 3 在 Ubuntu 上启动 nginx/passenger(非独立)的正确方法?

转载 作者:行者123 更新时间:2023-12-04 18:58:10 25 4
gpt4 key购买 nike

大约 6 个月前,我在运行 nginx/passenger 的 Ubuntu 上配置了我的 Rails 3 生产应用程序,使用 git 和 Capistrano 进行部署。

快进到上周 - 我使用的数据中心(DigitalOcean NYC)实际上完全断电(并且备用电池不起作用) - 导致我的服务器完全关闭。

我没有将乘客或 mysql 设置为在重新启动时启动,所以当硬件服务器重新启动时,我的应用程序仍然关闭。

当我启动它时,我真的不太了解我在做什么(因为它是我使用的第一台生产服务器),我按照指南启动并运行它。

当我试图让应用程序再次运行时,我设法启动了 mysqld 没有问题 - 但我一生都不记得如何让 nginx/passenger 再次运行。

由于时间至关重要(我的客户需要尽快启动并运行该应用程序),我最终通过导航到我的应用程序目录 (/current) 并使用以下命令来恢复并运行该应用程序:

passenger start -p 80 -e production

这成功了,但实际上启动了Passenger Standalone。它似乎工作正常(它根本不是一个大或复杂的应用程序,一次可能只有几个用户)。我可以导航回我的目录并使用上述命令(和乘客 stop -p 80)启动和停止它。

但是,现在我的 capistrano deploy (cap deploy) 不再在 deploy 上重新启动服务器(它正在尝试运行 touch tmp/restart.txt)——即使我尝试手动运行,它也不会执行任何操作,因为服务器正在运行 Passenger Standalone .

我不记得我是如何让服务器启动并运行的,因为那是很久以前的事了。我没有使用 RVM——只是直接在服务器上运行的 Ruby 版本。

有谁知道在 Ubuntu 上启动 nginx/passenger(非独立)的正确命令?

甚至更进一步 - 我如何让 mysqld 和 nginx/passenger 在服务器硬重启时自动加载?

最佳答案

Capistrano 不会重新启动服务器,因为它实际上创建了一个新的应用程序目录(/u/apps/.../releases/xxx),而Passenger Standalone 仍在旧的应用程序目录(/u/apps/.../发布/年年)。因此触摸 restart.txt 不起作用。相反,您必须像这样重新启动Passenger Standalone:

cd /path-to-previous-release && passenger stop -p 80
cd /path-to-current-release && passenger start -p 80 -e production

你提到你想启动 nginx/passsenger。我假设您的意思是 the Nginx mode .这是您需要做的:
  • 安装 Phusion 乘客 using the official Passenger APT repository .
  • 没有第 2 步。如果你做了第 1 步,那么 Ubuntu 软件包会自动配置 Nginx 在系统启动时启动,这也会自动启动Passenger。

  • 我不明白你为什么问如何让 mysqld 在服务器硬重启时自动启动。 mysqld 总是在系统引导期间启动。你不必做任何事情。

    关于ruby-on-rails - 使用 Rails 3 在 Ubuntu 上启动 nginx/passenger(非独立)的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20416895/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com