加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Passenger nginx:应用程序不在生产模式下运行

发布时间:2020-12-13 21:27:34 所属栏目:Nginx 来源:网络整理
导读:我正在使用Passenger Nginx来运行Rails应用程序.如果我使用“rails_env开发”;该应用程序工作正常. 但如果我在生产模式下运行,我会得到“我们很抱歉,但出了点问题.” 我确实运行了db:migrate for production,我可以正常访问数据库. 奇怪的是,我没有在日志中

我正在使用Passenger Nginx来运行Rails应用程序.如果我使用“rails_env开发”;该应用程序工作正常.

但如果我在生产模式下运行,我会得到“我们很抱歉,但出了点问题.”

我确实运行了db:migrate for production,我可以正常访问数据库.

奇怪的是,我没有在日志中获得任何新条目(nginx和rails one),我确保nginx用户可以在它们上面写.

如果我运行rails console生产,它工作正常:

# rails console production
Loading production environment (Rails 3.2.0)
1.9.3-p125 :001 > 

关于可能发生的事情的任何想法?我还应该检查什么?

– – 编辑 – –

在@BenLee建议将passenger_debug_log_file添加到nginx.conf之后,我开始为开发和生产带来这个错误:

# /etc/init.d/nginx restart
nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
nginx: [alert] Unable to start the Phusion Passenger watchdog: it seems to have crashed during startup for an unknown reason,with exit code 1 (-1: Unknown error)
nginx: configuration file /opt/nginx/conf/nginx.conf test is successful
Parando o nginx:                                           [  OK  ]
Iniciando o nginx: nginx: [alert] Unable to start the Phusion Passenger watchdog: it seems to have crashed during startup for an unknown reason,with exit code 1 (-1: Unknown error)
                                                           [  OK  ]

我搜索了这个错误,但我还没有找到解决方案.看门狗似乎存在并且位于正确的位置:

# ls -lh /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11/agents/
total 7,8M
drwxr-sr-x 2 root rvm 4,0K Fev 22 23:34 nginx
-rwxr-xr-x 1 root rvm 4,6M Fev 22 23:35 PassengerLoggingAgent
-rwxr-xr-x 1 root rvm 3,3M Fev 22 23:34 PassengerWatchdog

如果我删除passenger_debug_log_file则正常启动.但原来的问题又回来了,应用程序不能在生产模式下运行.

最佳答案
这看起来可能是某种文件损坏,可能位于其中一个代理中.可能有用的一件事是重新安装新版本的代理.您可以通过乘客独立包进行此操作.

要做到这一点,首先SSH进入服务器然后,在任何目录中(在下面的例子中,我将假设你的主目录,但任何目录都会这样做),运行:

passenger package-runtime

这似乎会进行大量的下载,配置和安装,但不要惊慌.所有这一切都是将乘客独立版本安装在名为passenger-standalone的子目录中.运行此命令后,您应该看到这样的文件结构(假设您在主目录中运行了命令):

+ /home/you
    + passenger-standalone
        + 3.0.11-....
            nginx-x.y.z.tar.gz
            support.tar.gz

所以它只是一个有两个tar.gz文件的树(注意3.0.11 -…不是文字,但是会以该字符串开头 – 全名是系统相关的;类似于其中一个tar中的xyz .gz文件实际上是版本号).接下来,解压support.tar.gz,做这样的事情:

cd passenger-standalone/3.0.11-....
tar xzvvf support.tar.gz

这将解压缩到当前目录.在许多其他事情中,它将创建一个包含两个新文件的agents子目录:

+ /home/you
    + passenger-standalone
        + 3.0.11-....
            + agents
                PassengerLoggingAgent
                PassengerWatchdog

我们的想法是将这些代理文件复制到原始系统上,以修复系统版本中可能存在的任何损坏.但首先,适当地设置权限.继上面的命令停止后,运行:

cd agents
sudo chown root:rvm Passenger*

接下来,备份您的原始代理:

cd /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11/agents
sudo cp PassengerLoggingAgent PassengerLoggingAgent.backup
sudo cp PassengerWatchdog PassengerWatchdog.backup

最后,在此处移动独立包中的新版本.

sudo mv /home/you/passenger-standalone/3.0.11-..../agents/Passenger* .

然后,重新启动nginx.如果由于某种原因需要撤消此操作,只需还原备份副本并再次重新启动nginx.

作为可选的清理步骤,您不再需要这些独立文件,因此您可以像这样删除它们:

rm -rf /home/you/passenger-standalone

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读