常见问题汇总

/

2017-4-1

这里汇集下大家遇到的常见问题

IE浏览器要求

  • 建议使用IE10以上的浏览器

Java 版本

2018 年了,jdk10 都发布了,很多 jar (mysql8) 包都不支持 java7 了,所以目前要求的版本是 java8 及以上

数据库要求

目前使用数据库为mysql 对版本没有太大的要求 5.6+ 就可以了,较老的版本已经不支持了

运行环境需要多大的内存

程序使用的内存并不需要太大,主要和使用的WebServer有关,推荐是512M(包含 mysql 服务)就够用了,比如在bae提供的256M内存,也可以正常跑起来,不过现在一般国内云服务厂商都取消512M的内存机器

程序编码

按照国际惯例程序和数据库都用 UTF-8 编码,后台管理首页有程序的编码信息,若非 UTF-8 编码可以通过配置环境变量的方式统一编码 JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

如何添加环境变量?

环境变量是一种很常见的系统和各个程序约定配置的方式,比如最最常见的就是 PATH 这个环境变量,这个环境变量主要用户系统在寻找某个程序时更加便捷,比如只用在终端里面输入 java 就可以了,而不是完整的 /usr/jvm/xx/bin/java 这样的路径,

如何配置这个环境变量?

  • unix
    可以配置地方较多,通常都是通过命令行就能完成
  1. #编辑 /etc/profile 或者是 ~/.bash_profile 又或者是 ~/.bashrc
  2. #在文件文件的行未,添加一行新的
  3. export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

然后 source ~/.bash_profile (对应的修改的文件),然后在命令行输入 env 或者是 $JAVA_TOOL_OPTIONS 能看到对应的功能就表示配置成功了

  • windows
    使用图形化的界面配置较多,和配置 JAVA_HOME 一样的步骤就行了

注意:配置完成后需要重新启动 jvm,才会生效

开发工具的选择

由于使用的是Mavne构建的项目,eclipse/myeclipse 直接使用 maven 的方式导入就可以了, idea 导入项目选择 选中 pom.xml 文件,鼠标右键 Add as mavne project 就可以了

开发环境如何运行

  • 直接通过内嵌入 tomcat 的方式进行启动,找到 com.zrlog.web.Application 通过这个 main() 进行启动
  • 通过 Maven 命令的方式进行启动(不依赖任何 IDE)
    • Windows 使用 bin\mvn-tomcat-run.cmd
    • Unix 使用 sh bin/mvn-tomcat-run.sh
  • 配置 server 的方式与其它web项目一致(不建议使用,上面的方式出问题的可能性更小)

应该选择JDK还是JRE

没有要求,不过还是建议直接上JDK。方便追踪问题

插件实现方式

直接浏览这篇文章 如何编写一个zrlog插件

是该选择提供的war包还是自己打包

如果不嫌弃每次打包繁琐,可以自己代码变更(注意自己添加build.properties文件)后,构建上传到服务器。如果觉得功能够用了,选择.war是个不错的决定。改了代码后也可以提交 pull request 的。这样就避免后面的代码冲突问题了

通过 git clone 或则是下载 zrlog-master.zip 直接可用

为了方便有开发能力的人第一时间看到效果,src/main/webapp/WEB-INF/db.properties,这里提供了一个默认可以用的数据地址。如果需要使用自己的数据库,需要先删除 src/main/webapp/WEB-INF/install.lock 这个文件,然后再次访问 http://localhost:8080/zrlog 完成安装流程后,就可以使用自己的数据库。

提供war包和源码有什么区别

通常对外提供的war包都是相对比较稳定的版本打包生成的,用于初始安装或则是版本更新用的,war里面 WEB-INF/classes/ 目录下有一个 build.properties 文件,这个文件是打包过程添加进入的。目的在于区分环境用。而git仓库里面是没有这个文件的。所以 git 是只有开发环境的。自己构建.war包,请在 src/main/java 下面添加 build.properties 类似这样

  1. version=1.6.4
  2. runMode=preview
  3. buildId=18e66cd
  4. buildTime=2017-03-29 22:15:45+08:00

那里下载最新的war包

会将最新最稳定的放在这里 http://dl.zrlog.com/release/zrlog.war

nginx代理后静态文件找不到的问题,或者是进入管理界面后就提示‘会话过期,重新登录’

需要额外修改将代理前的Host给Tomcat容器(默认会被转化为127.0.0.1:8080这类地址)
Nginx 添加 proxy_set_header Host $host 到对应server配置项,或则是在http模块里面。

开启 HTTPS

如果程序运行在 Nginx/Apache 这里代理程序后面,需要额外添加一个 http header 传给使用的 web 容器,如 Nginx 需要添加

  1. proxy_set_header X-Forwarded-Proto $scheme;

迁移数据

备份

需要先导出原来数据库的表结构和数据,可以试试提供的备份插件的导出备份文件的功能,在新的环境创建对应的数据库和账号密码

还原

使用默认的工具就可以了 mysql -uzrlog_dev -p < backup.sql

修改配置

数据库信息存在 WEB-INF/db.properties 这个文件里面的,改 jdbcUrl 里面的 host,如果有其他信息改了,也要跟着改,最后重启webserver就可以了

忘记管理后台的登录密账户或密码

ZrLog 是单用户的博客(生产内容)系统,所以为了系统简单,将管理后台的登录所需的用户名和内容存在系统的 user 表里面,加上为了安全,所以没有提供找回密码的功能入口,需要找回密码需要会操作数据库

  • 忘记登录的用户名
  1. select * from user;

这里面的 userName 就是登录的用户名

  • 忘记登录的密码

ZrLog 一直使用 md5 摘要算法进行存储密码信息,所以只需要这一行 sql

  1. update user set password = md5('mustMotifyYa!!!') where userName = 'admin';

注意:这里的 admin 是默认的用户名,如果有修改的话,需要替换为设置的用户名

开发工具打开后没有 web/src/main/webapp 里面没有 admin 目录,或访问 admin 提示页面没有找到

  • 问题原因

由于 ZrLog 2.2 后的版本 管理后台 遗弃了传统的服务端渲染页面技术(jsp/freemark),改为了用 React + AntD 的技术路线,所以在源码里面是没有 admin 相关的 js 或者 html 了,

  • 解决方法

unix

ZrLog 为 Unix 提供了对应的快速编译 admin-web/src/frontent/ 目录下的 js 打包为浏览可以使用 js 的脚本,只需要执行 sh bin/compile-admin-web.sh 就可以把 admin 的编译到 web/src/main/webapp/admin 目录里面了, 或者直接使用命令行 sh bin/mvn-tomcat-run.sh 启动 ZrLog,无需任何 ide 的支持

windows

需要安装 git-bash 这类类 unix 命令行环境的工具,然后解决方式就同 unix 的处理办法

如果这里没有找到答案可以进行反馈 https://blog.zrlog.com/post/feedback

Reproduced please indicate the author and the source, and error a link to this page.
text link: /faq-collect.html