个人站地址是:http://www.iwillhaveacatoneday.cn

博客是基于开源的Java 博客系统--solo搭建的,这里记录下部署过程中遇到的一些主要问题

后台

solo后台采的是作者自己写的Java web框架,Latke,有点像spring的精简版

数据库

solo系统默认采用了H2数据库,h2是一个用Java开发的内嵌数据库,H2数据库

看了下数据库配置文件local.properties是支持连接mysql这些关系型数据库的,不过目前数据量还不大,暂时先用H2,等后面有瓶颈了再考虑切换。

日志

日志在solo.log下,可以在log4j.properties中配置

配置文件

除了前面说的修改数据库的local.properties,修改日志的log4j.properties,还有修改网络配置的latke.properties。由于这里是打成war包之后的文件,所以它们都在> WEB-INF/classes/latke.properties 路径下

#### Server ####
# Browser visit protocol
serverScheme=http
# Browser visit domain name
serverHost=localhost
# Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT!
serverPort=8080

这里的serverHost是localhost,可能会访问不到一些solo的资源,所以建议改成部署服务器的ip

部署

solo项目启动是要到solo war包解压后的根目录下,用java -cp命令执行,

*   Windows: `java -cp "WEB-INF/lib/*;WEB-INF/classes" org.b3log.solo.Starter`
* Unix-like: `java -cp "WEB-INF/lib/*:WEB-INF/classes" org.b3log.solo.Starter`

内部使用的是jetty容器,而不是像我们平常项目那样把war包部署在tomcat或者像spring boot那样直接启动jar包。jetty

#直接执行java -cp项目会在前台执行,一旦shell退出,
#项目也会跟着退出,所以要执行下面这条命令
#用nohub保证命令在后台执行 nohup java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter >/dev/null 2>&1 &

具体的详细教程见--solo用户指南

部署环境

防火墙

笔者将网站部署在腾讯云上,不得不吐槽下腾讯云,真心不如阿里云好用,想用ftp上传个文件发现21端口被封了,设置了安全组也完全不起效果,可能是我的操作姿势不对吧。于是只好自己本地在安全组里把端口全放,自己在服务器装防火墙。

具体操作参考这篇文章,腾讯云FTP的配置

完了上传文件,启动项目,发现8080端口没法访问,于是乎继续添加端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

这时候可能会报一下错误

firewalld is not running

开启防火墙即可。

systemctl start firewalld

然后继续执行命令,并重载防火墙

firewall-cmd --reload

success,我们就可以把网站的部署文件上传到服务器上了。

ngnix

按照教程启动了项目后,我们就可以直接用ip来访问网站。但这总有点不太正规,而且也不安全。这时我们就需要给网站加上域名了。

在申请下来域名,绑定了域名,配置了DNS解析后。你会发现域名没法访问网站,这是怎么回事的,原来我们项目是在8080端口启动,而域名默认对应的是80端口。这时候我们可以把我们的网站启动端口改成80,但是如果后面系统想再部署一个网站,那么就没办法这么做了,而且这种做法把系统端口直接暴露到互联网,也不安全。所以我们采用nginx来实现端口的转发。

安装教程见——## centos7安装nginx

具体配置如下,载自solo用户指南

upstream backend {
server localhost:8080; # Tomcat/Jetty 监听端口
} server {
listen 80;
server_name www.iwillhaveacatoneday.cn; # 博客域名 access_log off; location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
}

对应的latke.properties文件也要修改,否则除了主页,跳转其它页面的链接还是ip

serverScheme=http
serverHost=www.iwillhaveacatoneday.cn
serverPort=80

