云服务器配置hexo

文章中云服务器指阿里云服务器(ECS)

装nginx

安装gcc gcc-c++

1
yum install -y gcc gcc-c++

安装PCRE库

1
2
3
4
5
6
7
cd /usr/local
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
tar -xvf pcre-8.37.tar.gz
cd pcre-8.37
./configure
make && make install
pcre-config --version

安装openssl 、zlib 、 gcc 依赖:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装nginx

1
2
3
4
5
6
7
8
9
10
11
cd /usr/local/  

wget http://nginx.org/download/nginx-1.17.9.tar.gz

tar -xvf nginx-1.17.9.tar.gz

cd nginx-1.17.9

./configure

make && make install

切换到路径/usr/local/nginx/conf下,打开文件nginx.conf.找到下列内容所在位置

1
2
3
4
5
6
7
8
listen 80; 
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}

root html修改为root /home/www/hexo
为了方便nginx操作,在/etc/init.d/路径下新建脚本文件nginx,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash  
#Startup script for the nginx Web Server
#chkconfig: 2345 85 15
nginx=/usr/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.conf
case $1 in
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done."
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done."
;;
test)
$nginx -t -c $conf
echo "Success."
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done."
;;
restart)
$nginx -s reload
echo "reload done."
;;
*)
echo "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac

文件保存后执行chmod +x nginx,可以获得命令:启动service nginx start 、停止service nginx stop 、重启service nginx reload

安装node.js和git

安装node.js

1
2
3
curl -sL https://rpm.nodesource.com/setup_10.x | bash -  

yum install -y nodejs

查看版本确认是否安装成功

1
2
3
node -v  

npm -v

git安装

安装git及新建git用户

1
2
3
4
5
6
7
yum install git

adduser beingwang

chmod 740 /etc/sudoers

vi /etc/sudoers

打开sudoers文件后找到一下内容所在位置

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

下面加上beingwang ALL=(ALL) ALL然后保存退出
改回刚才修改文件的权限。chmod 400 /etc/sudoers
为新建的beingwang用户设置密码sudo passwd beingwang
切换用户并建立密钥

1
2
3
4
5
6
7
su beingwang

cd ~

mkdir .ssh

cd .ssh

使用vi命令vi authorized_keys创建authorized_keys文件,并将本地.ssh/id_rsa.pub内容粘贴进这个文件后保存退出。然后修改这个文件及上级文件夹权限

1
2
3
chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

创建git仓库

1
2
3
4
cd ~  

git init --bare blog.git

新建使用命令vi ~/blog.git/hooks/post-receive新建文件,在文件中输入git --work-tree=/home/www/hexo --git-dir=/home/beingwang/blog.git checkout -f(如果不存在目录/home/www/hexo,则需要自己新建),保存后通过命令chmod +x ~/blog.git/hooks/post-receive修改权限
切换用户为root,修改博客文件夹的权限

1
2
3
4
5
su root

chmod 777 /home/www/hexo

chmod 777 /home/www

本地配置

git下载

参考来源为CNS。先检查系统是否已经安装了git,检查方法为直接在终端输入git命令,如果显示command 'git' not found,but can be installed with:apt install git就表示系统没有安装git,如果显示相关的帮助信息则表明系统有git。没有安装则直接输入命令sudo apt-install git,然后会有一个让确认是否安装的信息,输入Y然后回车即可。完成后系统会自动显示相关的帮助信息。

配置git

配置的内容为配置用户和邮箱,以及初始化仓库。
在本地hexo所在文件下使用git init初始化仓库,成功后会显示“已初始化空的 Git 仓库于 /home/being/blog/.git/”。配置名称和邮箱命令如下,该命令成功执行后没有返回信息:

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

需要注意的是,不初始化仓库无法配置用户信息,会提示“fatal: 不在 git 仓库中”

配置hexo

在本地电脑输入命令ssh -v beingwang@服务器的公网ip链接是否能正常连接。找到本地blog文件夹,打开文件夹中的_config.yml文件,将

1
2
deploy:
type:''

修改为

1
2
3
4
deploy:
type: git
repo: beingwang@服务器公网ip:/home/beingwang/blog.git
branch: master

安装git的hexo插件,作用为使用hexo部署命令hexo d自动将博客内容部署到服务器上

1
2
3
cd /home/being/blog

npm install hexo-deployer-git --save