tomcat基本的服务配置搭建(一)

2017-02-15 19:09

 

实验环境:

redhat6.6,防火墙和Selinux已经关闭

说明:我用的tomcat7版本,apache-tomcat-7.0.42.zipjdkjdk1.8.0_121.tar.gz,线上环境安装tomcat时,最好带上主版本,jdkrpm.bin的方式,我这里做实验,因为tar.gzjdk下载快,binjdk比较大,我这里说明下也这种安装方式。另外解压后的软件我都放到/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,如果存在建议卸载,检查:
 [root@agent2 ~]# rpm -qa | grep -i Java
2. 卸载以 java 开头的文件
[root@agent2 ~]# rpm -e --nodeps java_cup-0.10k-5.el6.x86_64 --nodeps

 

3. 卸载完后输入:
[root@agent2 ~]# java -version
 提示-bash: java: command not found,表示已卸载成功。
4. 安装
上传jdk到/root

修改其权限:chmod775 xxxxxx.bin 执行 ./xxxxxx.bin首先执行安装.bin 文件的命令:
执行完成后生成一个jdk1.6.0_23的文件夹。

[root@agent2 ~]# ./jdk-6u22-Linux-x64-rpm.bin
 安装 rpm 包:
[root@agent2 ~]# 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/ 

 [root@agent2 ~]# useradd tomcat
 [root@agent2 ~]## passwd tomcat
切换到 tomcat 用户:
[root@agent2 ~]## 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

1root 用户将文件包进行解压,执行如下命令
[root@agent2 ~]# cd /
[root@agent2 ~]# apache-tomcat-7.0.42

[root@agent2 ~]# mv apache-tomcat-7.0.42 /usr/local/tomcat

 

2、配置管理用户
将/usr/local/tomcat/ 的所有文件拥有者改为 tomcat,执行命令:
[root@agent2 ~]# 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


或者roles用逗号分隔用户
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="123456" roles="admin,manager"/>
</tomcat-users>

点击tomcat欢迎页中左上角Tomcat Manager链接,输入admin,123456后可以查看正在运行的应用.


如果要修改默认的端口, 修改server.xml 如下段的配置端口即可

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 

3、启动 tomcat,提示 tomcat 启动信息,如下

[root@agent2 ]#cd /usr/local/tomcat/bin
[root@agent2 bin] #./startup.sh
[root@agent2 bin]# chmod 755 startup.sh

[root@agent2 bin]# ./startup.sh

Cannot find ./catalina.sh

The file is absent or does not have executepermission

This file is needed to run this program

[root@agent2 bin]# chmod 777 *.sh

[root@agent2 bin]# ./startup.sh

Neither the JAVA_HOME nor the JRE_HOMEenvironmentvariable is defined

At least one of these environment variableis needed torun this program

[root@agent2 bin]#

 

 

 

4、查看 java 进程和tomcat默认的8080端口是否已经开启

[root@agent2 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
[root@agent2 bin]# netstat -lnpt | grep 8080
tcp        0      0:::8080                    :::*                       LISTEN      7519/java          
[root@agent2 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"/>

 

2JVM 设置

加大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端是否开启
首先确定是不是防火墙问题,可以运行下面命令将防火墙服务关闭,然后再访问看是否正常。如果正常,说明是防火墙问题,我安装过程就是遇到这个问题,后来发现时防火墙问题,用下面方法解决掉


六、java web应用的部署
把web应用在eclipse里面export成war包文件并复制到tomcat/wabapps目录下
将被引用的项目的文件夹也考到tomcat/wabapps目录下
关闭后再次启动tomcat
访问时输入http://ip地址:8088/war文件名称/....
例如war文件名为wapinfo.war
则输入http://ip地址:8088/wapinfo/....
进行访问

为方便管理项目,可以修改/root/apache-tomcat-6.0.33/conf/tomcat-users.xml文件,在最后加上
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="123456" roles="admin,manager"/>
点击tomcat欢迎页中左上角Tomcat Manager链接,输入admin,123456后可以查看正在运行的应用.


七、关于tomcat 发布程序的方法总结:





八、让主机访问虚拟机中Tomcat

(1)点菜单edit ,点virtual network settings

(2)选择vmnet8,点NET setting,在port forwarding中点Add

Host port:8080(主机想要映射的端口)

Virtual machine IP Address:192.168.***.***(输入你虚拟机内Linux的IP)

Virtual machine Port:8080(虚拟机中映射的端口)