ping了一下coding pages和阿里云服务器的速度,意外感觉coding的速度反而更快。不过为了折腾,还是把博客迁移到阿里云,跌跌撞撞遇到很多坑,大多是由于对指令不熟悉以及部分教程省略了部分步骤,最后不断谷歌终于成功了!

购买学生机

一开始纠结了好久的问题是:阿里云学生机要买轻量应用服务器还是云服务器ECS?最后看着教程买了半年的云服务器ECS&Centos,因为参考的教程也是用的这种配置。但是我后悔了,前者的带宽峰值是后者的五倍啊啊啊啊!!!果然人一穷就想着要追求性价比,流下了穷人的泪水呜呜呜

阿里云配置:

找到云主机实例(这个实例就是你购买的ECS服务器)

找到服务器主机实例

  1. 在云服务器ECS列表中选择实例。
  2. 然后选择你在购买服务器时选择的服务器区域。
  3. 就是你自己的服务器实例了。

添加安全组规则

如果要使用CentOS镜像系统这个安全组规则是必须要添加的。

简单明了,下面用四张图来演示添加安全组规则。

进入实例管理

进入实例管理

进入安全组配置规则

进入安全组配置规则

打开添加安全组规则

打开添加安全组规则

添加安全组规则

添加安全组规则

好的,配置完成,很简单对不对,不过这还只是热身哦,接下来就要进入主题开始我们的搭建博客之旅。


服务器环境搭建

选择实例的远程连接

选择远程连接

输入远程密码

输入远程密码

注意:这里的远程密码,只有在第一次连接的时候会提示,只有在第一次连接的时候会提示,只有在第一次连接的时候会提示,重要的事情说三遍。一定要牢记。

登录服务器

输入密码后就会进到服务器页面,是一个黑色的shell小窗口,之后根据提示登录就可以。

shell窗口中的登录操作就不截图演示了,直接使用文本方式根据步骤来就可以了。

  1.login后面输入用户名。

  2.password后面输入密码。(注意:这里在输入密码的时候为了安全是不会在界面上显示出来的,所以如果你在输入密码的时候没有看到你输入的结果是正常现象,直接输入就可以)

安装git和nodejs

yum install git

#安装Nodejs
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers

到这里之后会打开一个文本文件,然后找到以下内容

Allow root to run any commands anywhere
root ALL=(ALL) ALL

按一下 I 键 进入插入模式然后使用方向键在以上内容的下面添加一行

git ALL=(ALL) ALL

添加完成后按下ESC键退出插入模式,然后输入

:wq

这个命令的意思是保存并退出vim

保存退出后改回权限

chmod 400 /etc/sudoers

随后设置Git用户的密码,

sudo passwd git

然后输入git用户的密码 输入完成之后一路回车等待设置完成之后

切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
然后进入电脑中(你自己的电脑)C:\Users\Administrator\.ssh文件夹下看一下有没有id_rsa.pub文件
如果没有则通过Git Bash新建一个
创建.ssh命令为:ssh-keygen -t rsa -C "your_email@example.com"
创建好后在C:\Users\Administrator\.ssh文件夹下使用笔记本方式打开id_rsa.pub文件,打开后就能看到公钥了。
然后将公钥复制粘贴到authorized_keys 写入方式和上面在sudoers插入方式一样,完成之后执行下面命令
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh

然后在客户端(电脑上),通过Git Bash执行ssh -v root@ip地址(就是你阿里云的外网地址) ,应该就能免密登陆了。

安装Nginx和配置

安装

yum install nginx

启动 直接输入nginx然后回车就可以启动nginx

nginx

然后把服务器的公网地址输入浏览器, 出现下面的图片就对了,没出来就有问题

nginx启动成功

配置Nginx

vim /etc/nginx/conf.d/default.conf

依照下图进行修改,插入方式往下就不做介绍了,就那几步,如果有不会的可以去百度一下。



listen:端口号。

server_name:你自己的域名,如果没有域名可以不填写,然后在访问博客的时候使用你服务器的外网IP地址就可以。

location:地址内容。

root:指向的博客文件夹目录。

index:指定博客Index文件。

配置完成以后保存退出开始执行接下来的内容

