基于Debian系统的VPS-Hexo建站
Tankey Lv2

img

摘要:面对用成熟的WordPress+Avada就可以建出一个非常好的网站的年代为什么我选择用Hexo建站呢?首先,是因为穷!!!面对很多大佬动辄百元一个月的VPS虚拟云主机,我这个每个月两位数的实在不能达到WordPress成熟的运行效果,网站数据库、PHP等的配置等都是longtime service版本。当然需要WordPress建站的可以看newlearnerの小站LNMP环境下搭建WordPress站点相关教程进行建站。其次,Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。具有占用小、效率高、运行快等优点。当然有人选择挂载在GitHub上也是可以的,当然我是因为我的VPS在搭梯子,毕竟价格在那,只用来搭梯子也太浪费了,所以我把VPS也利用起来建站了。说白了还是因为”穷”

准备工作

1、一台安装系统为Debian的VPS虚拟主机。

2、一个已经解析的域名。

3、一台mac电脑

一、配置本机端及安装Hexo

本机端

1、安装Node.js和Git

本人使用OSX系统故以mac系统下terminal为工具建站。

1
2
brew install git
brew install node

检验是否安装好Noje.js和Git

1
2
git
npm

2、安装hexo

terminal(终端)cd 到指定目录下

1
2
3
4
5
npm install hexo-cli -g
hexo init blog #blog 可谓自己自定义名字
cd blog #上一步改”blog“时候这一步也需要记得改为自己设置的名字
npm install
hexo server

安装完成后可以按住command键用鼠标左击 **http://location:4000/**本地运行查看效果。

img

二、配置VPS端环境

1、服务器端我选择的是Debian+Nginx环境。

Ps:①至于为什么用VPS端用Debian不用centos,因为我用搭梯子用Debian省的换内核了就是这么简单。

​ ②至于为什么选择Nginx,当然是因为Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。

2、为了方便下文的我vps端的ip地址我都用192.168.1.1来表示。当然有人可能说用ssh登陆到vps每次都用输入密码很烦,当然你可以用公钥登陆,至于详细教程推荐newlearnerの小站如何安全高效地使用SSH管理VPS这样省的每次都要输入密码登陆。(禁止root用户那一步跳过,因为为了省事,虽然这是不符合安全规范

1、ssh登陆到VPS的root用户下

1
ssh root@192.168.1.1  #如配置好端口请用ssh -p xxxx root@192.168.1.1   登陆

2、安装Nginx

1
apt-get install nginx

3、启动Nginx

1
service nginx start

测试虚拟主机的运行状态

img

Nginx常用配置参数
1
service nginx start | stop | restart | reload | status |

4、配置vps

创建虚拟主机配置文件

在 /etc/nginx/conf.d/ 创建虚拟主机配置文件 hexo.conf,直接输入

1
vi /etc/nginx/conf.d/hexo.conf    #hexo可以设置成自己需要的名字

如果不需要部署SSL证书请输入以下代码。

1
2
3
4
5
6
7
8
9
10
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name www.abc.com abc.com;
location / {
try_files $uri $uri/ =404;
}
}

如过需要部署SSL证书请输入以下代码。至于SSL证书如何部署请看newlearnerの小站Centos7 Apache环境下申请和安装SSL证书相关教程进行部署。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 443 ssl;
server_name abc.com; #记得换成自己的域名名称
ssl_certificate /etc/nginx/ssl/abc.com.crt; #记得换成自己SSL证书相关文件的存放地址
ssl_certificate_key /etc/nginx/ssl/abc.com.key; #记得换成自己SSL证书相关文件的存放地址
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html; #根目录的相对位置
index index.html index.htm;
}

}
server {
listen 80;
server_name itestv.com;
return 301 https://www.itestv.com$request_uri; #加上这一行
}

重启 Nginx服务器,让服务器设定生效。

1
service nginx restart

如果执行以上命令时出现如下错误

1
2
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.,

执行

1
nginx -t

如果继续出现如下错误

1
2
nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/default:22
nginx: configuration file /etc/nginx/nginx.conf test failed

那么执行以下命令进入到sites-enabled目录下

1
cd /etc/nginx/sites-enabled

再执行以下命令删除default文件

1
rm default

再次执行

1
nginx -t

出现如下代码时说明你已经配置成功了!!!

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 Nginx服务器,让服务器设定生效。

1
service nginx restart

查看nginx的状态

1
service nginx status

进入浏览器输入自己的域名,能看到以下页面就表示虚拟主机配置成功。

img

三、部署本地Hexo到虚拟机主机端

1、用rsync部署

相比较网上极力推荐的git hook方式部署Hexo到虚拟机主机端,rsync这个操作对于刚刚建站的小白更简单、方便、粗暴。其效果和git hook等同。

第一步:虚拟主机端部署

1
apt-get install rsync

相对于Digital Ocean Ubuntu VPS,大多数的Linux系统已经默认装有 rsync 了,可以运行 rsync测试下是否已经安装。

第二步:本机端部署

1
npm install hexo-deployer-rsync --save

2、rsync配置

编辑博客目录下_config.yml非themes主题下的_config.yml找到deploy填写如下代码。

1
2
3
4
5
6
deploy:
type: rsync
host: vps-ip # 这里填写你VPS的IP地址,比如:192.168.1.1
user: vps-user # 这里填写你登陆VPS所用的用户名,比如:root
root: /var/www/html # 这里填写你在nginx中配置的文件路径
port: xxxx # SSH默认端口号为22,如何修改请改为自己的端口号

3、配置完成后,cd到博客所在目录输入以下代码,将部署本地渲染网页到服务器上。

1
sudo hexo g -d

4、见证成果

在浏览器中输入自己的域名,看到如下画面证明你已经成功完成了Hexo博客的搭建。尽情开始你的个人博客创作吧!!!👏👏👏👏

img

  • 本文标题:基于Debian系统的VPS-Hexo建站
  • 本文作者:Tankey
  • 创建时间:2019-09-04 23:05:21
  • 本文链接:https://www.itestv.com/2019/09/04/hexo/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!