本文共 6445 字,大约阅读时间需要 21 分钟。
一、系统环境: Centos7 1406
所需软件:
apache-tomcat-7.0.61.tar.gzhttpd-2.2.29.tar.gz mod_jk-1.2.31-httpd-2.2.x.so jdk-7u67-linux-x64.rpm
下载mod_jk 对应httpd版本
下载jdk
二、安装httpd服务
1 2 3 4 | # tar xzvf httpd-2.2.29.tar.gz # cd httpd-2.2.29 # ./configure --prefix=/usr/local/apache2 -enable-so -enable-rewrite # make && make install |
三、安装配置jdk开发环境
1.先看看OpenJDK的安装包
$ rpm -qa |grep java
tzdata-java-2013b-1.el6.noarch java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.x86_64 java-1.7.0-openjdk-1.7.0.19-2.3.9.1.el6_4.x86_642.检查OpenJDK版本
$ java -version java version "1.7.0_19" OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-x86_64) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) 3.卸载Openjdk 用root用户登录终端$ su root
1 2 3 | # rpm -e --nodeps java-1.7.0-openjdk-1.7.0.19-2.3.9.1.el6_4.x86_64 # rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.x86_64# rpm -e --nodeps tzdata-java-2013b-1.el6.noarch # rpm -ivh jdk-7u67-linux-x64.rpm |
修改/etc/profile文件,添加JAVA开发环境需要的变量设置。
export JAVA_HOME=/usr/java/jdk1.7.0_67export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin
保存退出
1 | # source /etc/profile |
验证:
1 | #java -version |
提示:
java version "1.7.0_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
四、安装tomcat
1 2 3 4 | tar zxvf apache-tomcat-7.0.61. tar .gz -C /usr/local/ ln -sf /usr/local/apache-tomcat-7 .0.61/ /usr/local/tomcat ln -sf /usr/local/tomcat/bin/startup .sh /usr/bin/tomcat-on 备注:快捷启动 ln -sf /usr/local/tomcat/bin/shutdown .sh /usr/bin/tomcat-off 快捷关闭 |
修改/etc/profile文件,设置Tomcat服务需要使用的变量CATALINA_HOME。
export $CATALINA_HOME=/usr/local/tomat exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
修改tomcat-users.xml文件,添加管理员账户“tomcat”设置。
1 2 3 4 5 6 7 | ] # vim /usr/local/tomcat/conf/tomcat-users.xml <?xml version= '1.0' encoding= 'utf-8' ?> <tomcat- users > <role rolename= "manager-gui" /> <role rolename= "admin-gui" /> <user username= "tomcat" password= "tomcat" roles= "manager-gui,admin-gui" /> < /tomcat-users > |
启动:
1 2 3 4 5 6 7 | # tomcat-on Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1 .7.0_67 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar Tomcat started. |
1 2 | ] # netstat -anpt | grep java tcp6 0 0 127.0.0.1:8005 :::* |
LISTEN 18313/java tcp6 0 0 :::8009 :::* LISTEN 18313/javatcp6 0 0 :::8080 :::* LISTEN 18313/java
另外如果不用apache做WEB服务,在防火墙上做如下操作:
firewall-cmd --permanent --add-port=8080/tcpfirewall-cmd --permanent --add-port=80/tcpfirewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080或者:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
五、 将Tomcat服务与Apache服务进行连接
Tomcat可以独立作为Web服务器运行,但Tomcat的Web功能没有Apache强大。在实际使用中,通过mod_jk连接器(Connectors)将Apache和Tomcat整合在一起。
调用Tomcat服务的工作由Apache来完成,而用户只需要访问Apache服务。
(1) 安装mod_jdk模块。(下载下来文件直接改名)
1 2 3 4 5 6 7 8 | ] # cp mod_jk-1.2.31-httpd-2.2.x.so /usr/local/apache2/modules/mod_jk.so 方法2:官网下载mod_jk源码,下载地址:http: //archive .apache.org /dist/tomcat/tomcat-connectors/jk/source/jk-1 .2.31/ tomcat-connectors-1.2.31-src. tar .gz 进行编译 . /configure --with-apxs= /usr/local/apache2/bin/apxs make make install chmod 755 /usr/local/apache2/modules/mod_jk .so |
(2) 调整Apache服务、Tomcat服务的相关配置,并重启tomcat、httpd服务。 修改http.conf配置文件,添加mod_jk调用配置。
1 2 3 | ] # vi /usr/local/apache2/conf/httpd.conf 增加如下内容:(或直接在下面介绍的文件中增加) LoadModule jk_module modules /mod_jk .so |
(3)在Apache的conf目录新建立两个文件。
mod_jk.conf和workers.properties文件。
mod_jk.conf的内容是jk的配置文件,包括装载模块和日志信息以及指定解析的工作器和目录。
workers.properties是Tomcat wokers的配置文件。
(4)在mod_jk.conf里加入以下内容(mod_jk.conf文件是方便管理,而不需要把配置都写在httpd.conf里)
#加载jk模块,名字要对应
LoadModule jk_module modules/mod_jk.so
# 加载刚才新建的workers.properties文件
JkWorkersFile conf/workers.properties
# Jk日志文件
JkLogFile logs/mod_jk.log
# Jk日志的级别,参数有[debug/error/info]
JkShmFile logs/mod_jk.shm JkLogLevel info
# Jk日志的数据格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Jk的一些配置选项 indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# Jk请求日志的格式
JkRequestLogFormat "%w %V %T"
#JSP do Servlet文件交由Tomcat处理
JkMount /servlet/* ajp13 JkMount /*.jsp ajp13 JkMount /*.do ajp13
# JkMount 表示使用Tomcat来解析, JkUnMount则相反
# 一般是jsp和servlet程序交由tomcat处理就可以了,静态文件图片等仍然由Apache处理
#JkAutoAlias /usr/local/apache2/htdocs*
#该文件夹下所有的静态文件自动交由Apache处理
(5) 添加tomcat配置文件,并建立Web应用目录链接
1 2 3 4 5 6 | ] # vi /usr/local/apache2/conf/workers.properties worker.list=work1 worker.work1.port=8009 worker.work1.host=xfsbuy worker.work1. type =ajp13 worker.work1.lbfactor=1 |
1 2 3 | ] # cd /usr/local/tomcat ] # mv webapps webapps.bak ] # ln -sf /usr/local/apache2/htdocs webapps |
(6) 重启 apache 和tomcat服务。
1 2 3 | ] # tomcat-off ] # tomcat-on ] # /usr/local/apache2/bin/apachectl restart |
(7) 测试 创建显示系统时间的JSP测试网页。
1 2 3 4 | ~] # mkdir /usr/local/apache2/htdocs/webs/ ~] # vi /usr/local/apache2/htdocs/webs/showtime.jsp <%@page language= "java" import = "java.util.*" %> Now,the time & date is : <%out.println(new Date());%> |
测试: http://172.16.0.13/webs/showtime.jsp , 应在网页中显示当前的系统时间
参考:
六 将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问。
方法一:
删除原webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下。
方法二:
删除原 webapps/ROOT 目录下的所有文件,修改文件“conf/server.xml”,在Host节点下增加如下Context的内容配置:
1 2 3 4 5 | <Host name= "localhost" appBase= "webapps" unpackWARs= "true" autoDeploy= "true" xmlValidation= "false" xmlNamespaceAware= "false" > ...... <Context path= "" docBase= "/usr/local/apache2/htdocs/shop/www.war" >< /Context > < /Host > |
注意:
1)path 的值设置为空;
2)应用不要放到tomcat的webapps目录下(如上述配置是放到自定义的文件夹shop内的),否则访问时路径很有问题;
3)docBase指定到绝对路径。
如此设置后重启tomcat,如果docBase指向的是war文件,会自动将war解压到 webapps/ROOT 目录;如果docBase指向的是应用已解压好的目录,如 docBase="/usr/local/apache2/htdocs/shop/",tomcat不会生成webapps/ROOT目录(这种情 况下之前可以不用删除webapps/ROOT目录,但webapps/ROOT目录内的内容是无法访问的),访问时将直接使用docBase指定的目录。
方法三:
与方法二类似,但不是修改全局配置文件“conf/server.xml”,而是在“conf/Catalina/localhost”目录下增加新的文件"ROOT.xml"(注意大小写哦),文件内容如下:
1 2 | <?xml version= "1.0" encoding= "UTF-8" ?> <Context path= "" docBase= "/usr/local/apache2/htdocs/shop/www.war" >< /Context > |