Apache+tomcat 安装集成手册
Red Hat Enterprise Linux ES release 4
i386
httpd-2.2.8.tar
apache-tomcat-6.0.16.tar.gz
jdk-1_5_0-linux-i586-rpm.bin
mod_jk-1.2.27-httpd-2.2.6.so
安装目录:/usr/webapps/apache2
1) 将httpd-2.2.8.tar 拷贝到 /usr/webapps 下,运行命令,cd /usr/webapps
2) 解压,运行命令 tar xvf httpd-2.2.8.tar
3) 运行命令 cd httpd-2.2.8
4) 编译,运行命令 ./configure --prefix=/usr/webapps/apache2 --enable-so --enable-mods-shared=all --enable-rewrite --enable-cache
5) 安装,运行命令 make
6) 安装,运行命令 make install
7) 更改端口,可选操作,步骤见5.1
8) 测试,依次运行命令
cd /usr/webapps/apache2/bin
./apachectl start
访问服务器(http://localhost:7080 ),出现 It Works! 字样,说明apache 安装成功。
9) 设置自启动,这时不成功可另外写一个启动脚本
修改bin/ apachectl
在文件的#!/bin/sh 下面加上以下2 句话:
#chkconfig :345 80 80
#description : Apache
cd /etc/rc.d/init.d
ln -s /usr/webapps/apache/bin/apachectl httpd
chkconfig --add httpd
安装目录: /usr/java
1) 以 root 用户登录系统
2) 将安装程序拷贝到安装目录,切换到安装目录,执行命令 chmod +x jdk-1_5_0-linux-i586-rpm.bin ,增加可执行权限
3) 执行命令 ./ jdk-1_5_0-linux-i586-rpm.bin ,一路回车,在协议确定的地方输入 yes ,回车
4) 设置环境变量,修改文件 /etc/profile ,在
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
下面加入下面两句话:
JAVA_HOME=/usr/java/jdk1.5.0
PATH=$JAVA_HOME/bin:$PATH
在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC 末尾加上 JAVA_HOME
5 )重新登录
5) 测试安装,执行命令 java –version ,能查看到 jdk 版本说明安装成功
安装目录:/usr/webapps/tomcat-ccc023
1) 将apache-tomcat-6.0.16.tar.gz 拷贝到 /usr/webapps 下,运行命令,cd /usr/webapps
2) 解压,运行命令tar zxvf apache-tomcat-6.0.16.tar.gz
3) 更改端口,可选步骤,操作见5.3
4) 更改目录名称,可选步骤
5) 公司网站的字符集都是utf-8, 需要将tomcat 的字符集修改为utf-8, 形如:
<Connector port="6080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding ="utf-8" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
mod_jk 的字符集也改成UTF-8, 形如:
<Connector port="6081" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
6) 为了节约资源损耗,可将/usr/webapps/tomcat-ccc023/webapps 目录下的目录全部删除(docs 、examples 、host-manager 、manager 、ROOT )
7) 修改logging.properties ,将不需要的日志文件屏蔽,修改日志存放路径,可选步骤
8) 测试,依次运行命令
cd /usr/webapps/tomcat-ccc023/bin
./startup.sh 或 ./catalina.sh start
访问服务器(http://localhost :8080) ,出现以下界面表示tomcat 安装成功
9) 修改PG 大小,参考http://www.blogjava.net/allen-zhe/archive/2007/12/18/168556.html ,暂时设置为256 、1024
在192 行加上:JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=256M -XX:MaxPermSize=1024m"
10) 将tomcat 设置为开机自启动
修改bin/catalina.sh
在文件的#!/bin/sh 下面加上以下2 句话:
#chkconfig :345 80 80
#description :Tomcat CCC5188
在# OS specific support. $var _must_ be set to either true or false.75 行下面加上:
JAVA_HOME=/usr/java/jdk1.5.0
如果启动用户非root 用户,则需要先创建脚本 修改为可执行文件 指定启动用户:目录暂定为/usr/local/bin
例:
#!/bin/sh
#chkconfig: 345 80 80
#description: ccc5151
su - ccc5151 -c "/usr/webapps/tomcat-ccc5151/bin/catalina.sh $1"
一次运行一下命令创建自启动服务:
cd /etc/init.d/
ln -s /usr/local/bin/tomcat-5151.sh ccc5151d
chkconfig --add ccc5151d
重启服务器,测试tomcat 有没有自动启动
11) 设置定时重启,以每周重启一次为例
在/etc/cron.weekly 目录下创建脚本
restartTomcat.sh 修改为可执行文件
例:
#!/bin/sh
date >> /tmp/tomcat-reboot.log
echo "stop tomcat service" >> /tmp/tomcat-reboot.log
/etc/init.d/ccc5188d stop >> /tmp/tomcat-reboot.log
/etc/init.d/ccc680d stop >> /tmp/tomcat-reboot.log
sleep 40
killall -KILL /usr/java/jdk1.5.0/bin/java
cat > /usr/webapps/tomcat-ccc5151/logs/catalina.out &
cat > /usr/webapps/tomcat-ccc680/logs/catalina.out &
cat > /usr/webapps/tomcat-ccc5188/logs/catalina.out &
/etc/init.d/ccc5188d start>> /tmp/tomcat-reboot.log
/etc/init.d/ccc680d start>> /tmp/tomcat-reboot.log
sleep 40
date >> /tmp/tomcat-reboot.log
echo "start tomcat service" >> /tmp/tomcat-reboot.log
echo "-----------------------" >> /tmp/tomcat-reboot.log
12) 修改 每个用户允许打开的最大文件数
在系统文件 /etc/security/limits.conf 中修改这个数量限制,
在文件中加入内容:
* soft nofile 65535
* hard nofile 65535
选用jk2 完成apache 和tomcat 间通讯。
1 )将mod_jk-1.2.27-httpd-2.2.6.so 拷贝到/usr/webapps/apache2/modules 目录
2 ) 在 /usr/webapps/apache2 /conf/ 下面建立两个配置文件 mod_jk.conf 和 workers.properties 。具体内容参见文件
3) 增加关于加载 mod_jk 的语句 , 打开/usr/webapps/apache2 /conf/ 目录下的httpd.conf 文件, 在<IfModule !mpm_netware_module> 标签内增加下面两句:
LoadModule jk_module modules/mod_jk-1.2.27-httpd-2.2.6.so
Include conf/mod_jk.conf
4 )修改apache 主目录,打开/usr/webapps/apache2 /conf/ 目录下的httpd.conf 文件
将<Directory "/usr/webapps/apache2/htdocs"> 改成<Directory "/usr/webapps/tomcat-ccc023/webapps">
将 DocumentRoot "/usr/webapps/apache2/htdocs" 改成DocumentRoot "/usr/webapps/tomcat-ccc023/webapps"
5 )重启apache
6 )测试,访问服务器(http://localhost ) ,出现以下界面表示集成成功
1) 打开/usr/webapps/apache2 /conf/ 目录下的httpd.conf 文件
将LoadModule rewrite_module modules/mod_rewrite.so 前面的# 号去掉,没有这一句则加上
将Include conf/extra/httpd-vhosts.conf 前面的# 号去掉
2) 修改httpd-vhosts.conf 的内容,具体见文件
3) 重启apache ,按集成测试方法测试
4) 配置虚拟目录
如果只想把jsp 、shtml 等动态页面部分交给tomcat 管理,图片、html 页面等由apache 响应的话,就需要配置虚拟主机,据说用apache 可以提高并发数和访问效率,此说法是否正确还有待验证。
Alias /images "D:/workspace/ECardShop/war/images" [MSOffice1]
<Directory "D:/workspace"> [MSOffice2]
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
5) 修改apache 默认页面
打开httpd.conf ,将
<IfModule dir_module>
DirectoryIndex temp.jsp index.jsp index.html
</IfModule>
改成你希望的值,apache 安装默认的是index.html
1 ) cd /usr/webapps
2) rm -rf apache2
3) rm -rf httpd-2.2.8
4) 删除httpd-2.2.8.tar
1) 切换到 /user/java 目录,执行命令 rpm -qa|grep jdk
显示: jdk-1.5.0-fcs
2) 执行命令 rpm -e --nodeps jdk-1.5.0-fcs
3) 执行命令 rpm -qa|grep jdk ,无显示结果
4) 设置环境变量,修改文件 /etc/profile ,删除
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
下面两句话:
JAVA_HOME=/usr/java/jdk1.5.0
PATH=$JAVA_HOME/bin:$PATH
在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME 末尾去掉 JAVA_HOME
5) 删除安装文件
直接删除安装目录及安装文件。
打开conf 目录下的httpd.conf 文件,将Listen 80 改成你需要的端口,如 Listen 7080 ,重启apache 即可。
1 )cd /usr/ webapps/httpd-2.2.8/modules/mappers
可通过find . -name mod_rewrite.c 在apache 的源码安装目录中寻找mod_rewrite.c 文件
2 )/usr/ webapps/apache2/bin/apxs -c mod_rewrite.c
apxs 应指定绝对路径,在你当前正在使用apache 的bin 目录里
3 )/usr/soft/apache2/bin/apxs -i -a -n mod_rewrite mod_rewrite.la
4 )查看/usr/ webapps/apache2/modules 目录,增加了mod_rewrite.so 文件说明成功
打开conf 目录下的server.xml 文件,将端口改成你需要的端口。
Server 端口: <Server port="6001 [MSOffice3] " shutdown="SHUTDOWN">
HTTP 端口:<Connector port="6002 [MSOffice4] " protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
AJP 端口:<Connector port="6003 [MSOffice5] " protocol="AJP/1.3" redirectPort="8443" />
打开conf 目录下的server.xml 文件, 将host 标签改成:
<Host name="localhost" appBase="" [MSOffice6]
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="webapps/vedio [MSOffice7] " debug="5" reloadable="false" crossContext="true">
</Context>
</Host>
修改/usr/webapps/apache2/conf 下的workers.properties ,
worker.list 增加一个tomcat 句柄。
cd /usr/webapps/tomcat-ccc023/bin
./shutdown.sh 或 ./catalina.sh stop
可以用 ps –ef|grep java 查看运行进程,没有形如
root 13516 [MSOffice8] 1 99 09:35 pts/0 00:00:10 /usr/java/jdk1.5.0_16/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/webapps/tomcat-ccc023 /conf/logging.properties -Djava.endorsed.dirs=/usr/webapps/tomcat-ccc023/endorsed -classpath :/usr/webapps/tomcat-ccc023/bin/bootstrap.jar -Dcatalina.base=/usr/webapps/tomcat-ccc023 -Dcatalina.home=/usr/webapps/tomcat-ccc023 -Djava.io.tmpdir=/usr/webapps/tomcat-ccc023/temp org.apache.catalina.startup.Bootstrap start
的进程说明服务已停止,
上述停止命令不能停止服务时可以用下面的命令强行中止进程,kill -9 13516 [MSOffice9]
cd /usr/webapps/tomcat-ccc023/bin
./startup.sh 或 ./catalina.sh start
4.8 增加https 支持
1) 将mod_ssl.so 拷到modules 目录。
2) 将LoadModule ssl_module modules/mod_ssl.so 前面的# 去掉,没有则增加
3) 将Include conf/extra/httpd-ssl.conf 前面的# 去掉
4) 将server.key 、server.cer 拷到conf 目录
5) 参照例子配虚拟主机
[MSOffice1] 配置虚拟目录的例子
[MSOffice2] 以下赋予对应目录的访问权限
[MSOffice3] 改成需要的端口
[MSOffice4] 外部访问 tomcat 的端口
[MSOffice5] 与 apache 通讯的端口
[MSOffice7] 默认项目的存放路径
[MSOffice8] 进程 id
[MSOffice9] 进程 id