自動化佈署
#week9 #Deployment
開發了一陣子的專案,終於可以部署出來見見世面了!
以下紀錄一下在部署過程中遇到的問題:
1.沒有報錯的bug是最難解的
部署沒有報錯,網址打開網頁卻沒有東西,首先檢查了database.yml、secrets.yml、facebook.yml,看看key有沒有錯或是漏了空格,反覆檢查幾遍確認沒有錯誤。
然後tail -n 500 log/production.log 檢查log檔紀錄,也沒發現問題。
來來回回看了部署流程有沒有錯誤或漏掉了什麼,甚至開新的資料夾重新cap production deploy一次,也沒錯誤,打開網址還是沒東西。
最後才問到去檢查nginx的log檔(less /var/log/nginx/error.log),才發現

原來是在nginx有別的設定檔(railstest.conf),沒使用到卻沒刪掉,nginx預設每個檔案都會檢查,因此發生錯誤,因為一直沒想到錯誤發生在nginx,花了許多時間在檢查別的地方。也算學到的一課。
2.mysql2 version:
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord)
明明有裝mysql2, 卻一直報錯,原來是rails 4.1.x和 4.2.x的bug,所以目前只能先在Gemfile指定版本:
gem “mysql2”, ‘~> 0.3.18’, :group => :production
附上stack參考連結:
3. 部署完成,但facebook 登入壞了
部署完成之後,會發現有些功能可能會有一些問題,像是使用facebook登入時,卻出現下列畫面:

主要是網站網址不對,要附上正確的Domain name即可(下圖的localhost要改成自己的部署上去的網址。)