sudo mkdir -p /usr/share/nginx/html/blog
sudo chown -R git:git /usr/share/nginx/html/blog

nginx的配置到这里已经完成,接下来就要创建我们自己的私有git仓库了哦

在服务器上初始化一个git仓库

切换到git用户,然后切换到git用户目录,接着初始化裸库,代码如下:

su git
cd ~
git init --bare blog.git

接着新建一个post-receive文件

vim ~/blog.git/hooks/post-receive

然后在该文件中输入以下内容:

#!/bin/sh
git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f

这里的 #!/bin/sh 也是要加进去的,不要当成注释从而遗漏掉了哦。

保存退出之后,再输入以下代码,赋予该文件可执行权限。

chmod +x ~/blog.git/hooks/post-receive

好了,到这里我们的服务器配置已经完成。我们先喘一口气休息一下,回过头检查一下有没有遗漏或者出现错误的地方,出现差错到时候可能会导致配置不成功的,要仔细一点哦。

本地Hexo初始化

首先要安装 hexo-cli,安装hexo-cli 需要 root 权限,使用 sudo 运行

sudo npm install -g hexo-cli

然后初始化Hexo程序

cd E:\hexo
hexo init blog

等执行成功以后安装两个插件, hexo-deployer-git 和 hexo-server ,这俩插件的作用分别是使用Git自动部署,和本地简单的服务器。

hexo-deployer-git帮助文档

hexo-server帮助文档

安装hexo-deployer-git 和 hexo-server

cd blog
npm install hexo-deployer-git --save
npm install hero-server

初始化Nodejs

install nodejs

生成自己的第一篇文章 hello world !

hexo new "hello Hexo"

使用 hexo new <文章名称> 来新建文章,该命令会成成一个 .md文件放置在hexo根目录 source/_posts文件夹。

使用hexo g将 .md文件渲染成静态文件,然后启动hexo-server

hexo g
hexo server

现在便可以打开浏览器访问 http://localhost:4000 来查看我们的博客了!

然后停掉

配置_config.yml,完成自动化部署

然后打开E:/hexo/_config.yml 找到 deploy

deploy:
type: git
repo: root@YOUR_SERVER_IP:/home/git/blog.git #此处的YOUR_SERVER_IP需改为你自己服务器的ip
branch: master #这里填写分支
message: #提交的信息

hexo_config配置

保存后,尝试将我们刚才写的”hello hexo”部署到服务器

hexo clean
hexo g
hexo s
hexo generate --deploy

访问服务器地址,就可以看到我们写的文章”Hello hexo”,以后写文章只需要:

hexo new "Blog article name"
···写文章
hexo clean
hexo g
hexo s
hexo generate --deploy

到这里我们的博客就已经可以使用了。现在快去体验一下自己的劳动成果写博客部署上去吧。

配置域名

阿里云域名解析处-新手引导-添加主机地址,就可以自动创建两条记录。

OVER


遇到的问题:

CentOs下nginx的配置文件

是放在/etc/nginx/nginx.conf,而不是nginx.default。


Nginx启动失败,原因是80端口被占用。

使用命令关闭占用80端口的程序

sudo fuser -k 80/tcp

或者是

遇到这种问题我先用中文搜索了一下答案,发现大家都在装逼地说要杀nginx重复的进程。我试了下发现是扯淡,于是看了谷歌搜到的第一个英文页面,老外说是nginx先监听了ipv4的80端口之后又监听了ipv6的80端口,于是就重复占用了。更加坑人的是你去看了端口占用它又把80端口释放了,是不是很囧。

解决方案是编辑nginx的配置文件

hankcs@ubuntu:~$ sudo gedit /etc/nginx/sites-available/default

修改这一段:

listen 80;listen [::]:80 default_server;

listen 80;listen [::]:80 ipv6only=on default_server;

然后启动nginx,完美解决!


ssh登录失败

大部分原因是由于.ssh目录下的known_hosts中

47.98.147.134 ecdsa-sha2-nistp256 

出错,删除这一段代码即可。


参考教程

