"[图片] 简介 Solo是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。 相关配置: 名称 说明 服务器 推荐云服务器 (阿里云、腾讯云等) 操作系统 Centos7 JDK 版本 1.8.0_201 容器 Tomcat9 Solo 版 .."

从零开始搭建开源博客 solo

简介

Solo是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。

相关配置:

名称 说明
服务器 推荐云服务器 (阿里云、腾讯云等)
操作系统 Centos7
JDK 版本 1.8.0_201
容器 Tomcat9
Solo 版本 V3.2.0
反向代理 Nginx

准备环境

1. 服务器和系统

在阿里云或腾讯云申请一台服务器,安装 centos7 系统。(我的服务器已经搭建好,所以新建了一个虚拟机,配置如下) 1.PNG

2. 安装配置 JDk

1. 检查并卸载 centos7 系统上的 openjdk

1. # rpm -qa | grep java

jdk.PNG

1. # rpm -e --nodeps + 文件名

例如卸载第一个 openjdk 命令为:

1. # rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.191.b12-1.el7_6.x86_64
  1. 下载 jdk(最新版本是 1.8_201)

3. 新建 /usr/local/java 目录,将 jdk 解压在此目录

进入/usr/local/目录下
1. # cd /usr/local/
新建java目录
2. # mkdir /usr/local/java
将jdk移至新建的java目录下
3. # mv jdk-8u201-linux-x64.tar.gz /usr/local/java/
进入目录下
4. # cd java
解压jdk
5. # tar -zxvf jdk-8u201-linux-x64.tar.gz

4. 配置 java 环境

1. # vim /etc/profile
"i"进入插入模式,在配置文件最上方插入如下:
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

jdk.PNG

1. # source /etc/profile

5. 检测 jdk 是否配置成功

1. # java

java.PNG

1. # java -version

version.PNG 到此 jdk 安装配置成功

2. 安装 Tomcat9

1. 到官网下载安装包

tomcat9 下载链接:https://tomcat.apache.org/download-90.cgi 这里选择适合 Linux 的安装包,下载到本地后上传到 centos 服务器,或者直接通过 wget 命令下载 QQ图片20190327102825.png

1. # cd /usr/local/
2. # mkdir tomcat/
3. # cd tomcat/
4. # wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz

以上操作就将 tomcat9 安装包文件 apache-tomcat-9.0.17.tar.gz 下载到 /usr/local/tomcat 目录下了

2. 安装 tomcat9

1. # cd /usr/local/tomcat/
2. # tar -zxvf apache-tomcat-9.0.17.tar.gz

安装包会被解压到 /usr/local/tomcat/apache-tomcat-9.0.17, 将目录重命名为 tomcat9

1. # mv /usr/local/tomcat/apache-tomcat-9.0.17 /usr/local/tomcat/tomcat9

3. 开启 tomcat 服务

1. # cd /usr/local/tomcat/tomcat/bin/
2. # ./startup.sh

QQ图片20190327104523.png 服务开启成功 tomcat 服务关闭命令

 1. # ./shutdown.sh

4. 验证 tomcat 是否安装成功 用本地浏览器访问 http:// 服务器 IP:8080/ 如果能出现熟悉的 tomcat 主页,就表示安装成功了,请确保服务器防火墙已关闭

linux系统关闭防火墙关命令
1. # systemctl stop firewaldd.service
linux系统开机禁用防火墙关命令
2. # systemctl disable firewalld

QQ图片20190327104952.png

tomcat 服务默认开机不自启,系统重启后需手动开启服务。或自行百度 tomcat 服务开机自启教程

3. 部署 solo 博客

1. 下载源码包 solo 是开源博客系统,源码包可以到 github 下载 项目链接:https://github.com/b3log/solo 这里我们使用 solo-v3.2.0, 可以下载到本地后上传到 centos 服务器,或者直接通过 wget 命令下载

1. # cd /usr/local/tomcat/tomcat9/webapps/
2. # wget https://github.com/b3log/solo/releases/download/v3.2.0/solo-v3.2.0.war

./webapps/ROOT 是 tomcat 容器的网站根目录,也就是上面我们看到的 tomcat 主页文件的目录 将 war 包下载或上传到 wenapps 目录后 tomcat 会自动解压

