编译开源软件手记之3--Apache+tomcat整合

很纳闷,很久以前我就试图吧apache和tomcat整合在一起,网上有很多的文章介绍整合过程,本是很简单的过程,但一直都没有成功。

我是在Ubuntu下,所以是用apt-get方式安装的apache和mod_jk,但是这样的方式不管我怎么配置都不能成功,不知道其他朋友怎么样,有没有用apt-get安装apache和mod_jk并且配置成功的,请指点一二。

 

不过我今天尝试了自己编译apache和mod_jk来整合,很顺利。

 

主要参考:《apacheubuntu 下 apache+tomcat整合_(mod-jk方法)》

 

以下记录下过程:

 

1. 先准备好所需安装文件和源代码

下载最新的源代码httpd(就是apache2)和tomcat-connectors

还有到oracle网站上下载jdk6.bin

还有tomcat最新版tomcat7.tar.gz

 

2. 安装jdk

sudo mkdir /usr/lib/jvm

cd /usr/lib/jvm

sudo mv JDK_DOWNLOAD_PATH/xxx.jdk6.bin ./

sudo chmod +x xxx.jdk6.bin

sudo ./xxx.jdk.bin

sudo ln -s xxx-jdk6 jdk6

 

sudo vim /etc/profile#添加以下代码

export JAVA_HOME=/usr/lib/jvm/jdk6

 

再修改/etc/enviroment

添加$JAVA_HOME/bin 到path后面

 

再执行一下/etc/profile和/etc/enviroment

sudo source /etc/profile

sudo source /etc/enviroment

 

3.安装tomcat和启动测试

cd /usr/share

sudo wget tar xf TOMCAT_DOWNLOAD_PATH/tomcat.tar.gz

sudo ln -s apache-tomcat-7 tomcat7

运行以下试试

sudo /usr/share/tomcat7/bin/startup.sh

如果提示没有设置JAVA_HOME(我这里就是,不明白为什么),那么可以在startup.sh里添加JAVA_HOME变量的值

sudo vim /usr/share/tomcat7/bin/startup.sh

添加

export JAVA_HOME=/usr/lib/jvm/jdk6

现在再启动应该就没问题了。

 

4.  编译和安装httpd

cd /usr/local/src

sudo tar xf HTTPD_DOWNLOAD_PATH/httpd.tar.gz

cd httpd-2.2.xxx

sudo mkdir /usr/local/apach2

sudo ./configure --prefix=/usr/local/apache2 --enable-so

sudo make

sudo make install

 

5. 基本配置httpd
cd /usr/local/apache2/conf/
sudo cp http.conf http.conf.bak
sudo vim http.conf

ServerName 配置为 127.0.0.1:80,服务器IP或域名
DirectoryIndex 中添加index.htm index.jsp

 

启动apache

/usr/local/apache2/bin/apachectl start
访问:http://127.0.0.1/
看到 It works!
这个测试成功的界面。

 

6. 编译和安装tomcat-connector

cd /usr/local/src

sudo tar xf TOMCAT-CONNECTOR_DOWNLOAD_PATH/tomcat-connector-xxx.tar.gz

cd tomcat-connector-xxx-src

cd native

sudo ./configure --with-apxs=/usr/local/apache2/bin/apxs  --with-java-home=/usr/lib/jvm/jdk6

sudo make

sudo make install 居然成功了

注:此时可以看到打印信息,程序已经将mod_jk.o拷贝到apache目录下,所以不用我们再管了

 

7. 最终要的一步,对以上这些软件的配置

在/usr/local/apache2/conf/下面建立两个配置文件mod_jk.confworkers.properties
sudo  vim mod_jk.conf
添加以下代码:
# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties

# Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicate to send SSL KEY SIZE,
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/*  worker1
JkMount /*.jsp worker1


sudo vim workers.properties
添加以下代码:
# Defining a worker named worker1 and of type ajp13
worker.list=worker1

# Set properties for worker1
worker.worker1.type=ajp13 
worker.worker1.host=localhost 
worker.worker1.port=8009
worker.worker1.lbfactor=50 
worker.worker1.cachesize=10 
worker.worker1.cache_timeout=600 
worker.worker1.socket_keepalive=1 
worker.worker1.socket_timeout=300



再配置httpd.conf,作以下修改:
Listen 80 修改为 Listen 127.0.0.1:80
ServerName 修改为 ServerName localhost:80

我的网页放在/var/www下,所以要修改DocumentRoot
添加代码:
DocumentRoot "/var/www"
<Directory "/var/wwwroot">
    Options Includes FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
    XBitHack on
</Directory>


#加载mod_jk
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf


最后编辑Tomcat的配置文件server.xml,在<Host段中加入:
<Context path="" docBase="/var/www" debug="0" reloadable="true" crossContext="true"/>

 

在/var/www下建立一个测试的jsp页面

sudo vim /var/www/test.jsp

加入代码

Hello, <%= new String("Tomcat and Apache Http Server") %>!

 

重新启动tomcat和apache

sudo /usr/share/tomcat7/bin/shutdown.sh

sudo /usr/share/tomcat7/bin/startup.sh

sudo /usr/local/apache2/bin/apachetl stop

sudo /usr/local/apache2/bin/apachetl start

访问http://localhost/test.jsp

 

出现

Hello, Tomcat and Apache Http Server!

 

配置完成。

 

希望你也跟我一样顺利!

 

本人新博客:tuoxie.me

你可能感兴趣的:(apache,jvm,tomcat,软件测试,vim)