【笔记】如何使用宝塔面板+Tomcat搭建Solo博客。 有更新!

Published on with 2,071 views and 5 comments

概要:使用宝塔面板+Tomcat安装Solo博客的一次成功尝试的笔记。

零、前言

尽管不生产有价值的内容,甚至连写日记都难以坚持,但拥有一个自己的博客总是有趣的。
于是我购买域名,租用虚拟服务器,安装博客程序,终于能够从域名访问到自己的网站啦。
从最开始尝试网络上普遍推荐的lnmp+Wordpress,以至于OpenLiteSpeed、Typecho等等并不那么主流的方案。对Python感兴趣的时候考虑过Django,试图涉猎Go语言的时候看到Hugo,而这次我试图使用Github上Star数名列前茅的Solo来重建自己空荡荡的博客w。(项目地址:b3log/solo

正如知乎dboy君所指出的:个人博客选择wordpress还是typecho好呢?

你们这些孩子哪里是真为了写博客。
你们只是想体会换新工具的愉快感觉,顺便体会一下否定掉旧工具,觉得自己特别的小欣喜。

目前Solo官方推荐的安装方式为Docker安装,比较省事。(然而在使用宝塔面板时,我仅能运行Docker容器,却难以解决域名管理和端口的问题,向各位赐教。)
因执着于宝塔面板所提供的可视化(Windows积习),本小白经过一些踩坑尝试,遂有此一篇笔记。

一、前期准备:服务器、域名、宝塔面板

服务器:购买或租用一个虚拟服务器,使用SSH登录。
域名:购买域名,设置DNS指向服务器IP。
宝塔面板:参考宝塔面板官方网站的安装教程。安装lnmp环境。
(略)

二、安装博客程序Solo

参考文章:宝塔面板 – Java 项目管理器安装Solo博客教程(大鸟博客)
由于我的宝塔面板Java项目管理器无法安装运行Tomcat9,遂直接改用软件中心的Tomcat9。

1、下载博客程序Solo

(1)访问Solo的Github-Release页面:https://github.com/b3log/solo/releases ,获取最新war包地址。
(2)下载war包至服务器的/www/server/tomcat/webapps/目录下,由于Tomcat的配置,war包将自动被解压缩。(如未自动解压,尝试使用宝塔的文件管理器手动解压,或在ssh中执行unzip命令)

2、添加新网站

VBcOgO.md.png
如图所示,需要设置的地方有:
(1)域名
(2)根目录,设置为解压后solo所在路径
(3)创建一个SQL数据库,编码选择utf8mb4。(也可以之后进入数据库菜单创建)
(注:此处选择UTF-8亦可使用,按网上的说法选择utf8mb4可以覆盖包括emoji在内的更多字符,因此直接utf8mb4就好啦。参考:清官谈mysql中utf8和utf8mb4区别等)
(4)Solo是一个Java程序,PHP设置为纯静态。

3、配置Solo程序

(1)将宝塔面板解压生成的solo目录及子目录所有者设置为www(原本为root),权限为750。
(2)进入solo/WEB-INF/classes目录,修改latke.properties和local.properties

latke.properties

#### Server ####
# Browser visit protocol
serverScheme=https  #按需设置为http或https(需配置SSL)
serverHost=shikkaku.com
 #访问域名,注意把注释#删除
#serverPort= #留空,不过其实默认被注释了。有些教程设置为Tomcat9默认端口8083后反向代理,此处不采用这一方案。

local.properties

#### MySQL runtime ####
runtimeDatabase=MYSQL
jdbc.username=shikkaku_com #数据库用户名
jdbc.password=yYaBYcP #数据库密码
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.URL=jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
#3306/solo?应该是要与自己的数据库名一致,此处数据库名为solo。宝塔创建的默认可能是shikkaku_com(域名),保持一致。

4、检查与发布

打开Tomcat确认其配置(在宝塔软件页面Tomcat管理-配置修改,或者直接打开/www/server/tomcat/conf/server.xml)
确认以下代码无误:

      <Host autoDeploy="true" name="shikkaku.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
        <Context crossContext="true" docBase="/www/server/tomcat/webapps/solo-v3.6.2" path="" reloadable="true" />
#name=域名,docBase=solo程序路径。

宝塔面板-网站-点击网站名-开启Tomcat,如图所示:
VBgJr4.md.png

好啦~折腾暂时告一段落,访问网站开始愉快写博客吧w。
(然而真诚猜想不折腾面板,直接docker+docker-compose的部署应该是最轻松愉快的,舍近求远可谓极矣。修改本文时solo从3.6.1更新至3.6.2,安装更新配置又折腾了几分钟w。)
仅作为自己一番瞎折腾的一个记录。如能给诸位小白朋友们一点参考,幸甚至哉。
兴趣使然,不求甚解。啊,当时满脑子想的都是至少跑起来啊不要404不要502啊Orz。

可选:

1、设置SSL安全证书

(1)确定域名解析生效且正确解析至服务器地址,关闭CDN等会导致IP指向其他IP地址的服务(文件验证可能可以规避这一点,诸君多福)。
(2)使用宝塔面板傻瓜布置。
Vcf7Bq.md.png
(图中域名为演示用临时新建的,请不要在意。)
(3)确认前述Solo配置中,solo/WEB-INF/classes/latke.properties中serverScheme=https
(4)完成!尝试使用 https://shikkaku.com 访问你的网站~!

2、Cloudflare免费CDN

网络上有很多介绍、推荐Cloudflare的文章,此处不赘述。
不才愚见,简单想象成一个加速访问的免费代理服务器就好啦。
使用Cloudflare的优点,大致有:(1)有免费版(2)隐藏服务器真实IP,降低被攻击风险(3)缓存网站的静态内容,加速访问(4)说不定真的比直连快呢(5)据说国内备份主机域名可以使用与百度合作的特别版
建议:推荐在完成Solo配置和SSL配置后再进行设置,可以减少一些折腾。

1. 注册Cloudflare账号

访问Cloudflare官网,先免费注册一个账号~

2. 添加域名和DNS解析

添加自己的网站,并且设置DNS解析。(Cloudflare君将成为NameServer(名称服务器)!)

3. 更改域名的名称服务器

按Cloudflare的提示,去域名提供商那里把域名对应的DNS(域名系统)修改为Cloudflare指定的ray.ns.cloudflare.com和rose.ns.cloudflare.com(以官网为准,嗯。)

4. 设置CDN和https

VcHPQU.md.png
DNS中添加A记录,域名指向服务器IP(图中马赛克部分)。右侧橘黄色小云为开启CloudflareCDN状态,可以点击变为灰色(关闭CDN,直连,只提供DNS服务)。

VcHSJ0.md.png
在完成上述 1.设置SSL安全证书 后,设置SSL为Full。
关于Flexible,Full,Strict的区别,网络上有相关解释。
此处选择Full,服务器与Cloudflare之间的数据传输通过SSL加密但不严格验证证书发行者,同时Cloudflare到网站访问者之间的数据传输也通过SSL加密。
可以避免Flexible服务器与Cloudflare之间的数据传输不通过SSL加密,则服务器设置为无SSL加密(Ngnix、Tomcat)。当访问者通过https访问网站时,可能出现静态内容(图片、JavaScript看板娘)无法显示的情况。(推测为不安全的内容被过滤了)
而此处选择Strict则会导致服务器与Cloudflare之间无法连接,以至于网页无法访问。(免费的SSL玩家不能通过验证啦。)

5. 少女祈祷中 等就对了

Vcq0aj.md.jpg
随便放张图,啦啦啦啦啦。
更新名称服务器和开启Cloudflare功能需要一些时间。

3、动(Tomcat)静(Nginx)分离等。


标题:【笔记】如何使用宝塔面板+Tomcat搭建Solo博客。
作者:honeymoe
地址:https://shikkaku.com/solo

Responses
  • 感谢。
    在自己博客里选择「更新」修改文章的话并且同时选择推送的话,会使黑客派社区也同步更新文章,而不是另增一篇文章以至于新旧并存,是这样吗……

    Reply
  • 哈哈哈 我刷新了下帖子就看见您回复了😅

    Reply
  • 🤔 要‌删‌帖‌的‌话‌ 找 @88250 D‌大‌ ‌并‌说‌明‌删‌帖‌的‌理‌由

    Reply
  • 点了推送以后就会推送到社区,不点的话不会推送的。这篇帖子留着吧,应该能帮助到其他人的 😄

    Reply
  • 话说自己的博客更新了以后可以直接推送到这边吗orz。或者其实我想把这篇半成品帖子删除……?

    Reply