huaihe0410 发表于 2011-12-20 09:48

contos5下apache和tomcat整合

<P>contos5下apache和tomcat整合</P>
<P>一、准备软件:</P>
<P>apache2.2.10下载地址:<A href="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</A></P>
<P>tomcat6.0下载地址:<A href="http://tomcat.apache.org/download-60.cgi">http://tomcat.apache.org/download-60.cgi</A></P>
<P>jdk1.5.0下载地址:<A href="http://java.sun.com/javase/downloads/previous.jsp">http://java.sun.com/javase/downloads/previous.jsp</A></P>
<P>jk1.2.7下载地址:<A href="http://tomcat.apache.org/download-connectors.cgi">http://tomcat.apache.org/download-connectors.cgi</A></P>
<P>二、软件安装:</P>
<P>**************************************************************************</P>
<P>1、apache安装</P>
<P>把下载下来的包放在 /usr/local/src 下,使用 tar zxvf httpd-NN.tar.gz解压,</P>
<P>cd httpd-NN</P>
<P>./configure --prefix=/usr/local/httpd</P>
<P>make</P>
<P>make install</P>
<P>现在你发现在/usr/local下面多出了一个httpd的目录</P>
<P>我们可以利用 /usr/local/httpd/bin/apachectl -k start|stop|restart 来管理httpd服务。</P>
<P>如果要随系统启动,我们必须在 /etc/rc.d/init.d/rc.local文件的末尾加上一行:</P>
<P>/usr/local/httpd/bin/apachectl -k start</P>
<P>即使是这样,但是我们还是不方便管理httpd服务,我们能不能,像rpm安装那样使用service服务来管理httpd服务呢?<BR>答案是肯定的我们必须如下操作:</P>
<P>在 /etc/rc.d/init.d/下建立一个 httpd的文件,利用 chmod 755 httpd 使其具有执行能力。<BR>vi httpd 添加如下内容:</P>
<P>#!/bin/bash<BR># Startup script for the Apache Web Server<BR># chkconfig: 345 85 15<BR># description: Apache is a World Wide Web server.<BR># Source function library.<BR>. /etc/rc.d/init.d/functions</P>
<P><BR>if [ -f /etc/sysconfig/httpd ]; then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . /etc/sysconfig/httpd<BR>fi</P>
<P>INITLOG_ARGS=""</P>
<P>apachectl=/usr/local/apache2/bin/apachectl<BR>httpd=${HTTPD-/usr/local/apache2/bin/httpd}<BR>prog=httpd<BR>RETVAL=0</P>
<P>start() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -n $"Starting $prog: "<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; daemon $httpd $OPTIONS<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETVAL=$?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ $RETVAL = 0 ] &amp;&amp; touch /var/lock/subsys/httpd<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $RETVAL<BR>}<BR>stop() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -n $"Stopping $prog: "<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; killproc $httpd<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETVAL=$?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ $RETVAL = 0 ] &amp;&amp; rm -f /var/lock/subsys/httpd /var/run/httpd.pid<BR>}<BR>reload() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -n $"Reloading $prog: "<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; killproc $httpd -HUP<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETVAL=$?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo<BR>}</P>
<P>case "$1" in<BR>&nbsp;start)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start<BR>&nbsp;;;<BR>&nbsp;stop)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<BR>&nbsp;status)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status $httpd<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETVAL=$?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<BR>&nbsp;restart)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<BR>&nbsp;condrestart)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ -f /var/run/httpd.pid ] ; then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<BR>&nbsp;reload)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reload<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<BR>&nbsp;graceful|help|configtest|fullstatus)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $apachectl $@<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETVAL=$?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<BR>&nbsp;*)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $"Usage: $prog</P>
<P>{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit 1<BR>esac</P>
<P>exit $RETVAL</P>
<P>使用chkconfig -add httpd</P>
<P>chkconfig --level 2345 httpd on</P>
<P>这样httpd就可以利用 service httpd start|stop|restart命令来管理了,<BR>并且它在运行环境为2、3、4、5随系统启动。</P>
<P><BR>****************************************************************************</P>
<P><BR>2、apr和apr-util安装</P>
<P>cd /usr/local/httpd/srclib/apr<BR>./configure --prefix=/usr/local/apr-httpd/<BR>make<BR>make install</P>
<P>cd ../apr-util<BR>./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/<BR>make<BR>make install</P>
<P>apr是可移植运行库,主要为上层的应用程序提供一个可以跨越多操作系统<BR>平台使用的底层支持接口库,以后的配置中会用到它。</P>
<P><BR>****************************************************************************</P>
<P><BR>3、tomcat安装</P>
<P>我们要在官方下载二进制包,把下下来的二进制包解压</P>
<P>tar zxvf apache-tomcat.tar.gz<BR>mv apache-tomcat.tar.gz /usr/local/tomcat</P>
<P>这样就算完成了。</P>
<P><BR>*****************************************************************************<BR>4、安装jdk</P>
<P>把下下来的jdk-1.5.0.linux.bin的文件,在当前文件夹输入 ./jdk-1.5.0.linux-bin<BR>接下来会出现是否遵守协议的选项,你直接输入y就可以了,把解压出来的目录放到/usr/local下面<BR>mv jdk-1.5.0.linux.bin /usr/local/jdk<BR>这样java就已经转好了。</P>
<P><BR>******************************************************************************</P>
<P><BR>5、tomcat和java的连接<BR>首先我们添加环境变量<BR>vi /etc/profile<BR>export JAVA_HOME=/usr/local/jdk<BR>export PATH=$PATH:$JAVA_HOME/bin<BR>export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar<BR>export TOMCAT_HOME=/usr/local/tomcat<BR>export CATALINA_HOME=/usr/local/tomcat<BR>export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib<BR>使环境变量生效 source /etc/profile</P>
<P>Tomcat6.0开机启动脚本设置<BR>安装jsvc<BR>cd /usr/local/tomcat6/bin<BR>tar xvfz jsvc.tar.gz<BR>cd jsvc-src<BR>sh support/buildconf.sh<BR>如果成功,命令终端打印出下面report:<BR>support/buildconf.sh: configure script generated successfully<BR>chmod 755 configure<BR>./configure --with-java=/usr/local/jdk<BR>make<BR>cp /usr/local/tomcat6/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat<BR>到此,我们在/etc/init.d/下找到tomcat<BR>vi /etc/init.d/tomcat<BR>修改里面环境了变量的值:<BR>JAVA_HOME=jdk安装目录<BR>CATALINA_HOME=tomcat安装目录<BR>DAEMON_HOME=tomcat安装目录/bin<BR>TOMCAT_USER=root<BR>在文件的最开始添加以下语句<BR>#!/bin/bash<BR># Startup script for the tomcat Web Server<BR># chkconfig: 2345 85 15<BR># description: tomcat<BR># Source function library.<BR>. /etc/rc.d/init.d/functions</P>
<P>使用以下命令使tomcat文件有执行权限和随系统启动<BR>chmod 755 tomcat<BR>chkconfig -add tomcat</P>
<P>默认情况下按照好了Tomcat6,启动时会在 /usr/local/apache-tomcat6.0/logs/stdout.log 里出现下面的日志:</P>
<P>INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/diablo-jdk1.5.0/jre/lib/i386/client:/usr/local/diablo-jdk1.5.0/jre/lib/i386:/usr/local/diablo-jdk1.5.0/jre/../lib/i386:/usr/lib:/usr/local/lib</P>
<P>下面就来安装 tomcat-native<BR>cd /usr/local/tomcat/bin<BR>tar zxvf tomcat-native.tar.gz<BR>cd ./tomcat-native-1.1.10-src/jni/native/<BR>./configure –with-apr=/usr/local/apr-httpd<BR>make<BR>make install<BR>安装后多出一个目录 /usr/local/apr<BR>然后安装上面的提示操作一下就好了,我这里用的 link 的方式:<BR>ln -s /usr/local/apr/lib/libtcnative-1.so /usr/local/jdk/jre/lib/i386/libtcnative-1.so</P>
<P>再重启 tomcat,<BR>serice tomcat6 restart<BR>大功搞成,呵呵</P>
<P>************************************************************************************</P>
<P>6、安装jk</P>
<P>先解压jk,tar zxvf jk.xxx.tar.gz <BR>cd native<BR>./buildconf.sh<BR>chmod 755 configure<BR>./configure --with-apxs=/usr/local/httpd/bin/apxs<BR>make<BR>make install <BR>安装结束</P>
<P>************************************************************************************</P>
<P>三、整合apache和tomcat<BR>首先编辑apache的conf文件<BR>vi /usr/local/httpd/conf/httpd.conf<BR>在文件末尾添加如下行:<BR>LoadModule jk_module modules/mod_jk.so<BR>JkWorkersFile conf/workers.properties<BR>JkLogFile logs/mod_jk.log<BR>JkShmFile logs/jk-runtime-status<BR>JkLogLevel info<BR>JkMountfile conf/uriworkermap.properties<BR>JkMountCopy All<BR># 下面这个是jkstatus的加密处理<BR>&lt;Location /jkstatus&gt;<BR>&nbsp;JkMount jkstatus<BR>&nbsp;Order deny,allow<BR>&nbsp;AuthType Basic<BR>&nbsp;AuthName "jkstatus"<BR>&nbsp;AuthUserFile conf/jkpasswd<BR>&nbsp;require valid-user<BR>&lt;/Location&gt;</P>
<P>再在conf文件夹下添加一个wokers.properties文件<BR>cd /usr/local/httpd/conf<BR>touch workers.properties<BR>vi workers.properties</P>
<P>添加以下语句:</P>
<P>worker.list=local,jkstatus</P>
<P>worker.local.type=ajp13<BR>worker.local.host=localhost<BR>worker.local.port=8009<BR>worker.jkstatus.type=status</P>
<P>下面是对jkstatus监控页面配置用户和密码<BR>/usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/jkpasswd meijun1234<BR>passwd:<BR>reinput passwd:<BR>meijun1234是您的用户,输入两次你要设置的密码。</P>
<P>这样就算是整合完毕了。</P>
<P>四、建立实例站点<BR>我们配置tomcat是为了做虚拟机,为了和主的配置文件分离,我们在httpd.conf主配置添加一行<BR>Include conf.d/virtualhost.conf<BR>做这个前,您必须首先在httpd目录下建立目录和文件:conf.d/virtualhost.conf<BR>我们编辑这个文件<BR>vi ./conf.d/virtualhost.conf<BR>加入下列内容:<BR>NameVirtualHost *:80</P>
<P>&lt;Directory /var/www/html&gt;<BR>&nbsp;&nbsp;&nbsp; Options FollowSymLinks<BR>&nbsp;&nbsp;&nbsp; AllowOverride None<BR>&nbsp;&nbsp;&nbsp; Order deny,allow<BR>&nbsp;&nbsp;&nbsp; Allow&nbsp; from all<BR>&lt;/Directory&gt;</P>
<P>&lt;Directory /var/www/jsp&gt;<BR>&nbsp; Options FollowSymLinks<BR>&nbsp; AllowOverride None<BR>&nbsp; Order deny,allow<BR>&nbsp; Allow from all<BR>&lt;/Directory&gt;</P>
<P>&lt;VirtualHost *:80&gt;<BR>&nbsp; DocumentRoot /usr/local/apache2/htdocs<BR>&nbsp; ServerName localhost<BR>&nbsp; ErrorLog logs/default/error.log<BR>&nbsp; TransferLog logs/default/transfer.log<BR>&lt;/VirtualHost&gt;</P>
<P>&lt;VirtualHost *:80&gt;<BR>&nbsp; DocumentRoot /var/www/html<BR>&nbsp; ServerName html.jsp.com<BR>&nbsp; ServerAlias test.jsp.com<BR>&nbsp; ErrorLog logs/html/error.log<BR>&nbsp; TransferLog logs/html/transfer.log<BR>&lt;/VirtualHost&gt;</P>
<P>&lt;VirtualHost *:80&gt;<BR>&nbsp; DocumentRoot /var/www/jsp<BR>&nbsp; ServerName <A href="http://www.jsp.com">www.jsp.com</A><BR>&lt;/VirtualHost&gt;<BR>再编辑:/usr/local/tomcat/conf/server.xml<BR>在&lt;Service&gt;和&lt;Engine&gt;内重新添加一个&lt;Host&gt;<BR>如下:</P>
<P>&lt;Host name="<A href="http://www.jsp.com">www.jsp.com</A>" appBase="" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unpackWARs="true" autoDeploy="true" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlValidation="false" xmlNamespaceAware="false"&gt;<BR>&nbsp; &lt;Context path="" docBase="/var/www/jsp" /&gt;<BR>&lt;/Host&gt;<BR>重启httpd和tomcat</P>
<P>在你在浏览器访问的时候必须在hosts文件里把<A href="http://www.jsp.com">www.jsp.com</A>指向您的服务器,否着它会找不到服务器,还要在/var/www/里面建立<BR>jsp文件夹,在jsp文件夹里放入一个测试用的jsp程序</P>
<P>您一切工作都做好了,在地址栏输入<A href="http://www.jsp.com">http://www.jsp.com</A>能够看到您的测试页面,在<A href="http://www.jsp.com/jkstatus">http://www.jsp.com/jkstatus</A>,能看到你jk连接器的状况,这个jk连接器的web管理页面是mod_jk.so自带的一个功能。</P>
<P>&nbsp;</P>
<DIV></DIV>
页: [1]
查看完整版本: contos5下apache和tomcat整合