虽然之前有使用过wordpress搭建博客的经验,但实际上的使用体验并不是很好,因为wordpress功能强大的同时,系统有些臃肿,自己的云服务器配置上不去,会造成图片和文章逐步增多后的加载过慢的问题。
目前搭建博客的主要方法有Hexo,Hugo,Typecho,Halo,Wordpress,Z-blog等等……
其中上手的容易程度和要求的技术也不一样,这篇文章对上诉方法的优缺点有着不错的总结:https://blog.laoda.de/archives/blog-choosing
本博客采用halo和docker搭建,主要的流程如下:
1.购买一台云服务器,例如阿里云和腾讯云,华为云等等,切记到它们的官网购买,不要轻易点击别人转发的链接购买。
2.通过FinalShell或者xshell之类的远程连接工具,链接自己的云服务器。
3.给自己的云服务器安装宝塔面板和docker,halo博客
4.拥有一个已经解析的域名,在宝塔面板中做反向代理。
5.根据的需求和喜好安装博客的主题
6.设置docker的自动启动
7.附注:可以用docker命令简易的创建第二个halo博客
购买服务器和域名的方法比较简单,下面从连接服务器开始说明
附注:域名购买后应当解析后才能使用!!!
2.我用的xshell连接,首先创建新的连接,点击文件->新建,如图:
若出现“Welcome to Alibaba Cloud Elastic Compute Service !”则证明连接成功
3.在宝塔的官网 https://www.bt.cn/new/download.html 找到自己服务器系统的安装命令,例如我的centos的安装命令是:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
中途有提示y/n,输入y,回车。
安装完成后,输入bt打开宝塔的菜单,输入14,找到外网的链接地址,复制到浏览器打开,输入宝塔的账户密码,选择LNMP的极速安装即可。
4.安装宝塔后再docker的官网:https://docs.docker.com/engine/install/
选择自己的服务器安装的系统,根据官网文档进行操作。
以centos为例子,首先安装yum-utils包,命令为:
sudo yum install -y yum-utils
然后是
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
最后安装安装 Docker 引擎:
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
装好后和官网的GPG 密钥进行检验。
5.使用 Docker 镜像安装halo,官网是:https://docs.halo.run/getting-started/install/docker/
a.创建 工作目录
mkdir ~/.halo && cd ~/.halo
b.下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
c.编辑配置文件,配置数据库或者端口等
vim application.yaml
一般不对配置文件进行更改,按esc,:q,退出即可。
d.拉取最新的 Halo 镜像
docker pull halohub/halo:1.5.4
e.创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
附注:-it: 开启输入功能并连接伪终端
-d: 后台运行容器
–name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
!8090是云服务器的映射端口,记得在服务器里面放行。
f.打开 http://ip:端口号 即可看到安装引导界面。完成基本的注册信息即可.
6.配置反向代理:在所要用的域名下设置->配置文件中注释掉
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
该代码部分大概在50~60行左右,并在下方添加脚本内容
location / {
proxy_pass http://127.0.0.1:8091/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
随后即可用域名来访问博客,若想打开博客后台,在网址后面输入/admin打开即可。
部署ssl证书,可以在宝塔申请免费90天的Let’s Encrypt 证书。
7.更换主题:在后台外观->主题->安装,可以远程拖库,或者下载后本地安装。
附注:若是动态网页不可以打开全局绝对路径,会导致网页坍塌。
8.用docker命令搭建新的halo博客
创建新的文件夹:mkdir halo
创建新的子文件夹:mkdir new
创建新的容器:
docker run -it -d --name halo2 -p 8091:8090 -v ~/.halo/new/root/.halo --restart=unless-stopped halohub/halo:1.5.4
附注:两个域名分别指向不同的博客的时候,切记改一下端口,比如第一个默认云服务器的端口是8090,应该在服务器里面放行该端口。第二个改为8091的时候,服务器也要放行端口。并且在宝塔做反向代理的时候,把配置文件里面的端口也改为与之对应的开放端口。这样的话,两个域名分别指向不同的博客,若不更改配置文件的端口,会让两个域名指向同一个博客网站。
9.设置docker自动启动:(为了防止服务器重启后docker没有自动启动的情况出现)
查看docker中运行的容器:docker ps
设置docker自动启动:systemctl enable docker
评论区