自動化佈署

#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參考連結:

http://stackoverflow.com/questions/32457657/rails-4-gemloaderror-specified-mysql2-for-database-adapter-but-the-gem-i

3. 部署完成,但facebook 登入壞了

部署完成之後,會發現有些功能可能會有一些問題,像是使用facebook登入時,卻出現下列畫面:

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