使用宝塔部署Hexo博客到自购服务器

之前购入了很便宜的阿里云主机玩玩,1核2G的配置运行博客和FTP存储都很方便,可以做的事情也更多。此教程记录如何用自购服务器运行网站。

安装宝塔面板

面板特色功能

  • 一键配置服务器环境(LAMP/LNMP)
  • 一键安全重启
  • 一键创建管理网站、ftp、数据库
  • 一键配置(定期备份、数据导入、伪静态、301、SSL、子目录、反向代理、切换PHP版本)
  • 一键安装常用PHP扩展(fileinfo、intl、opcache、imap、memcache、apc、redis、ioncube、imagick)
  • 数据库一键导入导出
  • 系统监控(CPU、内存、磁盘IO、网络IO)
  • 防火墙端口放行
  • SSH开启与关闭及SSH端口更改
  • 禁PING开启或关闭
  • 方便高效的文件管理器(上传、下载、压缩、解压、查看、编辑等等)
  • 计划任务(定期备份、日志切割、shell脚本)
  • 软件管理(一键安装、卸载、版本切换)

安装要求

  • 内存:512M以上,推荐768M以上(纯面板约占系统60M内存)
  • 硬盘:100M以上可用硬盘空间(纯面板约占20M磁盘空间)
  • 系统:Ubuntu16.04+、Debian9.0+,确保是干净的操作系统,没有安装过其它环境带的Apache/Nginx/php/MySQL(已有环境不可安装)

端口开放

如果不开放相关端口可能造成无法访问宝塔面板,默认是8888的端口,可进去自定义修改。

腾讯云:https://www.bt.cn/bbs/thread-1229-1-1.html
阿里云:https://www.bt.cn/bbs/thread-2897-1-1.html
华为云:https://www.bt.cn/bbs/thread-3923-1-1.html

安装命令

Ubuntu / Deepin安装命令:

1
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

Debian安装命令:

1
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

设置SSH登录

完成如下的设置,你可以直接使用你的命令行工具通过SSH来登录你的服务器(建议在代理下使用SSH),而且不需要每次都输入账号密码,如果没有相关需求的同学可以直接跳过这部分。

生成本地公钥

首先,我们现在本地生成自己的公钥

1
ssh-keygen -t rsa '你的邮箱地址'

上传你的公钥到服务器

将你的公钥/.ssh/id_rsa.pub复制到服务器上对应用户的/.ssh/authorized_keys即可。

配置Git

在home目录下创建两个文件夹(Git和Hexo)。

  • Git用来配置本服务器端的Git命令
  • Hexo为静态博客
1
2
3
4
cd ..   //这里是因为默认执行目录是root,需要返回根目录
cd home
cd git
git init --bare hexoBlog.git

接着,转到宝塔面板,进入/home/git/hexoBlog.git/hooks,然后新建一个文件:post-receive,不要后缀名。然后编辑它,加入如下两条代码:

1
2
#!/bin/bash
git --work-tree=/home/hexo --git-dir=/home/git/hexoBlog.git checkout -f

保存即可,接着转到已经登录的实例控制台,即xshell或者腾讯云控制台执行如下代码:

赋予权限
1
chmod +x /home/git/hexoBlog.git/hooks/post-receive

配置网站

在左侧网站标签页下,添加你的站点信息。

网页设置

宝塔面板默认的nginx配置文件在根目录->www->serve->nginx->conf下,找到nginx.conf,编辑它。

1
2
3
4
5
6
7
server
{
listen 80; # 博客服务器的访问端口
server_name baidu.com; # 填写自定义域名或者IP
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/hexo; # 填写服务器的目录

本地服务器配置

找到本地Hexo站点配置文件_config.yml,进行如下更改:

config.yml
1
2
3
4
5
6
7
deploy:
type: git
repository:
git: root@你的云服务器ip:/home/git/hexoBlog.git
#如果你更改了ssh端口的话,需要改成:
git: ssh://root@ip:端口号/home/git/hexoBlog.git
branch: master