相信自学JavaWeb的小伙伴和我一样,学习的是尚硅谷的JavaWeb课程。在尚硅谷的课程中,王振国老师手把手带我们做了一个书城项目,其中注册模块需要用到验证码,我们选用谷歌验证码kaptcha。相信很多小伙伴也兴致勃勃的把自己做的项目部署到云服务器上了,结果发现我们的验证码图片加载不出来。下面我将简单的介绍一下验证码无法显示的原因及解决方案。
正常的验证码图片:
验证码无法显示的主要原因有两个,一是我们的云服务器中缺失验证码所需要的字体,二是需要修改Tomcat的catalina.sh配置文件
解决步骤:
一.安装所需要的字体
1.通过xshell或其他工具连接云服务器
2.查看自己云服务器中/usr/local/share文件夹下有没有fonts文件夹
3.若没有则新建一个fonts文件夹(用于存放验证码所需字体)
mkdir /usr/local/share/fonts
4.百度一下验证码所需的字体,谷歌验证码需要的字体为Courier 常规和Courier New
5.从自己的电脑中找到所需要的字体 路径为 C:\Windows\Fonts
6.通过文件上传工具FillZilla或其他工具将字体文件上传到云服务器中的/usr/local/share/fonts文件夹下
7.建立字体缓存,执行
fc-cache
8.查看已安装字体,执行
fc-list
二.修改Catalina.sh配置文件
1.在Catalina.sh配置文件中找到-Djava.io.tmpdir="$CATALINA_TMPDIR"这行,并在这一行下加入:-Djava.awt.headless=true \,一共有6处,只需执行:
sed -i '/-Djava\.io\.tmpdir=/a\-Djava.awt.headless=true \\' /usr/local/tomcat/bin/catalina.sh
2.重启Tomcat
./startup.sh