APACHE2.2.0+tomcat5.5.12+jk1.2.15
软件环境:
apache httpd-2.2.0.tar.gz
apr-1.2.2.tar.tar
apr-util-1.2.2.tar.tar
jdk-1_5_0_05-linux-i586.bin
jakarta-tomcat-connectors-1.2.15-src.tar.gz
apache-tomcat-5.5.12.tar.gz
软件说明:apache2.2.0是目前较新的版本。和apache2.0版本比较,它首先需要安装 apr-1.2.2.tar.tar和 apr-util-1.2.2.tar.tar
才能正常的运行。安装之前解压软件包。进入源代码包,先阅读,readme.txt,里面有安装说明。
安装:apr-1.2.2和apr-util-1.2.2
# Build and install apr 1.2
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install
# Build and install apr-util 1.2
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install
# Configure httpd
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/
二.apache安装
1../configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-so
#make
#make install
2.查看编译进apache的模块:
[root@localhost root]#cd /usr/local/httpd2/bin
[root@localhost bin]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
(说明:看到mod_so.c这个模块,就说明能支持DSO。)
3.在配置文件中加入要监听的ip和端口。
#cd /usr/local/apache2/conf
#vi httpd.conf
32 # Listen: Allows you to bind Apache to specific IP addresses and/or
33 # ports, instead of the default. See also the <VirtualHost>
34 # directive.
35 #
36 # Change this to Listen on specific IP addresses as shown below to
37 # prevent Apache from glomming onto all bound IP addresses.
38 #
39 #Listen 12.34.56.78:80
40 Listen 192.168.10.2:80(这就是我们要加入的内容)
41
4.测试apache
#cd /usr/local/apache2/bin
#./apachectl start
现在在ie里输入ip就可以显示apache默认的主页了。
三.
1.装jdk
[root@localhost home]# ./jdk-1_5_0_05-linux-i586.bin
生成目录:jdk1.5.0_05
在/usr/创建目录,java
将该文件移动到/usr/local/java 目录下
测试java环境是否建立:
[root@host1 jdk1.5.0_05]# ls
bin COPYRIGHT demo include jre lib LICENSE man README.html sample src.zip
[root@localhost bin]# ./java –version
[root@host1 bin]# ./java -version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode)
显示版本,说明java环境建立成功!
(注意:tomcat5.5的必须有jdk1.5这个版本支持)
四.安装tomcat
1.[root@localhost root]#tar zxvf jakarta-tomcat-5.1.12.tar.gz /home (指定安装到/home目录下)
[root@localhost root]#mv jakarta-tomcat-5.1.12 tomcat (换个文件名)
启动关闭服务文件放在 /home/tomcat/bin
配置文件 /home/tomcat/conf
web文件 /home/tomcat/webapps
默认访问目录 /home/tomcat/webapps/ROOT
2.设置环境变量,
在/etc/profile中末尾加入:
export JAVA_HOME=/home/jdk1.5.0_05
export TOMCAT_HOME=/home/tomcat
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3.启动与关闭服务:
#cd /home/tomcat/bin
#./startup.sh (关闭服务:#./shutdown.sh)
5.测试:http://192.168.10.2:8080/
(注:ROOT目录下面必须有WEB-INF这个目录,否则将无法访问该页面。
该目录下有两个文件:lib web.xml
这是web.xml的内容:
[root@host1 WEB-INF]# vi web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Web Application</display-name>
<description>Uniprint</description>
</web-app>
~
Lib下的文件:
[root@host1 WEB-INF]# cd lib
[root@host1 lib]# ls
activation.jar commons-digester.jar commons-pool.jar jdbc2_0-stdext.jar mail.jar
commons-beanutils.jar commons-fileupload.jar commons-services.jar jdbc7.1-1.3.jar servlet.jar
commons-collections.jar commons-lang.jar commons-validator.jar jdom.jar taglibs-i18n.jar
commons-dbcp.jar commons-logging.jar jcommon-0.9.5.jar jfreechart-0.9.20.jar
五.安装jakarta-tomcat-connectors-1.2.15-src,生成mod_jk.so文件。
1.安装jakarta-tomcat-connectors-1.2.15-src.tar.gz
参考文档:http://www.redflag-linux.com/phorumredflag/phorumredflag/read.php?15,100143
进行安装,具体过程如下:
root@localhost native]#tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
生成原文件: jakarta-tomcat-connectors-1.2.15-src
[root@localhost home]# cd jakarta-tomcat-connectors-1.2.15-src
[root@localhost jakarta-tomcat-connectors-1.2.15-src]#
[root@localhost jakarta-tomcat-connectors-1.2.15-src]# cd jk
[root@localhost jk]# cd native
root@localhost native]#./configure --with-apxs=/usr/local/apache2/bin/apxs
[root@localhost native]#make
[root@localhost native]#make install
[root@localhost native]#cd apache-2.0/
[root@localhost apache-2.0]#ls
mod_jk.so
(mod_jk.so会自动被复制到 /usr/local/apache2/modules目录下)
六.整和apache与tomcat(具体参考apache的官方网站)
编辑apache的配置文件/etc/httpd/conf/httpd.conf,在文件末尾添加如下内容:
#ad mod_jk module
LoadModule jk_module modules/mod_jk.so
# Update this path to match your modules location
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /usr/local/apache2/workers.properties
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile /usr/local/apache2/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"
# Send everything for context /examples to worker named worker1 (ajp13)
JkMount /*.jsp worker1
新建此文件/etc/httpd/conf/workers.properties 添加如下内容:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
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.reclycle_timeout=300
七.建立基于name的虚拟主机:
对httpd.conf进行一些设置:
1.注释以下三行:
#ServerAdmin
#ServerName
#DocumentRoot
2.指定要访问站点的主目录(主目录下面放的是我们建立虚拟站点的子目录,我们的站点目录都放在/var/www下,这一步很重要)
具体设置:
179 <Directory "/var/www">
180 #
181 # Possible values for the Options directive are "None", "All",
182 # or any combination of:
183 # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
184 #
185 # Note that "MultiViews" must be named *explicitly* --- "Options All"
186 # doesn't give it to you.
187 #
188 # The Options directive is both complicated and important. Please see
189 # http://httpd.apache.org/docs/2.2/mod/core.html#options
190 # for more information.
191 #
192 # Options Indexes FollowSymLinks
193
194 #
195 # AllowOverride controls what directives may be placed in .htaccess files.
196 # It can be "All", "None", or any combination of the keywords:
197 # Options FileInfo AuthConfig Limit
198 #
199 AllowOverride None
200
201 #
202 # Controls who can get stuff from this server.
203 #
204 Order allow,deny
205 Allow from all
206
207 </Directory>
208
3.指定虚拟主机配置文件
440 #Virtual hosts
441 #Include conf/extra/httpd-vhosts.conf
将441行的注释去掉,就可以拉。
4.进入/conf/extra
[root@host1 extra]#vi httpd-vhosts.conf
(释掉原来的example(我是这么做的)
参照example我们就可以添加vhosts了。)
以下是我添加:
NameVirtualHost 192.168.10.2:80
<VirtualHost 192.168.10.2:80>
<Directory "/var/www/lazy1">
DirectoryIndex index.htm index.html index.jsp
</Directory>
ServerAdmin [email]lazy_bug@126.com[/email]
DocumentRoot /var/www/lazy1
ServerName lazy1.bug.com
ServerAlias html
ErrorLog logs/ lazy1.bug.com-error_log
CustomLog logs/lazy1.bug.com--access_log common
</VirtualHost>
<VirtualHost 192.168.10.2:80>
<Directory "/var/www/lazy2" >
DirectoryIndex index.htm index.html index.jsp
</Directory>
ServerAdmin [email]lazy_bug@126.com[/email]
DocumentRoot /var/www/lazy2
ServerName lazy2.bug.com
ServerAlias unisis
ErrorLog logs/lazy2.bug.com-error_log
CustomLog logs/lazy2.bug.com-access_log common
</VirtualHost>
测试虚拟主机配置是否生效:
#cd /usr/local/apache2/bin
[root@host1 bin]# ./httpd -S
VirtualHost configuration:
Syntax OK
(说明配置没有问题)
将我们的站点的web文件,放到上面所设置的目录下,启动apache和tomcat,
在ie里输入我们要访问的域名,也就是我们上面设置的Servername。
说明:测试机器没有做dns,域名解析是通过在测试机和客户机的hosts文件内加入域名和ip对应内容来实现的。
现在可以做多个虚拟机.挂多个jsp或html站点了!!呵呵
[ 本帖最后由 HonestQiao 于 2005-12-16 09:11 编辑 ]
viral 回复于:2005-12-16 23:43:40
好贴子,刚装完4.18的TOMCAT,又要升级了,呵呵
Kenbaby 回复于:2005-12-17 12:41:12
我只能说很搞笑,难道楼主不知道2.2.0里面最大的变化就是增加了proxy-ajp专门供tomcat使用么?
lazy_bug 回复于:2005-12-17 14:08:43
引用:原帖由 Kenbaby 于 2005-12-17 12:41 发表
我只能说很搞笑,难道楼主不知道2.2.0里面最大的变化就是增加了proxy-ajp专门供tomcat使用么?
测试中........... 论坛里有这么一篇文章,很不错的,可是小弟是个菜鸟对proxy-模块不理解,在学习中,
如果楼上的能写出篇具体点的,小菜我感激啊!!大家也感激啊!!
[ 本帖最后由 lazy_bug 于 2005-12-17 14:13 编辑 ]
Kenbaby 回复于:2005-12-18 13:24:13
Very simple,仅仅三行配置,搞定二者的整合,我好像记得之前已经有人写了怎么配置的帖子了。
http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html
The AJP proxy is a new module based on the standard Http proxy it uses AJP instead of HTTP.
<Location /examples/>
ProxyPass ajp://localhost:8009/examples/
</Location>
----------------------------------------------------
而且可以很轻易的进行负载均衡,简直TMD很完美,squid到底还有用武之地?
AJP proxy and proxy balancer
It is possible to use the load balancer of the mod_proxy_balancer module.
<Proxy balancer://myCluster>
BalancerMember ajp://localhost:8009
BalancerMember ajp://example.org:8009
</Proxy>
<Location /examples/>
ProxyPass balancer://myCluster/examples/
</Location>
jeffyan 回复于:2005-12-20 17:11:31
引用:原帖由 Kenbaby 于 2005-12-18 13:24 发表
Very simple,仅仅三行配置,搞定二者的整合,我好像记得之前已经有人写了怎么配置的帖子了。
http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html
The AJP proxy is a new module based o ...
squid 还有更大的用途,就是做cache ,应用不同
菲平 回复于:2005-12-23 11:11:53
引用:原帖由 Kenbaby 于 2005-12-18 13:24 发表
Very simple,仅仅三行配置,搞定二者的整合,我好像记得之前已经有人写了怎么配置的帖子了。
http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html
The AJP proxy is a new module based o ...
有了这个坚决决定用2。2了
jsean 回复于:2005-12-24 13:29:51
顶!好贴。
看样子我也要用2.2了
loveKDE 回复于:2005-12-24 19:53:18
squid的机器要求好高哦.做缓存的话.
Kenbaby 回复于:2005-12-31 12:02:02
引用:原帖由 jeffyan 于 2005-12-20 17:11 发表
squid 还有更大的用途,就是做cache ,应用不同
那么我想,你肯定还没用过apache2.2.0的proxy和cache结合
Sample httpd.conf
#
# Sample Cache Configuration
#
<IfModule mod_cache.c>
<IfModule mod_disk_cache.c>
CacheRoot /usr/local/httpd/cache
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>
# When acting as a proxy, don't cache the list of security updates
CacheDisable http://security.update.server/update-list/
</IfModule>
nbm0 回复于:2005-12-31 16:04:44
顶!
无心细语 回复于:2006-01-04 14:59:08
谢谢楼主~!
辛苦啦~!
caojiqun 回复于:2006-01-04 19:15:17
LZ确实辛苦了!
看了这个帖子试着安装apache 2.2.0 (Solaris Sparc 9), 安装apr和apr-util这两步似乎没必要,没做。
另外,用proxy-ajp整合Tomcat真是简单,建议大家都忘掉jk或jk2吧!!!
还有一点就是一定要用GNU sed而不能用系统自带的,可能这一点对linux系统不是问题。
jhsea3do 回复于:2006-01-04 19:38:34
引用:还有一点就是一定要用GNU sed而不能用系统自带的....
你是说在win32下编译吧
我已经开始学习使用了2.2了....
caojiqun 回复于:2006-01-04 20:06:06
引用:原帖由 jhsea3do 于 2006-1-4 19:38 发表
你是说在win32下编译吧
我已经开始学习使用了2.2了....
win32有sed吗?!
不好意思,我还真不知道怎么在win32下编译。
jhsea3do 回复于:2006-01-04 22:27:59
呵呵,我到没注意看你说的是solaris
我在win32下编译过一次, 那次主要是为了编译mod_ssl和mod_python
用的是msvc60,一切都按照manual中的说明操作的,不过前面我说话的时候我的确说错了,替换的是awk.exe, 而不是sed.exe
maquanjun 回复于:2006-01-05 13:12:26
apache的cache和proxy的mod很早就有,就是性能不如squid
2.2.0的性能有很大改变吗?能不能提供点资料?
引用:原帖由 Kenbaby 于 2005-12-31 12:02 发表
那么我想,你肯定还没用过apache2.2.0的proxy和cache结合
Sample httpd.conf
#
# Sample Cache Configuration
#
<IfModule mod_cache.c>
<IfModule mod_disk_cache.c>
CacheRoot /u ...
jato 回复于:2006-03-16 12:31:24
引用:原帖由 caojiqun 于 2006-1-4 19:15 发表
LZ确实辛苦了!
看了这个帖子试着安装apache 2.2.0 (Solaris Sparc 9), 安装apr和apr-util这两步似乎没必要,没做。
另外,用proxy-ajp整合Tomcat真是简单,建议大家都忘掉jk或jk2吧!!!
还有一点就是一定要用GN ...
安装apr和apr-util是没有必要, apache 2.2.0 源码包里面带有 apr 和 apr-util
在linux上 sed 不是问题 :)
mageguoshi 回复于:2006-03-16 14:28:46
引用:原帖由 Kenbaby 于 2005-12-17 12:41 发表
我只能说很搞笑,难道楼主不知道2.2.0里面最大的变化就是增加了proxy-ajp专门供tomcat使用么?
似乎proxy-ajp不支持通配符。假如我要把某个目录下的 *.jsp,*.jsps 等等交给tomcat解析,而apache本身负责解析静态页面,请问改如何配置?
qmailer 回复于:2006-03-16 22:30:01
引用:原帖由 Kenbaby 于 2005-12-17 12:41 发表
我只能说很搞笑,难道楼主不知道2.2.0里面最大的变化就是增加了proxy-ajp专门供tomcat使用么?
具体说一下......
Ahdong 回复于:2006-03-19 10:30:08
收到,但是APACHE2.2的虚拟主机还是不能正常使用。望指教~~
lazy_bug 回复于:2006-03-20 13:39:45
apache22虚拟机配置文件是独立出来的,防在 extral 目录下, 你先把httpd.conf里起用虚拟机那行的注释去掉,具体是那行,我的文档中写了。有什么问题大家在交流交流,大家的环境不一样,文档只能做为参考。
qmailer 回复于:2006-03-20 14:22:11
引用:另外,用proxy-ajp整合Tomcat真是简单,建议大家都忘掉jk或jk2吧!!!
[color=Red]这是个什么东东?[/color]
lazy_bug 回复于:2006-03-20 16:29:14
引用:原帖由 qmailer 于 2006-3-20 14:22 发表
[color=Red]这是个什么东东?[/color]
:lol::em02::em11:
是啊 偶也不用这个拉,偶是看着潭子里的前辈们的帖子入的门,自己整和了点东东,本来也没必要发的,只是觉的拿论坛里的好东东太多拉,自己又没什么东西可以拿出来的,所以,把这个东东贴出来了,呵呵!!
当然 高手们不用看,呵呵! 浪费哥们时间了,不好意思!!
jp1234 回复于:2006-04-03 15:10:55
如果使用代理模块 ,是否 就是所有的请求apache都会给tomcat ,这种情况下php程序(如论坛等)能工作正常吗?
thesecondbull 回复于:2006-04-05 23:13:19
楼住,我按你上面说的配了,但是:
[root@hxsms bin]# ./httpd -S
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
VirtualHost configuration:
127.0.0.1:80 is a NameVirtualHost
default server sms.cityyouth.cn (/usr/local/apache2/conf/extra/httpd-vhosts.conf:2)
port 80 namevhost sms.cityyouth.cn (/usr/local/apache2/conf/extra/httpd-vhosts.conf:2)
Syntax OK
然后启动的时候:
[root@hxsms bin]# apachectl start
Syntax error on line 1041 of /etc/httpd/conf/httpd.conf:
Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: cannot open shared object file: No such file or directory
我很奇怪了,你上面说道要在/etc/httpd/conf/httpd.conf里写 “LoadModule jk_module modules/mod_jk.so”
但是,你在生成了mod_jk的时候又要: “(mod_jk.so会自动被复制到 /usr/local/apache2/modules目录下)”
这好象是矛盾的吧????
还有“新建此文件/etc/httpd/conf/workers.properties 添加如下内容:......”
然后/etc/httpd/conf/httpd.conf里面又加了:JkWorkersFile /usr/local/apache2/workers.properties
我不知道楼住是怎么就配置成功了,这里只是我的一点疑问????
[ 本帖最后由 thesecondbull 于 2006-4-5 23:20 编辑 ]
lazy_bug 回复于:2006-04-11 14:13:36
只能部分参考,当时都是东看西看的,然后自己在机器上测试出来的, 因为本人也是菜鸟!!
贴,, 只能参考,参看,英文好的话,建议去看英文文档案,有时间我在继续测试!!
有错误的地方大家指出!! 非常感谢!!
xxjoyjn 回复于:2006-06-15 15:56:43
LZ得这个帖子确实不错,支持一下!
|