前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录 linux 下 部署 tomcat

记录 linux 下 部署 tomcat

作者头像
全栈程序员站长
发布2022-07-05 09:39:25
5K0
发布2022-07-05 09:39:25
举报
文章被收录于专栏:全栈程序员必看

此文章记录了我在VM虚拟机上安装tomcat,并部署webApp,因为我这个项目的是在windows server2003下运行的,所以自己没事研究一下如何部署到linux上面,我用的是 CentOS 6.8 ,附上下载地址

http://mirrors.sohu.com/centos/6.8/isos/i386/

1、安装VM虚拟机,下载Centos6.8,再在虚拟机安装,具体安装过程请百度,因为我对linux还不熟,没有手动分区,以后熟了再说。

2、本机安装XShell4 跟 Xftp,用于远程连接linux,此处注意linux开启ssh服务,以及开放端口

  1. service sshd start 开启ssh服务 service sshd stop 停止ssh服务 service sshd restart 重启ssh服务
  2. 此处使用默认22端口,顺便把tomcat端口我这是80也开启了,如果需要修改默认22端口,可自行百度

开启: service iptables start 关闭: service iptables stop 需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。 在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysconfig/iptables 文件,添加以下内容: -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 重起iptalbes服务:service iptables restart

3、安装jdk,配置环境变量,此处我们先卸载linux自带的jdk

  1. 先在 /usr 目录下新建 java 文件夹,作为安装目录(可用命令,然后再 Xftp下查看,或直接用 Xftp 新建也可)
  2. 到官网下载 jdk ,我下载的是这个版本 jdk-6u39-linux-i586-rpm.bin,现在官网下载需要登录
  3. 卸载自带jdk

rpm -qa | grep jdk 或者 rpm -qa | grep gcj 查看安装的jdk

使用 rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 卸载具体版本的

4.安装jdk

# cd /usr/java ①jdk-1_5_0_14-linux-i586-rpm.bin文件安装 # chmod 777 jdk-1_5_0_14-linux-i586-rpm.bin ← 修改为可执行 # ./jdk-1_5_0_14-linux-i586-rpm.bin ← 选择yes同意上面的协议 # rpm -ivh jdk-1_5_0_14-linux-i586.rpm ← 选择yes直到安装完毕 ②jdk-1_5_0_14-linux-i586.bin文件安装 (可以不安装,如果没下载就不用安装了) # chmod a+x jdk-1_5_0_14-linux-i586.bin ← 使当前用户拥有执行权限 # ./jdk-1_5_0_14-linux-i586.bin ← 选择yes直到安装完毕

5.设置环境变量

#vi /etc/profile

打开后,在文档最下方加上以下环境变量配置代码:

export JAVA_HOME=/usr/java/javajdk1.7.0_01 export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export PATH=JAVA_HOME/bin:PATH

注意:export PATH=JAVA_HOME/bin:PATH,注意将

代码语言:javascript
复制
 source /etc/profile    #使配置文件立即生效       # java -version       # 测试是否成功 

4、安装tomcat,易出现问题,乱码,内存溢出(关于乱码问题总结在另一篇)

  先在 /usr 目录下新建 tomcat6 文件夹,作为安装目录(可用命令,然后再 Xftp下查看,或直接用 Xftp 新建也可)
  到官网下载 需要的tomcat 版本 ,我下载的是这个版本 apache-tomcat-6.0.47.tar.gz
  上传到linux,tar 解压到 tomcat6 文件夹下 

                tar -zxvf apache-tomcat-6.0.47.tar.gz 
                vi  /usr/tomcat6/apache-tomcat-6.0.47/conf/server.xml   修改端口,以及默认编码格式
                /usr/tomcat6/apache-tomcat-6.0.47/bin/startup.sh   启动tomcat,访问一下,如果没问题就把项目部署到tomcat
                我没有用war包,直接把编译后的项目复制到了 webAPP 下,然后启动 
         4.  此时报错 无法加载 class 一看名字是 中文乱码,解决乱码问题 

出现乱码的原因:
        win默认编码是GBK,linux默认编码是utf-8,在用ftp 复制上传文件时,如果有中文文件名,就会出现乱码问题 
解决方法:
        安装转码工具  yum install convmv
        递归转换tomcat目录下的目前文件名编码gbk为utf-8: 
        convmv -f gbk -t utf-8 –notest -r  /usr/tomcat6/apache-tomcat-6.0.47/ 
 
        5.  再次启动 tomcat ,乱码问题解决了,但又报内存溢出  OutOfMemoryError: PermGen space
    解释说明: PermGen space是指内存的永久保存区域。这个区域主要存放Class和Meta信息,Class在被Load时就会被放入PermGen space。
     出错场景: 如果APP载入很多CLASS,就可能会出现PermGen space溢出。(因为sun的GC不会在程序运行时对PermGen space进行清理)。
         常见在web服务器对JSP进行pre compile的时候
     解决方法:修改MaxPermSize大小  


在catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下
 # vi TOMCAT_HOME/bin/catalina.sh
  
 
  JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m”
  
  


 
 其他说明:
 
 
 1.“m”说明单位是MB,否则默认是KB
 
 
 2.一般使用物理内存的80%作为堆大小
 
 
 3.一般把-Xms和-Xmx设为一样大
 
 
 4.一般把-Xmn设置为-Xmx值的1/4
 
 
 5.一般将堆的总大小的50%到60%分配给新生成的池
 
 
 
 
 
 jvm参数说明:
 
 
 -server 一定要作为第一个参数,启用JDK的server版本,在多个CPU时性能佳(可以不写)
 
 
 -Xms java Heap初始大小。 默认是物理内存的1/64。
 
 
 -Xmx java heap最大值。建议均设为物理内存的80%。不可超过物理内存。
 
 
 -Xmn java heap最小值,一般设置为Xmx的3、4分之一。
 
 
 -XX:PermSize 设定内存的永久保存区初始大小,缺省值为64M。
 
 
 -XX:MaxPermSize 设定内存的永久保存区最大大小,缺省值为64M。
 
 
 -XX:SurvivorRatio=2 生还者池的大小,默认是2。如
 
 
 -XX:NewSize 新生成的池的初始大小。 缺省值为2M。
 
 
 -XX:MaxNewSize 新生成的池的最大大小。 缺省值为32M。
 
 
 +XX:AggressiveHeap 让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
 
 
 -Xss 每个线程的Stack大小
 
 
 -verbose:gc 现实垃圾收集信息
 
 
 -Xloggc:gc.log 指定垃圾收集日志文件
 
 
 -XX:+UseParNewGC 缩短minor收集的时间
 
 
 -XX:+UseConcMarkSweepGC 缩短major收集的时间
 
 
 -XX:userParNewGC 可用来设置并行收集(多CPU)
 
 
 -XX:ParallelGCThreads 可用来增加并行度(多CPU)
  
-XX:UseParallelGC 设置后可以使用并行清除收集器(多CPU)
 

5、总结
 
这是我的第一篇博客,记录了我在虚拟机上安装 linux 系统,然后安装 jdk 以及 tomcat ,再部署项目的整个过程,其中出现很多问题,自己在网上一步步找答案,希望对大家有帮助,也方便我自己以后查看,今后我会把工作中遇到的问题,以及解决方法记录在博客!                   
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年8月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档