云服务器的操作系统 几乎都是Linux操作系统?
好多个版本可供选择的时候,怎么决定安装哪个?挑使用人多的那个安装,因为就算遇到问题,也容易搜索到解法 哈哈哈哈 真是务实的建议
LTS是long term support的意思啊
Mac操作系统跟一些网络开发语言兼容度更高 导致网络开发人员偏爱Mac啊 跟CLI也相关 原来如此!
Terminal 与 Shell
基于目前的阅读 我觉得Shell是给电脑指令的语言 而Terminal是让用户跟Shell连接起来的界面 让用户可以通过CLI给电脑下指令
所以 「Terminal emulator AKA terminal, it grands us access to the shell」
Terminal emulators give us access to the shell
PATH 环境变量的细节
在 Ruby 程序中,ENV
这个常数就是操作系统的环境变量,用 ENV["PATH"]
可以读到
注意前提是在Ruby环境中,所以要测试的话 用 irb
啊兄弟 别在Terminal里直接瞎写就想测试 能显示就有鬼了哈哈哈哈
感悟就是 代码真的很注意代码环境啊 啧啧啧
秘钥对生成代码
想用非对称加密节省输入密码的步骤的时候
试图执行 cat ~/.ssh/id_rsa.pub
得到公钥结果...老是显示 「 No such file or directory」
暴躁啊!但先别暴走 继续看下去,发现当本机找不到秘钥对时 可以去生成
ssh-keygen -t rsa
然后别设置密码
就能如期调出公钥了
再尝试了一下 貌似用 cat ~/.ssh/id_rsa
可以调出私钥
PS. 权限管理变更好有趣 啧啧啧 发现CLI真的好快捷方便哦
云设备被释放了以后 重新再建立一个实例 IP果然会变
话说没满100元的充值就无法租用阿里云设备 所以下次创建了实例就一次性做完全部练习再释放 不然下次还要继续充钱到一百元才能再创建实例
感觉一百元能够玩好几个月的 所以虽然不释放就一直扣钱 但也不用着急释放掉
教程过老 导致版本冲突问题 多查查解法 能找到哦
安装过程遇到版本冲突 查到一堆解法
最后直接 sudo apt install nginx
解决
原来忘记安装...什么鬼...
记得点开相关安装网页 用最updated的安装代码们 只看老教程做一路都是坑哈
服务器的环境设置
就是为了让项目能运营的丝滑 所以正式项目都把服务器的环境设置的无限贴近本机的环境 不论是语言环境还是数据库 都是为了能操作方便 互相兼容
cap production deploy遇到报错
目前两个想法
- 尝试去掉
gem 'sqlite3', '~> 1.3.0'
- 找到mysql最新版本 标注好再
bundle install
一次
第一个想法 尝试失败
第二个想法 尝试失败
把sqlite3加回来,然后再开始尝试 brew install mysql2
尝试了很多东西 期间发现估计都是各种版本不兼容的问题 啧啧啧
慢慢解决吧 尝试的这个
直接尝试 bundle update rails
也报错
唉...
又尝试了半天...debug到累了 又没有好吃的...
果断换另一个项目试试看
又在同一个步骤卡住 这次尝试用写代码的方式换gem source
gem -v
可以查看gem的版本 不能太低
然后
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
换成国内的镜像 服务器不能翻墙嘛 但是发现两个版本的镜像一个是
https://gems.ruby-china.com
and http://gems.ruby-china.org
但是后者尝试后 代码失败 估计是镜像不能用了
所以用了前者 然后用 gem sources -l
查看 的确替换了 且只有一个source
再次尝试 cap production deploy
结果还是报错...
数据库为啥没有好好安装上啊...
参考Heroku的deploy时 发现
改完之后要push完成才行...去试一试
首先去掉 production 直接放数据库
等等...先试一下 RAILS_ENV=production rails assets:precompile
会不会是服务器问题?
不对...按照报错修改前 尝试更安全的方法 config.secret_key = ENV[ 'DEVISE_TOKEN_AUTH_SECRET_KEY' ]
啊 不行 老老实实按照报错放具体key上去
也不行 估计改错地方了...再找找 啊...等等...别注解掉啊啊啊!给他解封啊喂!
去掉注解后 出现了新的报错 继续看看
这次出问题的是置顶的数据库 尝试去掉它看看问题会不会跑去报错第二个数据库
我都 bundle install
还报错sqlite3数据库?
最后,改了sqlite3
以及 mysql2
的版本 bundle update
再 bundle install
后 commit 并且 git push
完成后 再来一次 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办法前 我决定试一试替换数据库的办法 去掉sqlite3
换成mysql
嗯 还是同样的报错
想过直接查找 Deploy Ruby On Rails: Ubuntu 20.04 with mysql2
这类的关键词也成
尝试了一通,最后砍掉branch 重新来一次 好好的安装了服务器的mysql 设置好了数据库的密码,然后 镜像也用了 https://gems.ruby-china.com
最后的 /
去掉了
还是不行...
担心 rails
版本与 mysql2
版本冲突 尝试
gem 'rails', '~> 5.0.7', '>= 5.0.7.2'
改成 gem 'Rails', '4.2.8'
然后把 gem 'mysql2', '~> 0.4.0'
版本尾巴加上试试看 不行
最后看看本机与服务器版本的区别
会不会是不兼容带来的问题?