QQ图片20190328095531.png

2. 替换文件 在 tomcat9/webapps 目录下有 solo-v3.2.0 这个文件夹就说明下载成功,接下在我们要把 tomcat 的访问目录换为 solo,最简单的办法就是将原来的 ROOT 文件夹删除或者重命名,再将 solo-v3.2.0 重命名为 ROOT, 这样我们通过 http:// 服务器 IP:8080 就能访问 solo 了。

1. # mv /usr/local/tomcat/tomcat9/webapps/ROOT /usr/local/tomcat/tomcat9/webapps/ROOT-old
2. # mv /usr/local/tomcat/tomcat9/webapps/solo-v3.2.0 /usr/local/tomcat/tomcat9/webapps/ROOT

QQ图片20190328100322.png

3. 验证 solo 能否访问 先打开 tomcat 服务,然后通过本地浏览器访问 http:// 服务器 IP:8080

1. # cd /usr/local/tomcat/tomcat9/bin/
2. # ./startup.sh

出现 solo 的开始界面说明你的 solo 博客就部署成功了,你就可以登录绑定你的 github 账号开始写文章了 QQ图片20190328100952.png

4. 备份数据 solo 博客部署成功后,系统会自动生成一个 solo_h2 目录,所以只要备份这个文件夹就可以了 QQ图片20190328101501.png

4. 安装配置 Nginx

博客部署成功后只能通过 http:// 服务器 IP:8080 访问,因为 tomcat 的默认端口是 8080. 如果你想直接通过 http:// 服务器 IP 访问,最粗暴的方法就是修改 tomcat 的配置文件 (修改方法请自行百度!),但是你的服务器有两个网站或以上网站的话,用这个方法就会很麻烦。所以我们使用 Nginx 反向代理。 1. 安装 Nginx 在 Centos 下,yum 源不提供 nginx 的安装,可以通过切换 yum 源的方法获取安装。也可以通过直接下载安装包再上传到服务器。这里提供一个 Centos7 换阿里 yum 的教程 [https://www.itdawei.cn/yum] 首先安装必要的库(nginx 中 gzip 模块需要 zlib 库,rewrite 模块需要 pcre 库,ssl 功能需要 openssl 库). 选定 ./usr/local/ 为安装目录,以下具体版本号根据实际改变。

1. 安装安装 gcc gcc-c++(如新环境, 未安装请先安装)

1. # yum install -y gcc gcc-c++

2. 安装 PCRE 库

1. # cd /usr/local/
2. # wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
3. # tar -zxvf pcre-8.33.tar.gz
4. # cd pcre-8.33
5. # ./configure
6. # make && make install

3. 安装 SSL 库

1. # cd /usr/local/
2. # wget http://www.openssl.org/source/openssl-1.1.1b.tar.gz
3. # tar -zxvf openssl-1.1.1b.tar.gz
4. # cd openssl-1.1.1b/
5. # ./config
6. # make && make install

4. 安装 zlib 库存

1. # cd /usr/local/
2. # wget http://zlib.net/zlib-1.2.11.tar.gz
3. # tar -zxvf zlib-1.2.11.tar.gz
4. # cd zlib-1.2.11/
5. # ./configure
6. # make && make install

5. 安装 Nginx

1. # cd /usr/local/
2. # wget http://nginx.org/download/nginx-1.14.2.tar.gz
3. # tar -zxvf nginx-1.14.2.tar.gz
4. # cd nginx-1.14.2/
5. # ./configure
6. # make && make install

6. 启动 Nginx

1. # /usr/local/nginx/sbin/nginx

Nginx 部分命令

重启
1. # /usr/local/nginx/sbin/nginx –s reload

停止
2. # /usr/local/nginx/sbin/nginx –s stop

检查配置文件是否正常
3. # /usr/local/nginx/sbin/nginx –t

强制停止
4. # pkill nginx 

7. 验证 Nginx 是否安装成功 用本地浏览器访问 http:// 服务器 IP 如果能出现 Nginx 主页,就表示安装成功了,请确保服务器防火墙已关闭 QQ图片20190328130137.png

