常见问题汇总
这里汇集了大家经常遇到的问题。如果这里没有找到对应的问题,可以进行反馈。
反馈地址:https://blog.zrlog.com/feedback.html
IE 浏览器要求
- 建议使用 IE 10 及以上版本的浏览器。
Java 版本
| 版本 | 最低 Java 版本 |
|---|---|
| 2.x 及以前版本 | >= 8 |
| 3.x 及以后版本 | >= 21 |
数据库要求
目前使用的数据库为 MySQL,对版本没有太高的要求,使用 5.6 及以上版本即可,较老的版本已经不再支持。
运行环境需要多大的内存
程序本身占用的内存并不大,主要与使用的 Web Server 有关。推荐使用 512 MB 内存(包含 MySQL 服务)即可。
例如,程序在 BAE 提供的 256 MB 内存环境中也可以正常运行。不过目前国内云服务厂商一般都已经不再提供 512 MB 内存的云服务器。
程序编码
按照国际惯例,程序和数据库均使用 UTF-8 编码。
后台管理首页会显示程序的编码信息。如果不是 UTF-8 编码,可以通过配置环境变量的方式统一编码:
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8什么是环境变量?
环境变量是操作系统和各种程序约定使用的一种常见配置方式。最常见的例子就是 PATH 环境变量,它可以让系统更加方便地找到某个程序。
例如,在终端中只需要输入 java,而不需要输入 /usr/jvm/xx/bin/java 这样的完整路径。
如何配置这个环境变量?
Unix
Unix 系统中可以配置环境变量的位置较多,通常通过命令行即可完成。
# 编辑 /etc/profile、~/.bash_profile 或 ~/.bashrc
# 在文件末尾添加一行
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8保存后,执行与修改文件相对应的命令。例如修改的是 ~/.bash_profile:
source ~/.bash_profile然后在命令行中执行以下命令:
echo $JAVA_TOOL_OPTIONS如果能够看到对应的配置内容,就表示配置成功了。
Windows
Windows 通常通过图形界面配置环境变量,操作步骤与配置 JAVA_HOME 基本相同。
注意:配置完成后,需要重新启动 JVM 才会生效。
开发工具的选择
由于项目使用 Maven 构建,因此在 Eclipse 或 MyEclipse 中直接以 Maven 项目的方式导入即可。
使用 IDEA 导入项目时,可以选中 pom.xml 文件,单击鼠标右键,然后选择 Add as Maven Project。
如何在开发环境中运行
- 通过内嵌的 Tomcat 启动:找到
com.zrlog.web.Application,运行其中的main()方法。 - 通过 Maven 命令启动,不依赖任何 IDE:
- Windows:运行
bin\mvn-tomcat-run.cmd - Unix:运行
sh bin/mvn-tomcat-run.sh
- Windows:运行
- 也可以按照其他 Web 项目的方式配置 Server,但不建议这样做,因为使用前面两种方式出问题的可能性更小。
应该选择 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完成安装流程后,就可以使用自己的数据库了。
ZIP 包和源码有什么区别
通常,对外提供的 ZIP 包是由相对稳定的版本打包生成的,主要用于初始安装或版本更新。
ZIP 包中的 lib/common-x.x.x.jar 内含一个 build.properties 文件,这个文件是在打包过程中添加的,主要用于区分不同的运行环境。
Git 仓库中没有这个文件,因此通过 Git 获取的源码默认只适用于开发环境。
如果需要自行构建 ZIP 包,请使用以下命令:
sh bin/build-final-package.shbuild.properties 文件内容示例:
version=1.6.4
runMode=preview
buildId=18e66cd
buildTime=2017-03-29 22:15:45+08:00在哪里下载最新的 ZIP 包
最新的稳定版本会发布在这里:
https://dl.zrlog.com/release/zrlog.zip
Nginx 代理后找不到静态文件,或者进入管理界面后提示“会话过期,请重新登录”
需要将代理前的 Host 传递给 Tomcat 容器,否则默认可能会被转换为 127.0.0.1:8080 这类地址。
请在 Nginx 对应的 server 配置中,或者在 http 模块中添加:
proxy_set_header Host $host;开启 HTTPS
如果程序运行在 Nginx 或 Apache 等反向代理后面,需要额外向 Web 容器传递一个 HTTP Header。
例如,使用 Nginx 时需要添加:
proxy_set_header X-Forwarded-Proto $scheme;迁移数据
备份
需要先导出原数据库的表结构和数据。可以尝试使用备份插件导出备份文件,然后在新环境中创建对应的数据库、账号和密码。
还原
使用 MySQL 自带的命令行工具即可还原:
mysql -uzrlog_dev -p < backup.sql修改配置
数据库配置信息保存在以下文件中:
WEB-INF/db.properties修改 jdbcUrl 中的主机地址。如果数据库的其他信息也发生了变化,需要一并修改。修改完成后,重启 Web Server 即可。
忘记管理后台的登录账户或密码
ZrLog 是一个单用户博客内容管理系统。为了保持系统简单,管理后台登录所需的用户名和密码保存在数据库的 user 表中。
出于安全方面的考虑,系统没有提供找回密码的功能入口,因此需要通过操作数据库来找回或重置登录信息。
忘记登录用户名
执行以下 SQL:
select * from user;
查询结果中的 userName 就是登录用户名。
忘记登录密码
ZrLog 使用 MD5 摘要算法存储密码,可以通过以下 SQL 重置密码:
update user set password = md5("mustMotifyYa!!!") where userName = "admin";执行后,用户名 admin 对应的登录密码将被重置为:
mustMotifyYa!!!注意:这里的 admin 是默认用户名。如果已经修改过用户名,需要将其替换为实际使用的用户名。
使用开发工具打开项目后,web/src/main/webapp 中没有 admin 目录,或者访问 admin 时提示页面不存在
问题原因
从 ZrLog 2.2 开始,管理后台不再使用传统的服务端页面渲染技术(如 JSP、FreeMarker),而是改用了 React + Ant Design 技术路线。
解决方法
Unix
ZrLog 为 Unix 系统提供了快速编译脚本,可以将 admin-web/src/frontend/ 目录中的前端代码打包为浏览器可以使用的 JavaScript 文件。
执行以下命令:
sh bin/compile-admin-web.sh编译结果会保存到:
admin-web/src/main/resources然后执行以下命令启动 ZrLog:
sh bin/mvn-run.sh整个过程不需要依赖 IDE。
Windows
需要先安装 Git Bash 等类 Unix 命令行工具,然后按照 Unix 环境下的步骤进行处理。
MySQL 安装在 Docker 中,输入正确的数据库信息后仍然无法完成安装
- 请检查是否使用了
root账号作为安装数据库的账号。建议不要使用root,而是为 ZrLog 创建独立的数据库账号和密码,并将准备给 ZrLog 使用的数据库授权给该账号。 - 如果使用的是 CentOS 或 Windows,可以尝试暂时关闭系统防火墙,检查是否是防火墙限制了