实验环境:
redhat6.6,防火墙和Selinux已经关闭
说明:我用的tomcat7版本,apache-tomcat-7.0.42.zip,jdk为jdk1.8.0_121.tar.gz,线上环境安装tomcat时,最好带上主版本,jdk用rpm.bin的方式,我这里做实验,因为tar.gz的jdk下载快,bin的jdk比较大,我这里说明下也这种安装方式。另外解压后的软件我都放到/usr/local/,简单的办法是用-C,-d 指定路径
一、安装jdk
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载完成后生成一个bin文件或者用jdk.tar.gz包
方法1,用jdk的rpm.bin方式安装tomcat环境jdk
1. 安装 JDK 之前,先检查下有没有系统自带的 JDK,如果存在建议卸载,检查:
[[email protected] ~]# rpm -qa | grep -i Java
2. 卸载以 java 开头的文件
[[email protected] ~]# rpm -e --nodeps java_cup-0.10k-5.el6.x86_64 --nodeps
3. 卸载完后输入:
[[email protected] ~]# java -version
提示-bash: java: command not found,表示已卸载成功。
4. 安装
上传jdk到/root
修改其权限:chmod775 xxxxxx.bin 执行 ./xxxxxx.bin首先执行安装.bin 文件的命令:
执行完成后生成一个jdk1.6.0_23的文件夹。
[[email protected] ~]# ./jdk-6u22-Linux-x64-rpm.bin
安装 rpm 包:
[[email protected] ~]# rpm -ivh jdk-6u22-linux-amd64.rpm --nodeps --force
如果无法安装,要增加执行权限 chmod +xjdk-6u22-linux-x64-rpm.bin(jdk-6u22-linux-amd64.rpm )
方法2,用tar.gz的jdk 部署tomcat的jdk环境
二、添加tomcat用户,配置环境变量
说明,我这里用的是第二种安装jdk的方法
为安全起见这里仅采用修改用户环境变量的方式设置环境变量,即不用root账户。而是创建一个tomcat账户,使用jdk的用户为tomcat,可用来单独管理 tomcat 的相关服务,如果是root用户,可以在/etc/profile中设置环境变量
添加tomcat 用户、密码,tomcat下载地址:http://tomcat.apache.org/
[[email protected] ~]# useradd tomcat
[[email protected] ~]## passwd tomcat
切换到 tomcat 用户:
[[email protected] ~]## su - tomcat
修改文件后要想马上生效还要运行source /home/tomcat/.bash_profile 不然只能在下次重进此用户时生效。修改环境变量
使用 tomcat 用户 vi /home/tomcat/.bash_profile 文件,加入如下内容,如图:
export JAVA_HOME=/usr/local/tomcat_jdk //我的jdk安装路径
export CLASSPATH=.:$JAVA_HOME/lib.tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
export CATALINA_BASE=/usr/local/tomcat //我的tomcat安装路径
export CATALINA_HOME=/usr/local/tomcat
在终端使用echo命令检查环境变量设置情况,安装好后查看 jdk 版本
#echo $JAVA_HOME
#echo $CLASSPATH
#echo $PATH
检查JDK是否安装成功:
#java -version
如果看到JVM版本及相关信息,即安装成功
三、安装tomcat
1、root 用户将文件包进行解压,执行如下命令
[[email protected] ~]# cd /
[[email protected] ~]# apache-tomcat-7.0.42
[[email protected] ~]# mv apache-tomcat-7.0.42 /usr/local/tomcat
2、配置管理用户
将/usr/local/tomcat/ 的所有文件拥有者改为 tomcat,执行命令:
[[email protected] ~]# chown -R tomcat:tomcat /usr/local/tomcat/
设置tomcat用户
tomcat-users.xml
<tomcat-users></tomcat-users>之间添加下面语句
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat"password="tomcat" roles="admin-gui"/>
<user username="admin"password="1234" roles="manager-gui"/>
其中用户名为tomcat,密码为tomcat的是用来登录tomcat的Host Manager的,而用户名为admin,密码为1234是用来登录tomcat的App Manager的
3、启动 tomcat,提示 tomcat 启动信息,如下
[[email protected] ]#cd /usr/local/tomcat/bin
[[email protected] bin] #./startup.sh
[[email protected] bin]# chmod 755 startup.sh
[[email protected] bin]# ./startup.sh
Cannot find ./catalina.sh
The file is absent or does not have executepermission
This file is needed to run this program
[[email protected] bin]# chmod 777 *.sh
[[email protected] bin]# ./startup.sh
Neither the JAVA_HOME nor the JRE_HOMEenvironmentvariable is defined
At least one of these environment variableis needed torun this program
[[email protected] bin]#
4、查看 java 进程和tomcat默认的8080端口是否已经开启
[[email protected] bin]# ps axuwf|grep java
root 7539 0.0 0.0103252 828 pts/1 S+ 17:29 0:00 | \_ grep java
root 7519 18.4 3.8 2484700 98416pxs/1 Sl 17:28 0:06/usr/local/tomcat_jdk/bin/java-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat-Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrapstart
[[email protected] bin]# netstat -lnpt | grep 8080
tcp 0 0:::8080 :::* LISTEN 7519/java
[[email protected] bin]#
5、设置tomcat开机自启动
修改/etc/rc.local文件再最后添加如下内容
JAVA_HOME=/usr/local/tomcat_jdk
export JAVA_HOME
6、测试
测试tomcat 打开ie,输入URL http://ip地址:8080 可以看到tomcat的启动欢迎页面,证明tomcat配置正确,在tomcat/conf/server.xml中可以修改默认的端口号:例如修改成8088,注意:不要像在windows里面一样去增加<Context>元素
四、优化调整
1、字符集和线程数设置
Tomcat6 字符集修改文件:/usr/local/tomcat/conf/server.xml,打开,搜索 Connector port="8080",找到类似如下代码区域:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
enableLookups="false"
URIEncoding="utf-8"/>
2、JVM 设置
加大tomcat可以使用的内存,在/usr/local/tomcat/bin/catalina.sh前面增加如下内容:
JAVA_OPTS="-server –Xms1024m -Xmx1024m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true"
五、遇到的问题
在windows中修改catalina.sh后用ssh上传到linux执行报错
问题:
由于tomcat内存溢出,在windows下修改了catalina.sh,然后通过ssh传到linux服务器上,执行catalina.sh时出现如下错误:
Cannot find ./catalina.sh
This file is needed to run this program
解决方案
.sh文件都不是可执行文件,于是找到命令:chmod +x *.sh,这个命令的意思是让所有的.sh文件都可执行。再次执行sh catalina.sh通过,然后用sh startup.sh成功启动。
如果输入上面url访问失败,即tomcat启动失败,请用下面的方法来尝试处理
(1).权限问题,用户权限和文件是否有可执行权限。
a.普通用户权限一般不足,用chmod命令给用户加权限,我是用root用户来进行安装的,因此没有遇到这个问题。
b.文件的权限不够,大部分时候是没有可执行权限。我在安装过程中失败后,给下面文件(xxxxx.bin)文件夹中所有文件赋予了可执行权限。可用下面的命令。
# chmod 777 "文件名" (如:#chmod 777 startup.sh)
(2)防火墙和端口问题查看tomcat的8080端是否开启
首先确定是不是防火墙问题,可以运行下面命令将防火墙服务关闭,然后再访问看是否正常。如果正常,说明是防火墙问题,我安装过程就是遇到这个问题,后来发现时防火墙问题,用下面方法解决掉