8. 设置 Nginx 开机启动

1. # vi /etc/rc.local
进入文件后按 **i** 增加下面这条代码,然后按**Esc**退出编辑,在输入**:wq**按回车键保存退出
/usr/local/nginx/sbin/nginx
设置权限
2. # cd /etc/
3. # chmod 755 rc.local

9. 配置 Nginx 代理

进入Nginx的配置文件
1. # vi /usr/local/nginx/conf/nginx.conf
进入文件后按 **i** 在配置文件中中添加以下代理规则,然后按**Esc**退出编辑,在输入**:wq**按回车键保存退出
server {
listen 80;
server_name 域名(前面不要加协议,多域名用空格分开,没有域名则直接输入服务器ip);
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
重启Nginx服务
2. # /usr/local/nginx/sbin/nginx -s reload

QQ图片20190328142829.png

10. 检查 Nginx 代理是否配置成功 打开本地浏览器,在地址栏输入服务器 IP(绑定了域名则直接输入域名访问)。 如果能直访问 8080 端口下的 solo 博客,说明 Nginx 代理配置成功 到此,solo 博客就部署完成了

  • Solo

    Solo 是一款小而美的博客系统,专为程序员设计。

    575 引用 • 4525 回帖 • 723 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    150 引用 • 148 回帖 • 645 关注
感谢    关注    收藏    赞同    反对    举报    分享
14 回帖    
请输入回帖内容...
  • MisterBooo      

    感谢!!!总算有一篇小白项的部署文了!!!

    感谢    赞同    反对    举报    分享       评论    回复
  • MisterBooo      

    楼主,我按流程执行下来,tomcat 启动页是有的,然后我下好 solo 替换好后,执行./startup.sh ,访问服务器是无法访问的,请问怎么处理?

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Dawei1408            

    你用的 solo 是什么版本的?v3.4.0 我试过,有点问题。所以我用的 v3.2.0

    2 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    遇到问题可以给我们反馈一下 😄

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Dawei1408   1 感谢            

    我不知道问题具体的原因,我觉得有可能是 tomcat 的问题,我描述一下: 在网站正常的情况下,先停止 tomcat 服务。然后在 tomcat/webapps 目录下下载 solo-v3.4.0 的 war 包,然后不做任何操作直接开启 tomcat 服务,正常。 然后再关闭 tomcat 服务就报错 (拒绝链接), 然后我查看一下 tomcat 的进程,发现 tomcat 服务根本没启动,然后把 tomcat/webapps 目录下的 solo-v3.4.0 和对应的 war 包删除,又恢复正常。我一直不知道这个问题是怎么造成的,所以一直没解决。

    另外我发现 solo-v3.4.0 的数据库默认使用的是 mysql 的 3.PNG

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    感谢反馈,稍后我测试一下 Tomcat Solo 的兼容性。Solo 现在默认使用的是 MySQL,这样方便运维。

    感谢    赞同    反对    举报    分享       评论    回复
  • MisterBooo            

    解决了,需要删除 solo-3.2.0 这个文件夹和 solo-3.2.0.war 这个包才行 ~

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Dawei1408   1 感谢            

    好的,我测试了一下,好像解压出的 solo 文件夹再 webapps 目录下时,tomcat 服务无法正常启动,可能是 solo 和 tomcat 的兼容问题。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • MisterBooo            

    我通过上述教程配置好了,可以通过域名访问了,目前在腾讯云申请好了证书,请问按照这个链接是不是能配置好 https:https://hacpai.com/article/1549530952920

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • lbb4511      

    好详细, 我想说的是不要用 root 用户去启动 tomcat 和 nginx

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Dawei1408            

    可以的。

    感谢    赞同    反对    举报    分享       评论    回复
  • Dawei1408            

    不是必须要 root 用户的,但是我的服务器没添加别的用户

    感谢    赞同    反对    举报    分享       评论    回复
  • lbb4511      

    一般都是要创建专用的 tomcat 用户和 nginx 用户, 主要是为了防止脚本远程攻击的

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Dawei1408            

    学到了,谢谢大佬

    感谢    赞同    反对    举报    分享       评论    回复
请输入回帖内容...