阿里云ECS云服务器CentOS部署个人网站的更多相关文章

  1. 阿里云ECS 环境是CentOS 7.3安装mongodb3

    CentOS安装mongodb https://www.cnblogs.com/zddzz/p/10069912.html CentOS安装mongodb 我的是阿里云ECS 环境是CentOS 7. ...

  2. 【转载】阿里云ECS Linux服务器禁止某些IP访问

    在阿里云ECS Linux服务器运维过程中,如果发现某些IP访问异常,如怀疑有攻击行为或者怀疑是别人写的爬虫程序长时间占用你的服务器资源,则可以通过相关的设置来禁止这些IP段的访问,拒绝这些IP的请求 ...

  3. 阿里云ecs云服务器安装wdcp控制面板教程

    以前就听说服务器非常的难,而且我也不懂代码,不懂英文,我怕自己学不会就买了一个月的.开始我都不知道啥样的服务器,还是我的一位哥们给我远程买的,他说这个镜像最稳定了. 服务器买好后我便开始研究,可是怎么 ...

  4. 聊一聊我的阿里云ECS云主机

    javaweb学习有段时间了,期间也编写了一些自己的小webapp应用,但是都是发布在我们自己的个人pc上的. 于是我在想:怎么样让自己的项目可以发到公网上面去,让朋友们能够来访问? 我首先想到的是: ...

  5. 阿里云ECS单节点Kubernetes部署

    参考资料: kubernetes官网英文版 kubernetes官网中文版 环境.工具 阿里云学生机ECS.Ubuntu.docker.kubectl1.15.4.kubelet1.15.4.kube ...

  6. (二)阿里云ECS Linux服务器外网无法连接MySQL解决方法(报错2003- Can't connect MySQL Server on 'x.x.x.x'(10038))(自己亲身遇到的问题是防火墙的问题已经解决)

    我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: - Can' ...

  7. 基于阿里云 ecs 使用 docker 方式部署 showDoc

    官网文档:https://www.showdoc.cc/help?page_id=65610 (建议先看下这个) 首先说明一下,我 ecs 镜像是 CentOS 7.6 64位 1. 首先在 服务器上 ...

  8. sysbench测试阿里云ECS云磁盘的IOPS,吞吐量

    测试阿里云ECS 对象:在aliyun上买了一个ECS附加的云盘,使用sysbench测试云盘的IOPS和吞吐量 sysbench prepare 准备文件,10个文件,1个1G [root@iZwz ...

  9. 阿里云ecs轻量级服务器node镜像部署

    这个是自带安装pm2,nginx,node,mongodb的环境的,目录在控制台有给出, server端的配置按照开发手册去操作即可. 而静态的页面.需要修改nginx的配置文件,找到nginx的ng ...

随机推荐

  1. LA 6972 Domination

    6972 Domination Edward is the headmaster of Marjar University. He is enthusiastic about chess and of ...

  2. hdu 1133 卡特兰 高精度

    Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  3. Codevs 1137 计算系数 2011年NOIP全国联赛提高组

    1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个多项式(ax + by ...

  4. 在linux写一个shell脚本用maven git自动更新代码并且打包部署

    服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...

  5. 巨丑vue

    <template> <div> <div class="demo-type" align="right" style=" ...

  6. Linux设备驱动程序 之 装载和卸载模块

    前置说明 本文例子中涉及两个模块hello.ko和world.ko,其中hello导出符号供world使用: insmod 该命令将模块的代码和数据装入内核,然后使用内核的符号表继续模块中任何未解析的 ...

  7. kafka配置的问题排查

    问题反馈: xx现场测试环境下,整个平台的数据,除了原始数据模块,其他模块正常运行.相同版本的包,在线上环境上原始数据的订阅是正常的,但是测试环境没有,查看所有相关的日志,均没有报异常,且日志中有正常 ...

  8. 编译安装 Nginx

    一.下载 https://nginx.org/en/download.html yum install -y wget wget http://nginx.org/download/nginx-1.1 ...

  9. 在React中修改antd的样式

    1.在Component的Radio中加个style={radioStyle}. <RadioGroup> <Radio style={radioStyle} value={}> ...

  10. css3属性clip

    clip 属性定义了元素的哪一部分是可见的.clip 属性只适用于 position:absolute 的元素. rect(<top>, <right>, <bottom ...