云服務(wù)器的操作系統(tǒng) 幾乎都是Linux操作系統(tǒng)?
好多個(gè)版本可供選擇的時(shí)候,怎么決定安裝哪個(gè)?挑使用人多的那個(gè)安裝,因?yàn)榫退阌龅絾?wèn)題,也容易搜索到解法 哈哈哈哈 真是務(wù)實(shí)的建議
LTS是long term support的意思啊
Mac操作系統(tǒng)跟一些網(wǎng)絡(luò)開(kāi)發(fā)語(yǔ)言兼容度更高 導(dǎo)致網(wǎng)絡(luò)開(kāi)發(fā)人員偏愛(ài)Mac啊 跟CLI也相關(guān) 原來(lái)如此!
Terminal 與 Shell
基于目前的閱讀 我覺(jué)得Shell是給電腦指令的語(yǔ)言 而Terminal是讓用戶跟Shell連接起來(lái)的界面 讓用戶可以通過(guò)CLI給電腦下指令
所以 「Terminal emulator AKA terminal, it grands us access to the shell」
Terminal emulators give us access to the shell
PATH 環(huán)境變量的細(xì)節(jié)
在 Ruby 程序中,ENV 這個(gè)常數(shù)就是操作系統(tǒng)的環(huán)境變量,用 ENV["PATH"] 可以讀到
注意前提是在Ruby環(huán)境中,所以要測(cè)試的話 用 irb啊兄弟 別在Terminal里直接瞎寫(xiě)就想測(cè)試 能顯示就有鬼了哈哈哈哈
感悟就是 代碼真的很注意代碼環(huán)境啊 嘖嘖嘖
秘鑰對(duì)生成代碼
想用非對(duì)稱加密節(jié)省輸入密碼的步驟的時(shí)候
試圖執(zhí)行 cat ~/.ssh/id_rsa.pub得到公鑰結(jié)果...老是顯示 「 No such file or directory」
暴躁?。〉葎e暴走 繼續(xù)看下去,發(fā)現(xiàn)當(dāng)本機(jī)找不到秘鑰對(duì)時(shí) 可以去生成
ssh-keygen -t rsa 然后別設(shè)置密碼
就能如期調(diào)出公鑰了
再嘗試了一下 貌似用 cat ~/.ssh/id_rsa 可以調(diào)出私鑰
PS. 權(quán)限管理變更好有趣 嘖嘖嘖 發(fā)現(xiàn)CLI真的好快捷方便哦
云設(shè)備被釋放了以后 重新再建立一個(gè)實(shí)例 IP果然會(huì)變
話說(shuō)沒(méi)滿100元的充值就無(wú)法租用阿里云設(shè)備 所以下次創(chuàng)建了實(shí)例就一次性做完全部練習(xí)再釋放 不然下次還要繼續(xù)充錢到一百元才能再創(chuàng)建實(shí)例
感覺(jué)一百元能夠玩好幾個(gè)月的 所以雖然不釋放就一直扣錢 但也不用著急釋放掉
教程過(guò)老 導(dǎo)致版本沖突問(wèn)題 多查查解法 能找到哦
安裝過(guò)程遇到版本沖突 查到一堆解法
最后直接 sudo apt install nginx 解決
原來(lái)忘記安裝...什么鬼...
記得點(diǎn)開(kāi)相關(guān)安裝網(wǎng)頁(yè) 用最updated的安裝代碼們 只看老教程做一路都是坑哈
服務(wù)器的環(huán)境設(shè)置
就是為了讓項(xiàng)目能運(yùn)營(yíng)的絲滑 所以正式項(xiàng)目都把服務(wù)器的環(huán)境設(shè)置的無(wú)限貼近本機(jī)的環(huán)境 不論是語(yǔ)言環(huán)境還是數(shù)據(jù)庫(kù) 都是為了能操作方便 互相兼容
cap production deploy遇到報(bào)錯(cuò)

