Rootop 服务器运维与web架构

Linux下apache+tomcat+jdk+tomcat-connectors搭建jsp运行环境

| 暂无评论

      JSP(java Server Pages)  是由Sun 公司倡导、许多公司一起参与与建立的一种基于Java技术的动态网页技术标准。在传统的网页HTML文件中嵌入Java的一个脚本,由脚本完成查询数据库、重定向网页和发送电子邮件等动态操作。

     由于最终服务器运行的是二进制的文件,所以运行效率要比传统的脚本语言高。

     防止出问题,先把selinux、iptables关闭

     这里apache就不采用源码编译安装了,直接yum install -y httpd

     Apache 只是一个web服务器,不能运行jsp程序。如果要运行jsp程序,还需要安装Tomcat服务器软件,通过整合Tomcat 和Apache来运行jsp程序。

     JDK 是java 2 Development Kit (java 开发工具包)的缩写。

它是一组API,所有的Java应用程序都是构建在JDK之上的,Tomcat的运行需要JDK的支持,应先安装JDK。

    我所运行的系统为rhel5.5_64,到sun公司官网下载jdk的64位版本,本文用的版本为:jdk-7u4-linux-x64.rpm,直接 rpm 安装即可。(http://download.oracle.com/otn-pub/java/jdk/7u4-b20/jdk-7u4-linux-x64.rpm

程序会释放到 /usr/java/下,把jdk1.7.0_04做一个软链接:

[root@oracle ~]# cd /usr/java/
[root@oracle java]# ln -s jdk1.7.0_04/ jdk
[root@oracle java]# ll
总计 4
lrwxrwxrwx 1 root root   16 05-11 16:10 default -> /usr/java/latest
lrwxrwxrwx 1 root root   12 05-11 16:13 jdk -> jdk1.7.0_04/
drwxr-xr-x 8 root root 4096 05-11 16:10 jdk1.7.0_04
lrwxrwxrwx 1 root root   21 05-11 16:10 latest -> /usr/java/jdk1.7.0_04   

       tomcat 可以到apache官网下载:http://tomcat.apache.org/ 本文用的版本为:apache-tomcat-7.0.21.tar.gz ,直接解压到/var/local/tomcat 即可。(最新版http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27.tar.gz)

    编辑tomcat用户管理文件,添加一个名为“nq”的管理员用户,密码为nq。

[root@oracle~]# vi /usr/local/tomcat/conf/tomcat-users.xml      // 添加红色部分

<?xml version=’1.0′ encoding=’utf-8′?>
<tomcat-users>
  <role rolename=”admin-gui”/>
  <role rolename=”admin-script”/>
  <role rolename=”manager-gui”/>
  <role rolename=”manager-script”/>
  <role rolename=”manager-jmx”/>
  <role rolename=”manager-status”/>

  <user username=”nq” password=”nq” roles=”admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status”/>
</tomcat-users>

保存退出,然后修改系统变量。

[root@oracle~]# vi /etc/profile           添加如下代码:

JAVA_HOME=/usr/java/jdk
CATALINA_HOME=/usr/local/tomcat
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CATALINA_HOME CLASSPATH PATH

保存退出,执行命令让环境变量生效:

[root@oracle~]# source /etc/profile

启动tomcat:

[root@oracle ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@oracle ~]#

      检查tomcat是否启动:

[root@oracle~]# netstat -anp | grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN      5084/java
[root@oracle~]#

     在浏览器里访问http://172.17.1.113:8080/,可以看到tomcat的管理网页界面,并可以使用用户“nq”登陆管理。

      虽然Tomcat可以独立作为web服务器运行,但Tomcat的web功能远没有Apache强大,所以实际应用中是通过mod_jk2连接器将Apache和Tomcat整合在一起提供服务的,Apache处理静态页面的请求,Tomcat则用于处理JSP程序。

下载tomcat-connectors (http://labs.mop.com/apache-mirror//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.35-src.tar.gz)

下面开始编译mod_jk.so模块:

参考源码包中的BUILD.txt及native下的BUILDING.txt参考文档进行编译。

[root@oracle native]# yum install -y gcc
[root@oracle native]# yum install -y gcc-c++
[root@oracle native]# yum install -y httpd-devel
[root@oracle native]# yum install -y autoconf
[root@oracle native]# yum install -y libtool
[root@oracle native]# ./buildconf.sh   //先执行下自带的环境检查,根据提示缺什么装什么。
[root@oracle native]# ./configure –with-apxs=/usr/sbin/apxs      //一定要指定apxs路径,否则会报错找不到web server
[root@oracle native]# make
[root@oracle native]# make install   //可以自行复制到/etc/httpd/modules下,如果没有按照下面复制。
[root@oracle native]# cd apache-2.0/
[root@oracle apache-2.0]# ls
bldjk54.qclsrc  Makefile.apxs     mod_jk.a    mod_jk.lo
bldjk.qclsrc    Makefile.apxs.in  mod_jk.c    mod_jk.o
config.m4       Makefile.in       mod_jk.dsp  mod_jk.so
Makefile        Makefile.vc       mod_jk.la   NWGNUmakefile

(我在编译过程中遇到的问题参考:https://www.rootop.org/?p=772 )

安装mod_jk.so模块到apache:

[root@oracle apache-2.0]# cp mod_jk.so /etc/httpd/modules/

编辑 /etc/httpd/conf.d/mod_jk.conf 添加如下代码:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf/workers.properties
JkShmFile /var/log/httpd/mod_jk.shm
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkMount /*/servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
AddType application/x-jsp .jsp

[root@oracle~]# vi /etc/httpd/conf/workers.properties
[shm]
file=/etc/httpd/logs/shm.file
size=1048576
[channel.socket:localhost:8009]
tomcatId=localhost:8009
[uri:/jsp-examples/*]
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java/jdk
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
     要实现Apache和Tomcat的整合,需要设置Apache和Tomcat的主目录一致,应编辑Tomcat的主配置文件/usr/local/tomcat/conf/server.xml   //修改红色部分

代码:

 <Host name=”localhost”  appBase=”/var/www/html
            unpackWARs=”true” autoDeploy=”true”>
 <Context path=”” docBase=”” debug=”0″ />
重启apache tomcat服务,测试。

测试页:

test.jsp   代码如下:

<%@page import=”java.util.*”%>

Now Time is : <% out.println(new Date()); %>

测试效果如下:Now Time is : Sat May 12 11:19:04 CST 2012

(本文于2012/05/12 11:20 AM 最后修改)

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/763.html

作者:Venus

服务器运维与性能优化

发表回复