HEXO部署-将懒发挥到极致
在写该文章时,博客部署的流程不断改变,所以,该文章的部署流程有点混乱。
现在我的博客部署流程是:在本地将Hexo项目源码git push到Gitee,Gitee自动git push到GitHub的仓库,GitHub Actions监测到仓库变化,自动构建Hexo(hexo clean && hexo g),同时,将/public文件夹下的文件同步到我的服务器,更新博客文章。
前言
我博客原本是部署在GitHub Pages上的,由于8月份由于Leancloud不支持评论数据在国内访问了,刚好618买了个服务器一直在吃灰,趁着国庆有时间就折腾一下,把博客迁移到服务器上吧,顺便把评论也搞一下。
2022-10-20追更:
前面已经将本地的/public/部署到服务器了,但是总感觉不够好,不能实时备份我的文件,万一哪天电脑崩了(暑假我的硬盘就突然崩了 🥚 )。并且每次都要在自己电脑hexo g && hexo g && hexo d,还是不方便,都有服务器了,为什么还要在自己电脑编译,直接丢在服务器编 ...
【Docker系列】-部署ChatGPT
前言
由于专业相关,我几乎每天都会用到ChatGPT,有时候需要在手机使用ChatGPT,代理也不是时时刻刻都稳定,想了一下,不如自己部署一个ChatGPT,用API 调用就行,偶尔用一下,对于OpenAI的限额,应该是完全够用的。
部署ChatGPT会存在一个问题,你的服务器能不能访问到ChatGPT,如果是国内的服务器,你可能需要做一层代理才能访问到ChatGPT,并且,代理的IP一定要干净,尽量不要使用代理池,不然容易被封号。
如果你有国外的服务器,就不存在这个问题了,国外的服务器可以直接访问ChatGPT,直接部署调用API就可以了,下面我使用国外的服务器来进行部署演示。
莱卡云
官网:https://www.lcayun.com/
看到国内的一个厂商莱卡云,本着不是很贵,就入手试一下。打开官网,这界面看着还挺不错,有点像腾讯云的秒杀专场。
主要是国外的机器搭网站不需要备案,不需要备案,不需要备案,随便建站,这就很方便,国内建站不备案就给你停了,麻烦。而且国内的机器带宽一般比较小,但国外的机器带宽一般比较大。
我入手的是这个,美国CN2 GIA(弹性),2G2核10M,跑 ...
申请acme.sh免费SSL证书
介绍
HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。HTTP是明文传输数据,数据都是未加密的安全性差。
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
如今,互联网基本全都支持HTTPS,因为相比HTTP,HTTPS更加安全,可以防止第三方入侵我们的网站,我们有时候打开一些老一点的HTTP的站点,会自动跳转到别的奇奇怪怪的网站上去,由于HTTP网站安全性不够,如果被一些不法分子劫持,跳转到第三方网站,如果我们使用HTTPS,会放不法分子入侵难度加大,从而可以减少被入侵的机会,让我们网站更加安全。
acme.sh的出现,解决了我们小站的 ...
【SpringBoot系列】04-NoSQL数据库
Redis
Redis介绍
一个开源(BSD许可)的、内存中的数据结构存储系统,可用作数据库、缓存和消息中间件,并提供多种语言的API,是一个高性能的key-value数据库。
与其他key-value缓存产品相比有以下三个特点:
支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储
支持数据的备份,即master-slave模式的数据备份
优点
存取速度快:Redis速度非常快,每秒可执行大约110000次的设值操作,或者执行81000次的读取操作
支持丰富的数据类型:Redis支持开发人员常用的大多数数据类型,例如列表、集合、排序集和散列等
操作具有原子性:所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新后的值
提供多种功能:Redis提供了多种功能特性,可用作非关系型数据库、缓存中间件、消息中间件等
Redis安装与配置
1. 安装软件
安装Redis服务端,这里蓝奏云的版 ...
【SpringBoot系列】03-测试与数据库操作
配置属性与数据
获取配置文件属性
在前面我们有学习过,在配置文件添加属性,使用@ConfigurationProperties获取配置文件属性的值,并且通过实体类来封装这些数据,实体类需要有set方法来进行自动注入。
使用实体类封装配置属性
使用实体类来封装配置文件的属性需要以下三个步骤:
定义属性
创建实体类封装属性
在实体类绑定属性并生成get、set方法
定义实体类为Bean对象(这样实体类才可以被IOC容器管理注入信息)
定义属性
比如我们在配置文件添加如下几个属性:
123student: name: 小码同学 major: 计算机科学与技术
封装属性
然后再使用一个实体类来封装这些信息
123456789import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;@Data // 自动生成get、set方法@ConfigurationProperties(prefix = "student") // 绑定配置文 ...
Linux常见问题
Linux环境
Nginx安装报错
configure编译错误
make安装错误
解决方法
错误表示说没有找到error.log文件,没有办法设置日志文件环境变量,所以报错了。
那我们创建一个就好了,报错的路径在哪里,我们就在哪里创建一个日志文件。
12mkdir -p /usr/local/nginx/logs/touch /usr/local/nginx/logs/error.log
PHP-FPM启动报错
排查错误
启动PHP-FPM报错
1Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details.
查看PHP-FPM状态
查看状态是否报错,或者看看能不能从状态看出点问题来。
12345678910111213141516[root@ECS- bin]# systemctl ...
Flarum问答社区
前言
中文站:https://flarum.org.cn/
Flarum 是一款非常简洁的开源论坛软件。 它响应快速、简便易用,拥有打造一片成功的社区所需的所有功能。 它也极其可扩展,允许达到终极的可定制性。
Flarum 的前身是 esoTalk 和 FluxBB, 它生来就被设计如此:
快速、简单。 不杂乱不臃肿,没有复杂的依赖关系。 Flarum 使用 PHP 构建,因此很容易被部署。 界面采用高性能且小巧的 JavaScript 框架 Mithril。
漂亮、响应式。 以人为本的论坛软件。 Flarum 被精心设计以在不同平台间保持一致性和直观性,开箱即用。
强大、可扩展。 您可以客制化、扩展或集成 Flarum 以满足您的社区需求。 Flarum 基于 MIT 协议 发布。
免费、开源。 Flarum 以 MIT 许可证 发布。
安装Flarum
安装Flarum的方式有两种,一个是Docker一个是直接安装,Docker方式安装方便,快速,直接拉取镜像一个命令就可以快速启动,但稳定性不如直接安装。直接安装就是环境比较复杂,但比较稳定。
Docker方式安装
...
【SpringBoot系列】2-整合SSMP+高级配置
什么是SSMP?
SSMP和SSM差不多,只是将SSM中的Mybatis换成MybatisPlus,其中SSM是Spring、SpringMvc、Mybatis框架的整合,是标准的MVC模式,标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。
我们下面讲解整合一下Junit、Mybatis、MybatisPlus、Druid,然后做一个小案例。
创建SpringBoot项目
创建SpringBoot有几种方式,一种是使用Maven来创建SpringBoot项目,一种是从官网配置项目信息,然后下载压缩包在本地打开,还有一种是直接在idea创建SpringBoot项目,下面演示在idea创建一个SpringBoot项目:
分析pom依赖
我们在创建SpringBoot项目时,如果不勾选任何依赖,在创建项目后,我们在pom.xml文件可以看到下面这段标签,这就是SpringBoot自带的Junit5 测 ...
Jenkins集成Gitee持续集成
前言
Jenkins集成Gitlab持续集成
之前使用过Jenkins+Gitlab+Dockerfile+Nginx来部署过SpringBoot项目,这次试试使用Gitee仓库部署项目,使用Gitee来集成项目,对于独立开发者用的更多,使用GitHub需要魔法,有时候push会失败就没办法,用Gitee的效果就会好很多。速度快。
我们还可以将我们的博客源码放在Gitee上,然后在Jenkins自动化构建我们的博客。方面管理。
安装Jenkins
我们使用Docker安装Jenkins,因为如果使用Jenkins安装包可能会因为会因为环境问题导致无法打开Jenkins,之前使用Jenkins的jar包来安装Jenkins,是真的难搞,一大堆因为环境问题无法打开Jenkins,所以我们使用Docker容器来部署Jenkins,这样会避免一些环境的问题。
安装准备
安装Docker(必装)
安装Docker这里就不展开讲了,可以去我之前的文章看看怎么安装Docker。
安装Docker教程:https://blog.hikki.site/2802e5c6.html
安装Mav ...
Java开发Swagger接口文档入门
前言
什么是Swagger?
Swagger是一种API设计工具,在API文档和代码之间建立了关系,并使API文档在不断更改的代码基础上保持最新、准确和可读性。它允许描述API的结构,以便机器可以读取它们,这就是Swagger的所有魅力的根源。通过读取API的结构,它可以自动构建漂亮和交互式的API文档。此外,Swagger还可以为您的API以多种语言自动生成客户端库,并探索其他可能性,如自动测试。
Swagger有什么用?
现在开发项目,大多数都是采用前后端开发,前后端交互都是通过API文档进行交流,前后端各自开发,互不干扰。
传统开发方式
传统的开发模式,后端写好API接口,生成文档,发给前端工程师,前端根据后端发过来的API文档进行开发,但这样做有个缺点,文档无法做到实时同步。
Swagger接口
在Java项目中,集成Swagger后,当我们编写出接口时,Swagger就会自动扫描我们的接口,通过Restful风格发布,每当后端的接口有更新,Swagger都会扫描到,并且更新,通过网页展示每个端接口的情况。
你甚至还能给每个接口添加注释,供前端工程师了解每个接口所需 ...