oneblog博客系统搭建
最近发现一个比较好用的java开源博客平台:oneblog,所以尝试搭建了一下
官网:
https://gitee.com/yadong.zhang/DBlog/wikis/OneBlog-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B
https://gitee.com/yadong.zhang/DBlog
oneblog基本架构:
1、环境准备部署java环境:
JDK包 1.8版本
部署maven环境:
maven 3.5.3版本二进制包
注意,将java环境变量写入maven/bin/mvn中:JAVA_HOME=/oneblog/jdk/
下载安装目录:
在服务器上执行git clone https://gitee.com/yadong.zhang/DBlog.git下载安装文件
建立目录,用户,设置权限:
mkdir /oneblog useradd oneblog chown -R oneblog:oneblog /oneblog usermod -md /oneblog oneblog
2、配置数据库
创立dblog库:
mysql> create database dblog character set utf8 collate utf8_bin;
建立数据库用户管理dblog库:
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO'wordpress'@'%' IDENTIFIED BY'******';
导入数据库并初始化:
数据库相关的文件在oneblog/docs/docker/mysql/目录下:dblog.sql、init_data.sql
mysql -uroot -p dblog < dblog.sql
mysql -uroot -p dblog < init_data.sql
3、编辑配置文件
web页面访问端口:
vim oneblog/blog-web/src/main/resources/application.yml
port: 18082
管理界面访问端口:
vim oneblog/blog-admin/src/main/resources/application.yml
port: 18085
数据库信息:
vim oneblog/blog-core/src/main/resources/config/application-center.yml
mysql:
${ONEBLOG_DATASOURCE_HOST:127.0.0.1} ##mysql服务器地址
${ONEBLOG_DATASOURCE_PORT:13309} ##mysql端口
${ONEBLOG_DATASOURCE_DATABASE_NAME:dblog} ##mysql库名称
${ONEBLOG_DATASOURCE_USERNAME:dblog} ##连接用户名称
${ONEBLOG_DATASOURCE_PASSWORD:1911Xhgm..} ##连接用户密码
##redis:
host: ${ONEBLOG_REDIS_HOST:127.0.0.1} ##redis服务器地址
port: ${ONEBLOG_REDIS_PORT:16379} ##redis端口
password: ${ONEBLOG_REDIS_PASSWORD:} ##Redis服务器连接密码(默认为空)
4、进行项目构建
cd oneblog/docs/bin/ ./build.sh
注意,如果非yum方式安装maven且未添加环境变量,在执行脚本前,需要将脚本中maven路径进行修改:
/oneblog/maven/bin/mvn -X clean package -Dmaven.test.skip=true -Pdev
构建完成后,切换到oneblog用户,启动项目:
su - oneblog
cd /oneblog/oneblog
/oneblog/oneblog/jdk/bin java -jar blog-web/target/blog-core.jar ##访问界面
/oneblog/oneblog/jdk/bin java -jar blog-admin/target/blog-admin.jar ##后台管理界面
由于是前台执行,关闭远程连接后项目会关闭,因此启动没问题后,需要放到后台执行:
nohup /oneblog/oneblog/jdk/bin java -jar blog-web/target/blog-core.jar &
nohup /oneblog/oneblog/jdk/bin java -jar blog-admin/target/blog-admin.jar &
配置启停脚本来进行oneblog的开启、关闭
将脚本放置在oneblog/script目录下
启动脚本:one_start.sh
停止脚本:one_stop.sh
进入oneblog/script目录,执行脚本
执行参数:
web:启动/停止onelog前端页面
admin:启动/停止oneblog管理平台
all:启动/停止所有
脚本内容:
启动脚本one_start.sh
#!/bin/bash if [ `whoami` != 'oneblog' ];then echo "!!please run oneblog script by oneblog!!" exit 10 fi stva=$1 if [ "$stva" = "" ];then echo "please print start option[web|admin|all]" exit 10 elif [ "$stva" != "admin" ] && [ "$stva" != "web" ] && [ "$stva" != "all" ];then echo "print start option error[web|admin|all]" exit 10 fi ##启动oneblog web oneweb(){ ##判断文件是否存在 if [ ! -e "/oneblog/oneblog/blog-web/target/blog-web.jar" ];then echo "!!oneblog web jar package not exist!!" return 1 fi nohup /oneblog/jdk/bin/java -jar /oneblog/oneblog/blog-web/target/blog-web.jar & if [ $? -eq 0 ];then echo "oneblog web start successful" webpid=`ps -ef | grep 'java -jar.*blog-web.jar' | grep -v 'grep' | awk '{print $2}'` echo "$webpid" > /oneblog/oneblog/oneweb.pid else echo "!!oneblog web start failed!!" fi } oneadmin(){ if [ ! -e "/oneblog/oneblog/blog-admin/target/blog-admin.jar" ];then echo "!!oneblog admin jar package not exist!!" return 1 fi nohup /oneblog/jdk/bin/java -jar /oneblog/oneblog/blog-admin/target/blog-admin.jar & if [ $? -eq 0 ];then echo "oneblog admin start successful" adpid=`ps -ef | grep 'java -jar.*blog-admin.jar' | grep -v 'grep' | awk '{print $2}'` echo "$adpid" > /oneblog/oneblog/oneadmin.pid else echo "!!oneblog admin start failed!!" fi } if [ "$stva" = 'web' ];then oneweb elif [ "$stva" = 'admin' ];then oneadmin elif [ "$stva" = 'all' ];then oneweb oneadmin fi
停止脚本one_stop.sh:
#!/bin/bash ##判断是否使用oneblog用户执行脚本 if [ "`whoami`" != 'oneblog' ];then echo "!!please run oneblog script by oneblog!!" exit 10 fi sova=$1 if [ "$sova" = "" ];then echo "please print start option[web|admin|all]" exit 10 elif [ "$sova" != "admin" ] && [ "$sova" != "web" ] && [ "$sova" != "all" ];then echo "print start option error[web|admin|all]" exit 10 fi oneweb(){ webpid=`cat /oneblog/oneblog/oneweb.pid 2>/dev/null` if [ ! -n "$webpid" ];then echo "!!oneblog web pid file not exist!!" return 1 fi kill -9 $webpid if [ $? -eq 0 ];then echo "oneblog web stop successful" rm -rf /oneblog/oneblog/oneweb.pid else echo "!!oneblog web stop failed!!" fi } oneadmin(){ adpid=`cat /oneblog/oneblog/oneadmin.pid 2>/dev/null` if [ ! -n "$adpid" ];then echo "!!oneblog admin pid file not exist!!" return 1 fi kill -9 $adpid if [ $? -eq 0 ];then echo "oneblog admin stop successful" rm -rf /oneblog/oneblog/oneadmin.pid else echo "!!oneblog admin stop failed!!" fi } if [ "$sova" = 'web' ];then oneweb elif [ "$sova" = 'admin' ];then oneadmin elif [ "$sova" = 'all' ];then oneweb oneadmin fi
5、访问网站
web页面:
后台管理页面:
6、配置基本信息
在系统配置中填写网站相关配置信息
用户名==> 系统配置 ==> 基本信息
主域名:网站域名为http://file.bbb.com,那么主域名就是bbb.com,也可以填写为web页面访问的域名地址
博客地址:web页面访问的域名地址
站点图标:格式为http://ip/img/favicon.ico,将ip改为web访问的地址
资源文件域名:与博客地址相同
管理系统地址:后台管理平台的域名地址
因为oneblog默认是没有上传文件功能的,所以需要搭建一个文件服务器来实现文件上传功能,这里选择nginx来搭建文件服务器
nginx服务器配置:
server {
listen 80;
server_name serverName;
root serverPath;
error_page 403 /error.html;
location = /error.html {
return 404;
}
autoindex off;
autoindex_exact_size off;
autoindex_localtime off;
location ^~ / {
proxy_set_header Host $host:$server_port;
}
location ~*\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar|js|css)$ {
expires 30d;
#valid_referers serverReferers; ##防盗链有关配置,可以不用添加
if ($invalid_referer) {
rewrite ^/ serverLogoPath;
}
}
管理页面配置:
用户名==>系统配置==>云存储
填写域名,文件存储路径,点击保存