一、配置 JDK 时,在 /etc/profile 文件下配置环境变量,添加

 
#java environment
export JAVA_HOME=/usr/java/jdk-10.0.
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

注意:

1、JAVA_HOME 地址按照自己配置的来

2、不需要再 export JRE_HOME

二、安装 Tomcat 后,不需要再配置环境变量

1、在 bin/conf/server.xml 下修改启动端口号,建议直接改成 80,因为此时浏览器直接输入 ip 即可访问 Tomcat 所部署的应用,注意防火墙开启这些端口。

2、查看日志,看是否报错端口被占用;若报错,可以用 netstat –lntup 命令查看端口进程及 PID 号,用 kill -9 PID 命令杀死进程,再启动试试。

3、最严重的坑是,默认 8005 端口用于 shutdown,该端口没有正常启动,则无法正常执行 startup.sh 和 shutdown.sh,而 8005 端口启动特别慢,大约十几分钟。 若执行完 startup.sh 后立马在浏览器输入 ip 可能会没有响应,需要等 8005 端口正常启动后才行。此间若错误地再执行 startup.sh 则日志文件会显示端口被占用,原因是没等正常启动 tomcat 完就多次重新启动,而此时因为 8005 未正常启动,故执行 shutdown.sh 也会报错。

4、查看日志,8005 端口之所以启动慢,是因为出于安全地计算随机数的过程卡顿,直接配置 jdk securerandom.source 为 urandom 解决:

  • 打开 $JAVA_HOME/jre/lib/security/java.security 这个文件,找到 securerandom.source 配置项
  • 修改为:securerandom.source=file:/dev/urandom

5、建议正常安装并启动 tomcat,耐心等待,netstat -lntup 命令查看处在 listen 状态的端口,所需的端口都正常启动了,查看日志文件,日志输出不报错,再用浏览器访问 ip。

三、经验教训

1、安装配置的时候,多看一些博客,选取靠谱并详细的博客,合理归纳必要的步骤理解其意义,再来安装配置。

2、多看报错的提示,包括日志文件,对每一个报错,翻译并理解其含义,上网查原因和解决办法,然后多尝试。

3、熟悉一下 CentOS 下建立和移动文件夹命令,安装的相关命令,firewall、netstat、kill 等系列命令,可能会有用。

服务器端 CentOS 下配置 JDK 和 Tonmcat 踩坑合集的更多相关文章

  1. CentOS下配置jdk

    CentOS下配置jdk 1.在jdk官网上下载最新版本的jdk 2.将jdk放到相应的位置,使用如下命令来解压. .0_181 /opt/data/ tar -zxf jdk-8u181-linux ...

  2. 在CentOS/Windows下配置Nginx(以及踩坑)

    在CentOS/Windows下配置Nginx(以及踩坑) 1. 序言 因为这类文章网上比较多,实际操作起来也大同小异,所以我并不会着重于详细配置方面,而是将我配置时踩的坑写出来. 2. CentOS ...

  3. 小程序框架WePY 从入门到放弃踩坑合集

    小程序框架WePY 从入门到放弃踩坑合集 一点点介绍WePY 因为小程序的语法设计略迷, 所以x1 模块化起来并不方便, 所以x2 各厂就出了不少的框架用以方便小程序的开发, 腾讯看到别人家都出了框架 ...

  4. better-scroll踩坑合集

    better-scroll踩坑合集:https://www.jianshu.com/p/6338a8033281

  5. CentOS 下配置JDK

    从官网上下载jdk到系统中,并解压好 tar –axvf jdk.tr.gz 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找 ...

  6. tensorflow踩坑合集2. TF Serving & gRPC 踩坑

    这一章我们借着之前的NER的模型聊聊tensorflow serving,以及gRPC调用要注意的点.以下代码为了方便理解做了简化,完整代码详见Github-ChineseNER ,里面提供了训练好的 ...

  7. tensorflow feature_column踩坑合集

    踩坑内容包含以下 feature_column的输入输出类型,用一个数据集给出demo feature_column接estimator feature_column接Keras feature_co ...

  8. centos下安装redis(记录其中踩坑的过程)

    一.先下载到redis-3.0.4.tar.gz包(本文以3.0.4版本为例) 我将这个包放在/opt目录下,在/opt下并解压这个包 tar -zxvf redis-.tar.gz 然后进入redi ...

  9. arm安装cuda9.0,tensorflow-gpu, jetson tx2安装Jetpack踩坑合集

    因为要在arm(aarch64)架构的linux环境中安装tensorflow-gpu,但是官方tf网上没有对应的版本,所以我们找了好久,找到一个其他人编译好的tensorflow on arm的gi ...

随机推荐

  1. SCOI2010第一场

    NOI2010全国青少年信息学奥林匹克竞赛 四川代表队选拔赛 第一场 题目名称 幸运数字 游戏 股票交易 英文代号 luckynumber game trade 时限 2秒 2秒 2秒 输入文件 lu ...

  2. 《Spring in action》之高级装配

    1.Spring 通过配置profile bean.激活profile来设置对应环境. 配置profile bean: 可通过@Profile("dev")注解进行配置.也可以通过 ...

  3. Spring Boot中使用Swagger2生成RESTful API文档(转)

    效果如下图所示: 添加Swagger2依赖 在pom.xml中加入Swagger2的依赖 <!-- https://mvnrepository.com/artifact/io.springfox ...

  4. 时间插件,js格式化,js某月天数,js某月最后一天日期

    //时间格式化 Date.prototype.format = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 ...

  5. iOS xmpp协议实现聊天之openfire的服务端配置(二)

    本篇主要说一下怎样利用命令行来正确配置MySql. 首先打开终端: 1.为mysql起一个别名 alias mysql=/usr/local/mysql/bin/mysql 2.创建mysql的管理员 ...

  6. [Vue @Component] Load Vue Async Components

    Vue provides a straight-forward syntax for loading components at runtime to help shave off initial b ...

  7. iOS 文字属性字典

    iOS开发过程中相信大家常常遇到当须要给字体,颜色,下划线等属性的时候參数是一个NSDictionary 字典 可是字典里面究竟有哪些键值对了 我们把经常使用的总结一下 首先我们创建一个最简单的.设置 ...

  8. Java泛型解析(01):认识泛型

    Java泛型解析(01):认识泛型 What      Java从1.0版本号到如今的8.中间Java5中发生了一个非常重要的变化,那就是泛型机制的引入.Java5引入了泛型,主要还是为了满足在199 ...

  9. 小胖说事31------iOS 真机编译错误&quot;“XXX”的 iPod&quot; and run &quot;XXX&quot; again, or if &quot;XXX&quot; is still running

    在真机上測试时用一会就出现例如以下信息,且应用挂掉. Restore the connection to ""XXX"的 iPod" and run " ...

  10. Cocos2d-x3.3RC0载入Android的WebView

    代码部分摘自http://www.fusijie.com/blog/2013/12/26/play-cocos2dx-33/ Cocos2d-x3.3RC0通过Jni嵌入Android的WebView ...