目前兩個(gè)想法
- 嘗試去掉
gem 'sqlite3', '~> 1.3.0' - 找到mysql最新版本 標(biāo)注好再
bundle install一次
第一個(gè)想法 嘗試失敗
第二個(gè)想法 嘗試失敗
把sqlite3加回來(lái),然后再開(kāi)始嘗試 brew install mysql2
嘗試了很多東西 期間發(fā)現(xiàn)估計(jì)都是各種版本不兼容的問(wèn)題 嘖嘖嘖

慢慢解決吧 嘗試的這個(gè)

直接嘗試 bundle update rails 也報(bào)錯(cuò)
唉...
又嘗試了半天...debug到累了 又沒(méi)有好吃的...
果斷換另一個(gè)項(xiàng)目試試看
又在同一個(gè)步驟卡住 這次嘗試用寫(xiě)代碼的方式換gem source
gem -v可以查看gem的版本 不能太低
然后
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
換成國(guó)內(nèi)的鏡像 服務(wù)器不能翻墻嘛 但是發(fā)現(xiàn)兩個(gè)版本的鏡像一個(gè)是
https://gems.ruby-china.com and http://gems.ruby-china.org 但是后者嘗試后 代碼失敗 估計(jì)是鏡像不能用了
所以用了前者 然后用 gem sources -l查看 的確替換了 且只有一個(gè)source
再次嘗試 cap production deploy結(jié)果還是報(bào)錯(cuò)...

數(shù)據(jù)庫(kù)為啥沒(méi)有好好安裝上啊...
參考Heroku的deploy時(shí) 發(fā)現(xiàn)




改完之后要push完成才行...去試一試

首先去掉 production 直接放數(shù)據(jù)庫(kù)

等等...先試一下 RAILS_ENV=production rails assets:precompile 會(huì)不會(huì)是服務(wù)器問(wèn)題?


不對(duì)...按照?qǐng)?bào)錯(cuò)修改前 嘗試更安全的方法 config.secret_key = ENV[ 'DEVISE_TOKEN_AUTH_SECRET_KEY' ]
啊 不行 老老實(shí)實(shí)按照?qǐng)?bào)錯(cuò)放具體key上去
也不行 估計(jì)改錯(cuò)地方了...再找找 啊...等等...別注解掉啊啊?。〗o他解封啊喂!
去掉注解后 出現(xiàn)了新的報(bào)錯(cuò) 繼續(xù)看看

這次出問(wèn)題的是置頂?shù)臄?shù)據(jù)庫(kù) 嘗試去掉它看看問(wèn)題會(huì)不會(huì)跑去報(bào)錯(cuò)第二個(gè)數(shù)據(jù)庫(kù)
我都 bundle install還報(bào)錯(cuò)sqlite3數(shù)據(jù)庫(kù)?
最后,改了sqlite3 以及 mysql2的版本 bundle update 再 bundle install后 commit 并且 git push完成后 再來(lái)一次 RAILS_ENV=production rails assets:precompile 貌似正常?就嘗試 cap production deploy

我直接查 How To Install Rails and nginx with Passenger on Ubuntu 以及 Deploy Ruby On Rails: Ubuntu 20.04 我就不信了哈哈哈哈 快瘋了
去嘗試新的deploy辦法前 我決定試一試替換數(shù)據(jù)庫(kù)的辦法 去掉sqlite3 換成mysql
嗯 還是同樣的報(bào)錯(cuò)

想過(guò)直接查找 Deploy Ruby On Rails: Ubuntu 20.04 with mysql2 這類的關(guān)鍵詞也成
嘗試了一通,最后砍掉branch 重新來(lái)一次 好好的安裝了服務(wù)器的mysql 設(shè)置好了數(shù)據(jù)庫(kù)的密碼,然后 鏡像也用了 https://gems.ruby-china.com 最后的 /去掉了
還是不行...
擔(dān)心 rails 版本與 mysql2 版本沖突 嘗試
gem 'rails', '~> 5.0.7', '>= 5.0.7.2' 改成 gem 'Rails', '4.2.8' 然后把 gem 'mysql2', '~> 0.4.0'版本尾巴加上試試看 不行
最后看看本機(jī)與服務(wù)器版本的區(qū)別
本機(jī)的 ruby 與 rails 的版本

會(huì)不會(huì)是不兼容帶來(lái)的問(wèn)題?
