美文网首页
Linux 云服务

Linux 云服务

作者: RealAnalysis | 来源:发表于2021-05-15 13:18 被阅读0次

云服务器的操作系统 几乎都是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遇到报错

猜测是两个database冲突

目前两个想法

  1. 尝试去掉 gem 'sqlite3', '~> 1.3.0'
  2. 找到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 updatebundle 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'版本尾巴加上试试看 不行

最后看看本机与服务器版本的区别


本机的 ruby 与 rails 的版本
服务器安装的ruby版本

会不会是不兼容带来的问题?

相关文章

网友评论

      本文标题:Linux 云服务

      本文链接:https://www.haomeiwen.com/subject/wfaqdltx.html