2019.7.5终于决定建立个人网站了,记录一下建立的过程、
一、
在腾讯云购买了centos系统的服务器,并购买了域名。
二、域名进行了实名登记,等待审核通过后进行备案注册。
2019.7.10
做事的确比较墨迹
今天实名登记通过了,在手机端进行了备案注册,接下来还是等待,把网站起名为饮冰十年,算是一个初心吧,希望自己永远能热血,在这个行业坚持住。
其实后面怎么做也不知道了,也算是摸着石头过河,走一步看一步了。
下午:名字不行,改了......
三、开始纠结wordpress还是hexo
看了一堆博客发现大多数人用的时hexo,而且hexo比较轻便,所以选择hexo
四、具体搭建
终于到了主体了!!!
-
服务器使用
- 安全组
是虚拟防火墙,控制端口,至少绑定一个安全组,通过安全组开通了22和80端口
-
本地配置
1.Node.js配置
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 [1]
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 [2] 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
2.安装git
3.配置ssh(ssh是什么??)
生成ssh公钥:Git Bash Here打开命令行终端
ssh-keygen -t rsa
生成的文件默认在~/.ssh目录中,看到有id_rsa,id_rsa.pub这些文件即可,
Win10中就是 我的电脑/C盘/用户/你自己的用户名/.shh/ 就可以看到了
-
腾讯云配置
安装git :yum install git y
git --version
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
添加账户权限
chmod 740 /etc/sudoers
vim /etc/sudoers
找到配置文件中
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
添加
git ALL=(ALL) ALL
保存退出并改回权限
chmod 400 /etc/sudoers
设置git密码
sudo passwd git
root
切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
# 然后将win10中生成的id_rsa.pub文件中的公钥复制到authorized_keys
chmod 600 /home/git/.ssh/authorzied_keys
chmod 700 /home/git/.ssh
- 需要修改/etc/ssh/sshd_config
RSAAuthentication yes #启用 RSA 认证,默认为yes PubkeyAuthentication yes #启用公钥认证,默认为yes AuthorizedKeysFile .ssh/authorized_keys
- 在本地机复制公钥到服务器
要使用该命令,你只需要指定要连接到的远程主机和你有 SSH 访问权限的用户帐户。你的 SSH 公钥会被复制到该帐户目录下。
语法如下:
ssh-copy-id username@remote_host
您可能会看到这样的消息:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
这只是表示你的本地计算机不能识别远程主机,它只会在你第一次连接到新主机时出现。键入 “yes”,然后按确认键继续。
-
在云服务器为本地 hexo 博客配置一个部署静态文件的远程仓库
如果没有/usr/repo目录,需要先创建一个,并修改目录所有权及用户权限
mkdir /var/repo/
chown -R git:git /var/repo/
chmod -R 755 /var/repo/
在/usr/repo/下创建一个名为hexoBlog的仓库
cd /var/repo
git init --bare hexoBlog.git
#Initialized empty Git repository in /var/repo/hexoBlog.git/
- 创建git仓库
cd var/repo
git init --bare hexoBlog.git
- 创建一个新的 Git 钩子,用于自动部署
在 /var/repo/hexoBlog.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
vim /var/repo/hexoBlog.git/hooks/post-receive
#文件内写入:
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f
修改权限:
chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
chmod +x /var/repo/hexoBlog.git/hooks/post-receive
-
配置Nginx(服务器端)
安装Nginx
yum install -y nginx
配置Nginx
nginx -t #查看nginx.conf配置文件的位置
打开nginx.conf文件
vim /etc/nginx/nginx.conf
server
{
listen 80;
# server_name 填写自己的域名
server_name ali6.cn blog.ali6.cn;
index index.php index.html index.htm default.php default.htm default.html;
# 这里root填写自己的网站根目录,修改为/var/www/hexo
root /var/www/hexo;
启动Nginx
systemctl start nginx.service #CentOS7.5亲测可用
重启Nginx
systemctl restart nginx.service
-
win10部署Hexo
打开D盘,新建blog文件夹,打开blog文件夹,按住Shift键右击鼠标,点击”在此处打开CMD窗口”。
发现电脑右键后没有这项,更改注册表:百度吧!
问题二:逐渐暴躁.....每一步都是问题???hexo init 加载速度太慢,无法完成
第二天莫名其妙就成功了,可能和网速有关???
配置_config.yml,完成自动化部署
deploy:
type: git
#server改为你的服务IP地址或解析后的域名
#例如我改为repo: git@ali6.cn:/var/repo/blog.git
repo: git@server:/var/repo/blog.git
branch: master
自闭.....
反反复复的尝试后解决了一些问题,最终上传成功
#--------更改完成之后执行如下命令,进行上传远程机器--------#
hexo clean # 清理项目
hexo g # 编译项目
hexo d # 发布项目
存在的一些问题
整个配置过程中其实出现特别多的问题,大多都通过百度解决了,下面列出出一些印象比较深刻的问题以及解决方案
- git-receive-pack: command not font
在服务器端:
sudo ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
- 整个配置完成后输入服务器ip显示nginx403
先确定文件已成功拷入服务器中,在var/www/hexo中文件与本地一致
服务器端,在nginx的配置文件中 vim /etc/nginx/nginx.conf
location处进行更改
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 111.114.112.117; #远程服务的IP地址,当然也可以写localhost
root /home/hexo;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /home/hexo;#这里做更改,将位置定位在index.html
index index.html;
}
再次输入服务器ip,发现博客部署成功
yeah!
yuanjiaqi7.cn 持续部署中!