在部署网站后遇到的一个大坑。
问题描述
报错信息长这样:
看到这一行熟悉的we’re sorry, but something went wrong,默默跟这位老朋友打个招呼【捂脸】。
Google后,发现其他用passenger来部署Rails的,也遇到过这种页面无法显示的问题,但是没看到有人提供解决方法或者思路的,决定记录下我的整个解决步骤,给同样入坑的伙伴们作个参考。
解决方法
Google,看了stack overflow上的一些相关内容后,猜测是passenger的问题,于是终端输入sudo passenger-status
, 发现passenger根本就没有开这个Rails的进程。
没开那就手动来开,在app的current目录下,运行bundle exec passenger start
, 报错:
怎么办?按照指示去tmp下找文件,看error log。
以root身份登录,去tmp目录下,查看出错的log,这里是passenger-error-pxhJuZ.html。
cd /tmp
nano passenger-error-pxhJuZ.html
打开显示如下:
OK,那就动动listen 这个gem, google 后,参考stackoverflow上的解答LoadError: Could not load the ‘listen’ gem (Rails 5), 把listen从development中移除,放在了global中
本地运行bundle
,git commit 和 git push 后,进行部署 cap production deploy
, 刷新页面,发现还是老样子。怎么回事?突然想到stack overflow上提到可以登录rails console看看,好,试试。
用deploy身份登录远端后,执行:
cd ~/Together/current #Together 是你的APP名称
RAILS_ENV=production bundle exec rake db:seed
果然,报错,显示网站有bug,立马回去修bug……
在本地修复好,git commit 和 git push 后,进行部署 cap production deploy
, 刷新页面, OK!!
结语
这段爬坑的日子,遇到了不少Google了也不一定能解决的坑,甚至会让你在懵逼的情况下,被别人的解答带得越来越远。只想说解决问题的思路真的太重要了,同时多点耐心,相信坑坑皆有解。
Be more patient.