常见问题汇总
这里汇集下大家遇到的常见问题,如果这里没有找到对应的问题,可以进行反馈
反馈地址 :https://blog.zrlog.com/feedback.html
IE浏览器要求
- 建议使用IE10以上的浏览器
Java 版本
版本 | 最低 Java 版本 |
---|---|
2.x 及以前版本 | >= 8 |
3.x 及以后版本 | >= 21 |
数据库要求
目前使用数据库为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
可以配置地方较多,通常都是通过命令行就能完成
#编辑 /etc/profile 或者是 ~/.bash_profile 又或者是 ~/.bashrc
#在文件文件的行未,添加一行新的
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
- Windows 使用
- 配置 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 完成安装流程后,就可以使用自己的数据库。
提供zip包和源码有什么区别
通常对外提供的 zip 包都是相对比较稳定的版本打包生成的,用于初始安装或则是版本更新用的,zip 里面 lib/common-x.x.x.jar 里面有一个 build.properties 文件,这个文件是打包过程添加进入的。目的在于区分环境用。而git仓库里面是没有这个文件的。所以 git 是只有开发环境的。自己构建.zip包,请使用 sh bin/build-final-package.sh 进行打包
version=1.6.4
runMode=preview
buildId=18e66cd
buildTime=2017-03-29 22:15:45+08:00
那里下载最新的zip包
会将最新最稳定的放在这里 http://dl.zrlog.com/release/zrlog.zip
nginx代理后静态文件找不到的问题,或者是进入管理界面后就提示‘会话过期,重新登录’
需要额外修改将代理前的Host给Tomcat容器(默认会被转化为127.0.0.1:8080这类地址)
Nginx 添加 proxy_set_header Host $host 到对应server配置项,或则是在http模块里面。
开启 HTTPS
如果程序运行在 Nginx/Apache 这里代理程序后面,需要额外添加一个 http header 传给使用的 web 容器,如 Nginx 需要添加
proxy_set_header X-Forwarded-Proto $scheme;
迁移数据
备份
需要先导出原来数据库的表结构和数据,可以试试提供的备份插件的导出备份文件的功能,在新的环境创建对应的数据库和账号密码
还原
使用默认的工具就可以了 mysql -uzrlog_dev -p < backup.sql
修改配置
数据库信息存在 WEB-INF/db.properties 这个文件里面的,改 jdbcUrl 里面的 host,如果有其他信息改了,也要跟着改,最后重启webserver就可以了
忘记管理后台的登录密账户或密码
ZrLog 是单用户的博客(生产内容)系统,所以为了系统简单,将管理后台的登录所需的用户名和内容存在系统的 user 表里面,加上为了安全,所以没有提供找回密码的功能入口,需要找回密码需要会操作数据库
- 忘记登录的用户名
select * from user;
这里面的 userName 就是登录的用户名
- 忘记登录的密码
ZrLog 一直使用 md5 摘要算法进行存储密码信息,所以只需要这一行 sql
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 的编译到 admin-web/src/main/resources 目录里面了, 或者直接使用命令行 sh bin/mvn-run.sh 启动 ZrLog,无需任何 ide 的支持
windows
需要安装 git-bash 这类类 unix 命令行环境的工具,然后解决方式就同 unix 的处理办法
mysql 安装在 docker 里时,输入正确的数据库信息,仍无法完成安装
- 请检查是否使用了 root 账号作为安装的数据库账号(不要使用 root,而是为 zrlog 创建独立的账户和和密码,同时将要作为程序安装的数据库作授权给这个独立账户)
- 如果使用 CentOS,或者 windows 的可以尝试关闭系统防火墙试下(可能是防火墙限制了 docker 的跨网段访问 MySQL)
打开安装页面后,一直转圈
可能原因是使用较新的 webserver
比如 tomcat的9 以后的版本,具体原因是 tomcat10 开始使用新的 Jakarta 的包名导致的,目前解决版本是使用 tomcat9 的版本即可,或升级到最新的版本,无需 servlet 容器启动