说说tomcat8.0_60在linux jdk1.8.0_60上的那些坑
坑1
当你下载好tomcat之后,解压到
/opt/apache-tomcat-x.x/
之后,开始在terminal中敲./bin/startup.sh
,你会遇到第一个坑,tomcat并没有把所有信息都打印到终端,这时你也不知道服务器是否已经启动了!那就试一下吧,curl localhost:8080
,我去果断卡住了。这时你意识到tomcat出现了问题,但是什么问题?
然后你可以运行
tail -f logs/catalina.out
,可以看到输出结果:
Deploying web application directory /usr/local/apache-tomcat-8.0.28/webapps/examples
它卡在这里了!当然首先想到的是jre配置的问题,毕竟webapp在部署时卡死,肯定和jre有关。当然之所以说是坑,就是因为结果是邪门的。
执行
echo $JAVA_HOME
,切换到java_home目录下,vim jre/lib/security/java.security
找到securerandom.source=file:/dev/random
,改成securerandom.source=file:/dev/./urandom
,具体原因请参考链接描述
坑2
过了坑1,也拜托不了被坑的命运。
先解决前面说的那个问题,如果执行
./bin/catalina.sh run
,会直接输出到终端,没用每次查看tail -f logs/catalina.out
,如果你需要切换任务,ctrl+z,出现[1]+ Stopped ./bin/catalina.sh run
,然后执行bg 1
,查看后台任务jobs
,切换前台fg 1
.现在我想让tomcat监听在80端口,window下修改
conf/server.xml
,mac os x不仅要修改配置,还用root用户,linux下root都不行。首先安装
apt-get install authbind
,参考链接描述
坑3
今天很残酷,明天更残酷,后天很美好。其实后天也一般,因为大多数人都死在后天之前,后天就算再烂,也比死了强吧!
这下服务器启动了,并且也绑定到80端口了,发现报了一大堆错table xxx no exits(不应该啊,数据库我都部署好了),最终判断是 mysql严格区分大小写的问题
mysql的数据库文件其实是存放在data目录下的,linux对文件大小写敏感的。所以说如果你的数据库表名如果是大写,程序中也必须是大写。但是如果上线的时候两者大小写不统一,要不你改程序(这个不明智),要不配置mysql对大小写不敏感。貌似要重启服务器,如果要生效的话。