常见三款开源博客系统(jpress、b3log-solo、mblog)搭建网站
三款好用的基于java开发的开源博客系统
mblog:
mblog开源免费的博客系统, Java语言开发, 支持mysql/h2数据库, 采用spring-boot、jpa、shiro、bootstrap等流行框架开发
JPress:
一个类似 WordPress 的系统,使用 JFinal 和 Jboot 开发。模板安装 模板卸载 在线编辑,完善的开发文档 极致的开发体验 用户独立登录和注册入口手机短信和邮箱激活配置,对于新手来讲有点部署难度
b3log-solo:
Solo 是一个专业、简约、稳定、极速的开源 Java 博客程序。你可以自己搭建使用,也可以通过购买我们搭建好的服务来直接使用,社区活跃,功能齐全,部署难度同 jpress
====================================================================================================================
JPress 使用 Java8 开发,基于流行的JFinal和Jboot框架。
目前JPress已经内置的文章和页面其实是两个模块,可以移除和新增其他模块,因此,可以通过新增模块的方式,使用JPress来做博客、论坛、问答社区,商城等几乎可以用来做任何类型的网站。
JPress充分利用中国互联网生态、原生支持和微信公众号、小程序对接。基于LGPL开源协议。
https://gitee.com/fuhai/jpress.git
一、通过docker-compose安装 jpress
1、确认你已经安装了 docker Engine 与 docker-compose。
(1)安装docker:
更新 yum 缓存:
sudo yum makecache fast
安装 Docker-ce:
sudo yum -y install docker-ce
启动 Docker 后台服务
sudo systemctl start docker
测试运行 hello-world
docker run hello-world
Docker分成了两个版本:Docker EE和Docker CE,即:企业版(EE)和社区版(CE)。
CentOS7如何将Docker升级到最新版
步骤
- 卸载旧版 docker
> rpm -qa | grep docker # 也可以使用 yum list installed | grep docker
docker-engine-1.13.0-1.el7.centos.x86_64
docker-engine-selinux-1.13.0-1.el7.centos.noarch
> yum remove docker-engine-1.13.0-1.el7.centos.x86_64
> yum remove docker-engine-selinux-1.13.0-1.el7.centos.noarch
- 升级至最新版
> curl -fsSL https://get.docker.com/ | sh
yum install -y docker-ce
- 重启docker
> systemctl restart docker # centos 7
> service docker restart # centos 6
- 查看升级后的版本
> docker version
# docker -v
(2)安装 docker-compose:
# 方法一: $ curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose # Linux下等效于 $ curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose; chmod +x /usr/local/bin/docker-compose # 方法二:使用pip安装,版本可能比较旧 $ yum install python-pip python-dev $ pip install docker-compose # 方法三:作为容器安装 $ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose # 方法四:离线安装 # 下载[docker-compose-Linux-x86_64](https://github.com/docker/compose/releases/download/1.8.1/docker-compose-Linux-x86_64),然后重新命名添加可执行权限即可: $ mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose; $ chmod +x /usr/local/bin/docker-compose # 百度云地址: http://pan.baidu.com/s/1slEOIC1 密码: qmca # docker官方离线地址:https://dl.bintray.com/docker-compose/master/ 安装完成后可以查看版本: # docker-compose --version docker-compose 1.8.1
安装pip
yum -y install epel-release
yum -y install python-pip
确认版本
pip --version
更新pip
pip install --upgrade pip
安装docker-compose
pip install docker-compose
查看版本
docker-compose version
一般步骤:
1、定义Dockerfile,方便迁移到任何地方;
2、编写docker-compose.yml文件;
3、运行docker-compose up
启动服务;
Docker Compose 运行Tomcat 先测试一下好不好用
- 准备需要的镜像
- NGINX
- tomcat:8.5.0(使用最新版的看不到Tomcat主页,所以就用这个版本了)
准备nginx.conf配置文件,下一步需要挂载到nginx容器中(t01和t02待会创建Tomcat容器时挂载使用该别名,也可以更改)
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
upstream tomcat_docker {
server t01:8080 weight=1;
server t02:8080 weight=1;
}
server {
server_name "";
listen 80 default_server;
location / {
proxy_pass http://tomcat_docker;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
docker-compose.yml 配置文件
services:
mytomcat01:
image: tomcat:8.5.0
restart: "always"
container_name: tomcat01
ports:
- "8081:8080"
mytomcat02:
image: tomcat:8.5.0
restart: "always"
container_name: tomcat02
ports:
- "8082:8080"
nginx:
image: nginx
volumes:
- "./nginx.conf:/etc/nginx/nginx.conf"
ports:
- "8000:80"
- "443:443"
links:
- mytomcat01:t01
- mytomcat02:t02
修改 tomcat01:
docker exec -it tomcat01 /bin/bash
echo "<html><head><title>tomcat01</title></head><body>server01</body></html>" > index.jsp
修改tomcat02:
docker exec -it tomcat02 /bin/bash
echo "<html><head><title>tomcat02</title></head><body>server02</body></html>" > index.jsp
访问host-ip:8000
二、linux 安装非常简单,只需要两条命令:能找到docker-compose.yml
文件就可以,版本更新可能就找不到了,需要去github上找一下
$ wget https://github.com/JpressProjects/jpress/blob/master/docker-compose.yml
$ docker-compose up -d
3、执行完毕以上命令之后,访问 http://host-ip:8080
即可。
docker-compose.yml对应的内容:数据库改成 5.7
version: '3.1'
services:
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: jpress
MYSQL_DATABASE: jpress
MYSQL_USER: jpress
MYSQL_PASSWORD: jpress
volumes:
- "./mysql:/var/lib/mysql"
jpress:
depends_on:
- db
links:
- db
image: fuhai/jpress:v2.0.1
ports:
- "8080:8080"
restart: always
container_name: jpress-server
environment:
TZ: Asia/Shanghai
JPRESS_DB_HOST: db
JPRESS_DB_PORT: 3306
JPRESS_DB_NAME: jpress
JPRESS_DB_USER: jpress
JPRESS_DB_PASSWORD: jpress
volumes:
- "./attachment:/opt/jpress/webapp/attachment"
- "./addons:/opt/jpress/webapp/addons"
- "./addonjars:/opt/jpress/webapp/WEB-INF/addons"
- "./wp-content:/opt/jpress/webapp/wp-content"
- "./templates:/opt/jpress/webapp/templates/dockers"
container_name
Compose 的容器名称格式是:<项目名称><服务名称><序号> 虽然可以自定义项目名称、服务名称,但是如果你想完全控制容器的命名,可以使用这个标签指定: container_name: jpress-server 这样容器的名字就指定为 jpress-server 了。
网站根目录的反爬虫协议路径:robots.txt
/opt/jpress/webapp/robots.txt
# 自定义的robots.txt协议覆盖:
docker cp robots.txt jpress-server:/opt/jpress/webapp
# 重新启动容器:
docker restart jpress-server
如果是前面 配置有nginx 可能存在缓存的情况,浏览器清理缓存 或者重启nginx容器
安装jpress
jboot是基于springcloud的分布式开源框架,部署通过内置 tomcat
三、构建自己的centos7+jdk8+tomcat8的docker镜像
以下tomcat官方镜像中tomcat:7 和tomcat:8的目录。
CATALINA_BASE: /usr/local/tomcat
CATALINA_HOME: /usr/local/tomcat
CATALINA_TMPDIR: /usr/local/tomcat/temp
JRE_HOME: /usr CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
先将war包上传到服务器放在任意目录,我的war包是jpress.war, 这里是放在/usr/local/webapps,执行如下命令
docker run --name mytomcat8080 -d -p 8080:8080 -v webapps:/usr/local/tomcat/webapps tomcat:8.5
-it
# 是-i和 -t的简写, 表示以交互式的方式运行容器,加上-d表示后台运行,这里为了截图输出启动日志我用了-it,也可以用-d,再用"docker logs 容器名"命令输出日志
--
rm
#当容器被停止时自动删除容器
-p 8080:8080
#8080是为容器中的tomcat设置的端口, 这里表示将80映射到宿主机8080端口, 如果只写-p 8080 容器会随机取值32768~61000中较大的端口号来映射到80端口上
-
v
# 将tomcat中的usr/local/tomcat/webapps目录映射到宿主机当前目录的webapps目录,后面更新jar包直接扔到被映射的宿主机目录中即可