Hexo博客部署到腾讯云服务器

因为使用github仓库存放Hexo博客速度太慢,所以自己买了腾讯云的服务器,现在开始把博客部署到腾讯云,由于域名还没有审核通过,暂时使用公网ip访问

准备环境和工具

本地环境: win7

服务器: 腾讯云

使用工具: Xshell, Xftp, git

安装web服务器nginx

使用Xshell工具(root用户)远程登录腾讯云

安装gcc

yum install -y gcc gcc-c++

安装zlib、gcc、openssl依赖

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

安装PCRE库

cd /usr/local #首先进入local文件夹
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz #下载PCRE
tar -xvf pcre-8.37.tar.gz #解压PCRE
cd pcre-8.37 #进入PCRE
./configure #执行配置文件configure
make && make install #编译并安装
pcre-config --version #查看版本,能显示版本号则安装成功,进入下一步

安装nginx一定在local文件夹下

cd /usr/local/ #进入local文件夹
wget http://nginx.org/download/nginx-1.17.9.tar.gz #下载nginx
tar -xvf nginx-1.17.9.tar.gz #解压nginx
cd nginx-1.17.9 #进入nginx
./configure #执行配置文件configure
make && make install #编译并安装
whereis nginx #查找nginx安装目录
cd /usr/local/nginx #进入nginx安装目录
/sbin/iptables -I INPUT -p tcp –-dport 80 -j ACCEPT #开放linux的80端口
cd /sbin #进入sbin目录,启动nginx
./nginx

此时打开浏览器,输入公网IP+端口,进入nginx的欢迎页面

配置nginx服务器路由

mkdir -p /home/www/hexo #建立hexo目录
cd /usr/local/nginx/conf
ls
vim nginx.conf #编辑nginx的配置文件nginx.conf

修改根目录root为/home/www/hexo;

修改域名server_name为你备案的域名 www.xxxx.com ,如果还没有就不改,有了再改;

image

安装Node.js

cd ~ #退回根目录

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

yum install -y nodejs

node -v

npm -v  #查看版本号即成功,进行下一步

服务器上安装Git

yum install git 
git --version #查看版本号
adduser git #创建git用户
chmod 740 /etc/sudoers #修改git用户权限
vim /etc/sudoers #编辑sudoers文件

找到 root ALL=(ALL) ALL,在下一行添加 git ALL=(ALL) ALL,然后保存

image
chmod 400 /etc/sudoers #保存后修改回权限
sudo passwd git #设置git用户的密码(下面会用到)

给git用户配置ssh免密公钥登录

su git #从root用户切换到git用户
cd ~
mkdir .ssh #创建.ssh文件夹
cd .ssh  #进入.ssh
vim authorized_keys #在.ssh目录下创建authorized_keys
chmod 600 ~/.ssh/authorized_keys 
chmod 700 ~/.ssh # 修改权限
restorecon -Rv ~/.ssh #设置SELinux上下文

在.ssh目录下创建authorized_key这一步之后,打开本地存放公钥的文件id_rsa.pub(github生成ssh密钥问题不会的可以百度,教程很多这里不细讲),复制密钥到服务器上的authorized_keys文件中并保存,这样当你使用ssh远程连接服务器时就不用输入密码

接着在本地打开git bash用ssh方式远程连接服务器 ,登录成功界面如下图所示

创建git仓库

cd ~
git init --bare hexo.git #创建hexo.git仓库
vim ~/hexo.git/hooks/post-receive #在该仓库中创建钩子文件夹post-receive
# 并输入:git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f
chmod +x ~/blog.git/hooks/post-receive #给post-receive执行权限
cd ~
sudo chmod -R 777 /home/www/hexo #给hexo目录授予读写可执行权限,不然本地提交不到hexo文件夹中

修改本地配置文件

打开hexo博客配置文件_config.yml 修改repo:git@你的服务器公网IP:/home/git/hexo.git

本地打开git bash 输入部署命令

执行部署命令之前需要进入本地hexo博客安装目录中删除.deploy_git文件

cd /d/myHexo #进入安装hexo博客的文件夹
hexo clean
hexo g -d #部署成功

打开Xftp工具进入/home/www/hexo,看到文件就表示通过git已经提交到服务器中去了

但此时需要重启nginx服务才能访问

添加nginx服务到service

cd /etc/init.d  #在服务器上进入init.d目录下(记得切换回root用户 su root)
vim nginx #新建脚本文件nginx输入如下代码
#!/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
chomd +x nginx #给脚本文件可执行权限
service nginx restart # 重启nginx,以后可通过service命令nginx
                      # 启动service nginx start
                      # 停止service nginx stop
                      # 重启service nginx reload

走到这一步就算是大功告成,浏览器输入http://xxx.xxx.xxx.xxx:80/ 进入hexo我的博客主页了
更新:买的域名备案成功了,欢迎大家访问 我的Hexo博客

你可能感兴趣的:(Hexo博客部署到腾讯云服务器)