个人博客搭建----基于solo的更多相关文章

  1. 基于Github&Hexo的个人博客搭建过程

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. [原创]HEXO博客搭建日记

    博客系统折腾了好久,使用过Wordpress,Ghost,Typecho,其中Typecho是我使用起来最舒心的一种,Markdown编辑+轻量化设计,功能不多不少刚好,着实让我这种强迫症患者舒服了好 ...

  3. Node.js博客搭建

    Node.js 博客搭建 一. 学习需求 Node 的安装运行 会安装node,搭建node环境 会运行node. 基础模块的使用 Buffer:二进制数据处理模块 Event:事件模块 fs:文件系 ...

  4. nodejs环境 + 入门 + 博客搭建

    NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...

  5. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

  6. LNMP环境搭建之php安装,wordpress博客搭建

    LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...

  7. Hexo+Github个人博客搭建 | 实战经验分享

    概述 第一次尝试搭建属于自己的博客,并且成功了,非常开心. 很久之前就想搭建一个博客,可是也一直没有行动,最近在逛B站的时候发现一个up主(CodeSheep)的一个视频 <手把手教你从0开始搭 ...

  8. w10环境下Hexo博客搭建

    w10使用hexo+github手把手搭建自己的第一个博客 对一个程序员来说,博客的重要性不言而喻,不但可以积累知识,还可以更好的给别人分享自己的心得.今天就以时下比较流行的hexo博客搭建属于自己的 ...

  9. Hexo结合Stun静态博客搭建从入门到入土

    摘要 安装npm,安装hexo相关依赖,安装主题stun 修改hexo配置,修改stun配置,部署到github,gitee实现静态访问 给博客加上全局搜索,访问量统计 hexo博客编写模板 tips ...

随机推荐

  1. Linux必知必会的目录结构

    1.目录结构 /bin 二进制文件 命令 /sbin 超级命令 只有root用户可以使用 /boot 系统的引导文件 系统内核 /dev 设备文件 光盘 硬盘分区 /etc 系统配置文件 /home ...

  2. Android点9图的运用

    在Android UI设计开发中,我们经常会用到一些图标.图片来做背景等. 相信很多同学都会遇到一个问题,就是我们让美工做好一张图,一个图标,呃,看起来挺好看的,但是放进app中,扩大或缩小.在不同分 ...

  3. $tsinsenA1067$

    \(problem\) 这种题目需要一个定理 \(a[1]+a[2]+a[3]+a[4]...=(a[1]%mod)+...\) 本人出奇的懒 然后 动态规划?(恰似枚举) #include < ...

  4. win快速搜索软件

    Everything 与其他搜索工具的简单比较: Everything 是至今为止 X-Force 所使用过速度最快的文件搜索工具.与它相似的有异次元曾经介绍过一款很老的软件AVAFind,也非常的优 ...

  5. JavaScript--引用JS外部文件

    通过前面知识学习,我们知道使用<script>标签在HTML文件中添加JavaScript代码,如图: JavaScript代码只能写在HTML文件中吗?当然不是,我们可以把HTML文件和 ...

  6. 我的github教程

    这篇文章记录个人常用的一些命令,和记不住的一些命令. 安装 在 Windows 上安装 Git ,有个叫做 msysGit 的项目提供了安装包: http://msysgit.github.io/ 完 ...

  7. 研磨JavaScript系列(四):代码的时空

    对于过程式编程来说,代码执行的时间与数据标识的空间是密不可分的.我们只有把指令执行的具体时刻与标识映射的具体地址结合起来,才能确定程序在执行瞬间的上下文状态.于是,代码时刻与数据标识的结构,就形成了作 ...

  8. ionic2\ionic3 自定义弹窗

    ionic2及ionic3没有了popup及 其templateUrl属性 那我们如何对弹窗里加入自定义元素 从而达到自定义弹窗样式 那么就可以通过写h5页面来实现 自定义弹窗效果: 写个H5的弹窗及 ...

  9. Json——Json与JS的区别

    JSON是JS的字面量的特殊表现形式,它使用文本表示 JS 对象信息,本质是字符串 var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包 ...

  10. 更改计算机名后DB2不能启动的解决方法

    1.找到以下位置目录下相应的文件db2nodes.cfg C:\Documents and Settings\All Users\Application Data\IBM\DB2\DB2COPY1\D ...