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即可。
- 腾讯云服务器:秒杀活动地址: https://curl.qcloud.com/LjEwlI33
- 新用户99一年地址:https://curl.qcloud.com/NJj2dlfC
- 校园云服务器地址:https://cloud.tencent.com/act/campus
注意: - 选择国内服务器需要备案,但是只要按照流程申请,一般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
Halo可能是最好的 Java 博客系统。
项目路径: https://github.com/halo-dev/halomblog -
mblog
开源免费的博客系统, Java语言开发, 支持mysql/h2数据库, 采用spring-boot、jpa、shiro、bootstrap等流行框架开发。
项目地址: https://gitee.com/mtons/mblog -
solo
一款小而美的 Java 博客系统,多种皮肤自由切换。
项目地址: https://gitee.com/dl88250/solo -
biezhi
一款简洁美观的Java博客系统,让每一个有故事的人更好的表达想法!
项目地址: https://gitee.com/biezhi/tale
以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> | 🌈 Time From<a class="a-theme" title="当前主题:Joe2.0 V${theme.version!}" href="" target="_blank" rel="noopener noreferrer">2021/03/</a></p></#if>
评论区