Linux学习笔记 | 记一次迁移服务器的经历
前言
故事的起源,要从前几个星期说起,我在阿里云购入的为期一年的云服务器正式到期,本来在几个月之前,如果我选择续费的话,还可以享受优惠,只需一百出头就可以再续一年。而天真且极度拖延的我以为到期再续费也是OK的,于是拖着拖着,等到到期时我才得知,我已经错过了续费优惠,我懊悔,我悔恨,我决定不再续费了,贫穷。
而此前我服务器最重要的一项工作,就是跑一份脚本,程序设定每天准点运行,这样我就可以每天都会得到一份图片文件,然后通过nginx服务绑定域名,我在网站上就可以通过域名的形式访问到这张图片 -
https://download.chenxuefan.cn/pic/main.png
这张图片也就是我在主页的那张每日一图。没错我就是这么无聊。
但这样总是依赖服务器来提供图片文件,总不是长久之计,于是我又萌生了通过前端网页去获取图片的想法。
说干就干,用vue写了一份js,发送请求用的是axios,然而,不出意外地遇到了bug,报错提示No 'Access-Content-Allow-Origin' header is present on the requested requested resource
明显是前端跨域的问题。请教了一下身边的前端大神,大神说可以使用jsonp发送请求来解决,
试了一下,果然可以
<div id="app">
<img :src="main_url" >
</div>
<!-- vue -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://billie-s-blog.oss-cn-beijing.aliyuncs.com/js/axios.min.js"></script>
<script>
var vm = new Vue({
el:"#app", //挂载点
data: {msg:'pass me',main_url:'',about_url:''}, //数据对象
methods:{
getimg(){
var that = this;
axios.jsonp('http://open.iciba.com/dsapi/')
.then(function (response) {
that.main_url = response.fenxiang_img;
that.about_url = response.picture4;
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}, // 方法
mounted(){
this.getimg();
}
})
</script>
但是好景不长,解决了跨域请求的问题,新的问题又接踵而来,这次是http和https混合的问题,,,
ok 这下彻底没招了 🙂🙂🙂
是啊,好歹也是个光荣的打工人啊! 买它!买它!
你可能想问,兴师动众购入一台云服务器,真的只是为了一张主页图片么?
故事的结尾就是我当晚决定买入了,买的是轻量应用服务器,一年不到百元,正好适合我这种穷er。
部署流程
1. 新建用户,安装软件
大概的流程就这样吧,下面是使用到的命令,简单列一下
-
修改root管理员密码(可以在服务器管理后台修改)
-
切换到root管理员 -
su root
-
新建用户 -
adduser username
-
设置密码 -
passwd username
-
查看当前用户 -
whoami
-
将用户添加到sudoers文件中 -
chmod +x /etc/sudoers vim /etc/sudoers chenxuefan ALL=(ALL) NOPASSWD:ALL # 这句话添加在sudoers文件最后一行
-
查看用户所属的用户组 -
groups chenxuefan
-
将用户追加到sudo用户组 -
usermod -a -G sudo chenxuefan
-
如遇到ssh无法登录的问题,则在本地执行命令 -
ssh-keygen -R host
,rm -rf ~/.ssh/known_hosts
-
安装nginx -
sudo yum install nginx
-
安装python - CentOS | python3.7安装指南
-
更新一下yum -
yum update
2. 文件配置,启动相关服务
-
查询nginx安装位置 -
whereis nginx
或find / -name nginx
-
更改文件夹权限 -
chmod 777 /etc/nginx
-
备份nginx.conf文件(重要😌) -
mv nginx.conf nginx.conf.bak
-
(macOS)使用终端工具从本地机器上传nginx.conf到服务器 -
put nginx.conf nginx.conf
/这个是我上一个服务器的nginx.conf文件,在到期之前备份到了本地,应该可以拿来接着用吧,,,🐶/
-
编辑配置文件 -
vim /etc/nginx/nginx.conf
-
启动/关闭/nginx服务 -
sudo service nginx start/stop
-
检查nginx运行进程 -
ps -aux | grep nginx
或ps -ef | grep nginx
-
杀死nginx所有进程 -
kill nginx
3. 运行脚本
- 启动python脚本(后台运行模式) -
nohup python3 main.py &
- 启动nginx服务 -
sudo service nginx start
成果
执行完上面的流程,就基本差不多了,这个时候就可以访问到这些链接:
- https://download.chenxuefan.cn/
- https://download.chenxuefan.cn/pic/main.png
- https://download.chenxuefan.cn/pic/images/main.png
awesome!🥰 😘
小坑
-
描述:
- 原因:sudoers的权限被改了,改回来就好了
- 解决:
pkexec chmod 0440 /etc/sudoers
-
描述:
Not found in archive tar: Exiting with failure stat
- 原因:解压后的文件只有通过设置「-C」(注意要大写)这个参数,C这个参数是:创建新的档案文件
- 解决:tar解压时 加上
-C
,例tar -zvxf python3.7.tgz -C python3.7