侧边栏壁纸
博主头像
YuJiuYao

You should think more, not talk more

  • 累计撰写 11 篇文章
  • 累计创建 7 个标签
  • 累计收到 2 条评论
标签搜索

开源CMS系统-搭建个人博客网站

YuJiuYao
2021-04-21 / 0 评论 / 1 点赞 / 183 阅读 / 7,426 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-04-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

title: 搭建个人博客网站,从"0"到"1"手把手教学
date: 2021-04-25 05:28:29.0
updated: 2021-05-03 15:23:55.79
url: https://yujiuyao.top/archives/搭建个人博客网站从0到1手把手教学
categories: 博客
tags: Blog | Linux


My Blog搭建历程:

  • 2020/04/05: 购买服务器(腾讯云)&& 域名(阿里云)。
  • 2020/04/06: 完成域名实名。
  • 2020/04/07-2020/04/09: 复习Linux命令,了解宝塔面板安装及使用。
  • 2020/04/09: 申请网站备案。
  • 2020/04/09-2020/04/13: 完成静态主页代码编写 (H5+CSS+JS)
  • 2020/04/13-2020/04/14: 注册免费域名-> https://my.freenom.com/ 学习域名解析。
  • 2020/04/14-2020/04/15: 上传到服务器测试静态页面。-yuzheng.cf
  • 2020/04/13-2020/04/14: 上传服务器测试静态主页。
  • 2020/04/14-2020/04/15: 学习开源博客系统Halo-> https://github.com/halo-dev/halo
  • 2020/04/15-2020/04/17: 学习部署Halo-> https://halo.run/
  • 2020/04/17:在Vultr-> https://www.vultr.com/?ref=7986137 主机上部署halo。
  • 2020/04/17:将Freenom免费域名通过DNSPod-> www.dnspod.cn 改为腾讯DNS代理。
  • 2020/04/19: 配置反向代理,解析域名。-> yuzheng.cf
  • 2020/04/23: 网站备案成功,申请SSL证书。
  • 2020/04/24: 服务器迁移到腾讯云,域名更换为 yujiuyao.top

个人博客搭建完整教学:

1.购买服务器


国内服务器商:

腾讯云 ,阿里云,百度云 ,华为云 ,亿恩云 ,西部数码 ,小鸟云 等…如果你的网站受众用户为国内,那推荐选择腾讯,阿里等服务器商,特别是个人博客,简单的 Web 应用,小程序、微信公众号等网络应用,选择轻量服务器,实例选择CentOS 7即可。


国外服务器商:

Vultr主机,Megalayer香港服务器,RAKsmart美国服务器 等…如果你的网站受众用户为国外,并且日后不考虑在国内宣传,那国外服务器也是可以的,免备案,但是国内访问速度比较慢,并且有概率被“墙”。Vult服务器:注册充值送10刀,活动地址: https://www.vultr.com/?ref=7986137


2. 购买域名

国外服务器商:

Godaddy https://hk.godaddy.com/Gandi https://www.gandi.net/zh-HansFreenom https://my.freenom.com/

国内服务器商:

万网 https://wanwang.aliyun.com/domain
综合建议 :如果服务器选购为国内,则考虑购买对应服务器购买厂商的域名
理由 :方便备案和后期解析。


3.备案

当我们确定了网站内容和规划,首先在其服务器商申请备案。因为备案需要花费一定的时间,为了尽早实现网站发布,所以当我们初步确定网站内容和大体规划后,就可以申请备案。
备案查询 http://icp.chinaz.com/


4.SSH客户端和宝塔面板

4.1安装SSH客户端

简单来说SSH客户端就是,可以在本地电脑远程控制你的服务器,连接到你的服务器进行命令操作的软件。我用的是Xshell,大家可以自行搜索选择自己喜欢的。
Xshell官网: www.netsarang.com


4.2安装宝塔面板

宝塔面板提供在线的可视化操作界面,是比较简单好用的服务器运维面板
宝塔面板官网: https://www.bt.cn/
官网有具体的安装指南,我在此简单整理:
配合SSH客户端
Centos安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装好之后,查看外网链接,用户名,密码等信息。将外网链接粘贴到浏览器进入宝塔面板。
选择推荐软件一键下载即可。


4.3宝塔面板常用命令:

菜单命令:(输入对应序号进行操作)

bt

查看入口及登录信息命令:

bt default

5.安装开源博客系统

几款优秀的开源博客系统:

OneBlog
一个简洁美观、功能强大并且自适应的Java博客。
项目地址: https://gitee.com/yadong.zhang/DBlog

以halo为例

官网地址: https://halo.run/
halo官网的安装指南里有很详细的介绍,并且提供了多种安装方法。

下面是我整理出最简单安装步骤:

5.1升级yum包

bt defaultyum update

5.2安装Docker

5.2.1安装yum-utils软件包(提供yum-config-manager实用程序)并设置稳定的存储库。

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

5.2.2安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本

sudo yum install docker-ce docker-ce-cli containerd.io

5.2.3启动docker

sudo systemctl start docker

5.2.4通过运行hello-world映像来验证Docker Engine是否已正确安装。

sudo docker run hello-world

5.3使用Docker部署Halo

5.3.1创建工作目录

mkdir ~/.halo && cd ~/.halo

5.3.2下载示例配置文件到工作目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

5.3.3拉取最新的 Halo 镜像

docker pull halohub/halo

5.3.4编辑配置文件,配置数据库或者端口等,如果不修改直接跳到 3.5创建容器

vi application.yaml

基础配置
端口:用于指定 HTTP 服务器监听的端口,Halo 默认设置为 8090。

server:
port: 8090

数据库:Halo 目前支持 H2 及 MySQL 数据库。
H2:

spring:
datasource:

driver-class-name: org.h2.Driver

url: jdbc:h2:file:~/.halo/db/halo

username: admin

password: 123456

h2:

console:

settings:

web-allow-others: false

path: /h2-console

enabled: false

MySql:

spring:

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true

username: root

password: 123456

要求:版本:5.7 +
字符集(Character Set):utf8mb4
排序规则(Collate):utf8mb4_bin
存储引擎:InnoDB
综上,建议创建数据库采用下面的命令:

create database halodb character set utf8mb4 collate utf8mb4_bin;

5.3.5创建容器

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo

-it:开启输入功能并连接伪终端
-d:后台运行容器
–name:为容器指定一个名称
-p:端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v:工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart:建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。其实到了这一步我们的网站已经基本部署成功,打开 http://ip:端口号(默认8090) 即可看到安装引导界面。如果需要给网站绑定域名,则需要我们我们在宝塔面板新建一个网站,然后做反向代理

5.4反向代理

5.4.1宝塔面板新建网站,添加域名(已经做好域名解析)。

5.4.2免费申请宝塔" Let’s Encrypt " SSL证书,并打开“ 强制启动HTTPS ”

5.4.3修改网站配置文件为:

server
{
listen 80;
listen 443 ssl http2;
server_name yujiuyao.top www.yujiuyao.top;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/yujiuyao.top;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate    /www/server/panel/vhost/cert/yujiuyao.top/fullchain.pem;
ssl_certificate_key    /www/server/panel/vhost/cert/yujiuyao.top/privkey.pem;

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

ssl_prefer_server_ciphers on;

ssl_session_cache shared:SSL:10m;

ssl_session_timeout 10m;

add_header Strict-Transport-Security "max-age=31536000";
error_page 497  https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START  错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START  PHP引用配置,可以注释或修改
include enable-php-71.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/yujiuyao.top.conf;
#REWRITE-END

#禁止访问的文件或目录

location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)

{
return 404;
}

一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}

#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;
#}
location / {
proxy_pass http://127.0.0.1:8090/;
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;
}

access_log  /www/wwwlogs/yujiuyao.top.log;
error_log  /www/wwwlogs/yujiuyao.top.error.log;
}

6.页面配置

主题设置

开源主题地址: https://halo.run/themes
安装方法:
1.本地上传
下载主题到本地电脑,通过宝塔面板上传到**/root/.halo/templates/themes**文件夹,并解压。
进入halo后台(域名:admin)-主题-设置
2.远程下载
进入主题地址,复制开源主题地址,返回后台选择远程下载,用Halo自带的程序拉取主题。

评论设置

halo后台打开SMTP服务

SMTP 地址 smtp.qq.com
发送协议 smtp
SSL 端口 465
邮箱密码 qq邮箱获取授权码
打开评论API


7.总结

开源的博客系统提供了完整的前后端代码,halo更是贴心的提供官方网站指导服务器部署,希望大家有机会去Github为开源项目点个Star!
GitHub:: https //github.com/halo-dev/halo

          <p>
            ${.now?string("yyyy")} ©<a href="${blog_url!}" target="_blank" rel="noopener noreferrer">${user.nickname!}</a>
            <#if settings.enable_icp && settings.icp?? && settings.icp?trim!=''> - <a class="icp" href="https://beian.miit.gov.cn" target="_blank" rel="noopener noreferrer nofollow">${settings.icp}</a></#if>
          </p>
          <#if settings.enable_powerby!true><p class="site_powered">Powered by<a class="a-powered" href="https://yujiuyao.top/" target="_blank" rel="noopener noreferrer">YuJiuYao</a>&nbsp;|&nbsp;🌈 Time From<a class="a-theme" title="当前主题:Joe2.0 V${theme.version!}" href="" target="_blank" rel="noopener noreferrer">2021/03/</a></p></#if>
1

评论区