内容摘要
本文档根据ITS系统的需要在RedHat linux7.3上搭建Apache+Resin+MySQL的环境。用
Apache作为Web服务器,Resin作为JSP/Servlet引擎,MySQL作为后台数据库。
目 录
1.概述3
1.1.文档修改记录3
1.2.文档审核记录3
1.3.术语3
2.ITS服务器安装所需要的软件包3
3.RedHat linux7.3的安装及配置4
3.1.RedHat linux7.3的安装4
3.2.RedHat linux7.3的配置4
4.Apache的安装及配置4
4.1.Apache的安装4
4.2.Apache的配置4
5.MySQL的安装及配置5
5.1.MySQL的安装5
5.2.MySQL的配置5
6.Java环境的安装及配置8
6.1.Java环境的安装8
6.2.Java 环境的配置8
7.Resin的安装及配置8
7.1.Resin的安装8
7.2.Resin的配置9
8.Apache动态加载JSP模块10
9.数据库数据的备份10
10.jsp的Web页面11
1.概述
本文档根据ITS项目的功能需求,在RedHat linux7.3上搭建Apache+Resin+Mysql,实现JSP在Linux服务器上的Web服务。
1.1.文档修改记录
版本
修改日期
修改人员
修改记录
1.0
2002-1-23
魏琼
创建文档
1.2.文档审核记录
版本
审核日期
审核人员
审核记录
1.3.术语
ITS:Issue Tracking System,问题跟踪系统。
2.ITS服务器安装所需要的软件包
1.RedHat linux7.3安装光盘3张
2.apache_1.3.27.tar.gz,为源代码包
3.mysql-4.0.7-gamma.tar.gz,为源代码包
4.j2sdk-1_4_0-fcs-linux-i386.rpm,为rpm二进制安装包
5.resin-2.1.6.tar.gz,为tar.gz的二进制安装包
6.mysql-connector-java-2.0.14-bin.jar,MySQL的JDBC包
所有包放在目录/root/itssetup下
3.RedHat linux7.3的安装及配置
3.1.RedHat linux7.3的安装
7.改CMOS为光盘启动,若光盘不能启动,用rawrite程序做一张linux的安装盘。
8.启动后按照提示next一直安装即可,注意选择安装服务器,这样很多需要的服务包就会被安装。
3.2.RedHat linux7.3的配置
9.为了能远程登录服务器,需要开启telnet服务。注意添加一个非root的用户以便远程登录。
10.如果telnet无法登录,检查一下网络配置及防火墙的配置。
11.缺省服务器最好以运行模式为3(完全多用户文本模式)的级别运行,可以改文件/etc/inittab来改变缺省运行级别。
12.在/etc/hosts文件中加入记录192.168.18.235its.net263.comits,确保机器具有自己正确的IP和HostNmae。
4.Apache的安装及配置
4.1.Apache的安装
apache的安装,注意标准模块最大化安装,所有可动态加载的模块均动态加载。
shell>tar xvfz apache_1.3.27.tar.gz
shell>cd apache_1.3.27
shell>./configure --enable-module=most --enable-shared=max
shell>make
shell>make install
4.2.Apache的配置
13.将Apache配置文件中的ServerName一项改为192.168.18.235,如果申请了二级域名可以在此用二级域名。
14.确保机器重启后Apache能自己启动,关机的时候能安全关闭,需要做如下设置:
shell>cd /etc/rc.d
shell>cp /usr/local/apache/bin/apachectl init.d/apache
shell>ln -s ../init.d/apache rc0.d/K02apache
shell>ln -s ../init.d/apache rc1.d/K02apache
shell>ln -s ../init.d/apache rc2.d/K02apache
shell>ln -s ../init.d/apache rc3.d/S98apache
shell>ln -s ../init.d/apache rc4.d/S98apache
shell>ln -s ../init.d/apache rc5.d/S98apache
shell>ln -s ../init.d/apache rc6.d/K02apache
15.将根目录属性设置option中的indexes去掉,以免用户可以随便看见目录下的其他目录
16.在DirectoryIndex中加入一项index.jsp
5.MySQL的安装及配置
5.1.MySQL的安装
17.安装MySQL
shell>tar xvfz mysql-4.0.7-gamma.tar.gz
shell>cd mysql-4.0.7-gamma
shell>./configure --prefix=/usr/local/mysql --enable-thread-safe-client
shell>make
shell>make install
18.初始化授权表
shell>scripts/mysql_install_db
5.2.MySQL的配置
1.配置mysql,设置权限确保安全
shell>groupadd mysql
shell>useradd -g mysql mysql
shell>chown -R root /usr/local/mysql
shell>chown -R mysql /usr/local/mysql/var
shell>chgrp -R mysql /usr/local/mysql
shell>cp support-files/my-medium.cnf /etc/my.cnf
2.MySQL能够自动启动和关闭,需要做以下几步:
shell>cd /etc/rc.d
shell>cp /usr/local/mysql/share/mysql/mysql.server init.d/mysql
shell>ln -s ../init.d/mysql rc0.d/K10mysql
shell>ln -s ../init.d/mysql rc1.d/K10mysql
shell>ln -s ../init.d/mysql rc2.d/K10mysql
shell>ln -s ../init.d/mysql rc3.d/S90mysql
shell>ln -s ../init.d/mysql rc4.d/S90mysql
shell>ln -s ../init.d/mysql rc5.d/S90mysql
shell>ln -s ../init.d/mysql rc6.d/K10mysql
19.为了保证MySQL数据库的安全,需要删除test数据库,因为所有匿名用户均可使用test和test_之类的数据库:
shell>/etc/rc.d/init.d/mysql start
shell>mysql –u root –p
mysql>DROP DATABASE test;
20.MySQL中的缺省root用户是没有密码的,为了保证数据库的安全,为root设置密码:
mysql> SET PASSWORD FOR root=PASSWORD("123456");
21.为了让服务器上的Resin能够连上MySQL,需要为其授权:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@192.168.18.235 IDENTIFIED BY '123456';
22.创建相应ITS要用到的数据库itdb
mysql>CREATE DATABASE itdb;
23.创建各表及表项(可用工具mysqlcc直接加入)
CREATE TABLE `ACTOR` (
`NAME` varchar(20) NOT NULL default '',
`SECURITY` int(11) unsigned NOT NULL default '0',
`DESCRIPTION` varchar(200) NOT NULL default '',
PRIMARY KEY (`NAME`)
);
CREATE TABLE `ISSUE` (
`ID` int(11) unsigned NOT NULL auto_increment,
`DESCRIPTION` varchar(200) NOT NULL default '',
`INFLUENCE` varchar(200) NOT NULL default '',
`SECURITY` int(11) unsigned NOT NULL default '0',
`PRIORITY` int(11) unsigned NOT NULL default '0',
`TYPE` int(11) unsigned NOT NULL default '0',
`STATE` int(11) unsigned NOT NULL default '0',
`HAPPEN_TIME` datetime NOT NULL default '0000-00-00 00:00:00',
`BEGIN_TIME` datetime NOT NULL default '0000-00-00 00:00:00',
`FINISH_TIME` datetime NOT NULL default '0000-00-00 00:00:00',
`ESTIMATE_TIME` int(11) unsigned NOT NULL default '0',
`CHECK_TIME` datetime NOT NULL default '0000-00-00 00:00:00',
`UPDATE_VERSION` varchar(20) NOT NULL default '',
`REPORTER` varchar(64) NOT NULL default '0',
`RECORDER` varchar(64) NOT NULL default '0',
`CHECKER` varchar(64) NOT NULL default '0',
`SOLVER` varchar(64) NOT NULL default '0',
`SOLVER_METHOD` text NOT NULL,
`OLD_CODE` text NOT NULL,
`NEW_CODE` text NOT NULL,
`REFERENCE_ID` int(11) unsigned NOT NULL default '0',
`FILENAME` varchar(40) NOT NULL default '',
`PRODUCTION_CODE` varchar(40) NOT NULL default '',
`PROJECT_CODE` varchar(40) NOT NULL default '',
`MODULE_CODE` varchar(40) NOT NULL default '',
PRIMARY KEY (`ID`)
) ;
CREATE TABLE `PERMISSION` (
`ACTOR_NAME` varchar(20) NOT NULL default '',
`FIELDNAME` varchar(20) NOT NULL default '',
`PERMISSION` int(11) unsigned NOT NULL default '0'
);
CREATE TABLE `PERSONNEL` (
`ID` varchar(64) NOT NULL default '',
`PASSWORD` varchar(20) NOT NULL default '',
`TNAME` varchar(20) NOT NULL default '',
`DESCRIPTION` varchar(200) NOT NULL default '',
`MAIL` varchar(64) default '',
`NUMBER` varchar(4) NOT NULL default '',
`PHONE` varchar(11) NOT NULL default '',
PRIMARY KEY (`ID`)
);
CREATE TABLE `PROJECT` (
`NAME` varchar(20) NOT NULL default '',
`CODE` varchar(40) NOT NULL default '',
`DESCRIPTION` varchar(200) NOT NULL default '',
`TYPE` int(11) NOT NULL default '0',
`FPROJECT` varchar(40) NOT NULL default '',
PRIMARY KEY (`CODE`)
);
CREATE TABLE `TEAM` (
`PERSONNEL_ID` varchar(64) NOT NULL default '',
`PROJECT_CODE` varchar(40) NOT NULL default '',
`ACTOR_NAME` varchar(20) NOT NULL default '',
`DESCRIPTION` varchar(200) NOT NULL default ''
);
6. Java环境的安装及配置
6.1.Java环境的安装
安装j2sdk
shell> rpm -ivh j2sdk-1_4_0-fcs-linux-i386.rpm
6.2.Java 环境的配置
24.Java及Resin环境变量的设置
shell> vi /etc/profile
在文件后加上如下几句:
export JAVA_HOME=/usr/java/j2sdk1.4.0
export RESIN_HOME=/usr/local/resin
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/resin/bin
2.重启机器以使环境变量的设置生效
shell>reboot
7. Resin的安装及配置
7.1.Resin的安装
shell>tar xvfz resin-2.1.6.tar.gz -C /usr/local
shell>cd /usr/local
shell>mv resin-2.1.6 resin
shell>cd resin
shell>./configure -with-apache=/usr/local/apache
shell>make
shell>make install
7.2.Resin的配置
25.为了使reisn能自动启动及关闭,需要做以下几步:
shell>cd /etc/rc.d/init.d
shell>cp /usr/local/resin/contrib/init.resin resin
shell>chkconfig resin reset
因为resin启动较慢,在自动启动时需要停留一会以免别的自启动程序将其弄崩溃,则需要改动/etc/rc.d/init.d/resin文件,在fi行后加上加上一句sleep 15,可以用如下语句实现:
shell>sed 's/ fi/&
sleep 15/' resin > resin.bak
shell>mv –f resin.bak resin
shell>chmod +x resin
26. 修改resin的设置使其可以和Apache连接,其将在Apache的htdocs目录下加入WEB-INF目录。
shell>cd /usr/local/resin/conf
shell>vi resin.conf
将<doc-dir>doc</doc-dir>改为<doc-dir>/usr/local/apache/htdocs</doc-dir>
27. 在resin的库中加入最新的MySQL的JDBC包
shell>cp /root/itssetup/ mysql-connector-java-2.0.14-bin.jar /usr/local/resin/lib
28. 修改resin的设置使其可以和MySQL连接
shell>cd /usr/local/resin/conf
shell>vi resin.conf
在其中加入以下几行:
<resource-ref>
<res-ref-name>jdbc/itdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="org.gjt.mm.mysql.Driver"/>
<init-param url="jdbc:mysql://192.168.18.235:3306/itdb"/>
<init-param user="root"/>
<init-param password="123456"/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>
29.启动resin
shell>/etc/rc.d/init.d/resin start
8.Apache动态加载JSP模块
shell>cd /usr/local/apache/conf
shell>vi httpd.conf
30.Resin安装后在Apache中加载了caucho模块,添加了LoadModule和AddModule两句话,我们需要将AddModule mod_caucho.c这句注掉,前面加#,因为高版本apache只需要LoadModule就已经加载模块了。
31.在最后加上如下几句:
<IfModule mod_caucho.c>
CauchoConfigFile /usr/local/resin/conf/resin.conf
</IfModule>
32.重启Apache
shell>/etc/rc.d/init.d/apache restart
9.数据库数据的备份
为了防止数据的误操作引起的数据丢失或崩溃,创建后台任务每天凌晨2点备份数据库数据:
33.在用户weiqiong目录下创建子目录itdb1,itdb2,itdb3,itdb4,itdb5,itdb6和itdb0,分别备份一个星期的数据库:
shell>mkdir /home/weiqiong/itdb1
shell>mkdir /home/weiqiong/itdb2
shell>mkdir /home/weiqiong/itdb3
shell>mkdir /home/weiqiong/itdb4
shell>mkdir /home/weiqiong/itdb5
shell>mkdir /home/weiqiong/itdb6
shell>mkdir /home/weiqiong/itdb0
34.创建后台任务文件:
shell> vi itscron
文件内容如下:
0 2 * * 1 rm –f /home/weiqiong/itdb1/*.*
10 2 * * 1 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb1
0 2 * * 2 rm –f /home/weiqiong/itdb2/*.*
10 2 * * 2 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb2
0 2 * * 3 rm –f /home/weiqiong/itdb3/*.*
10 2 * * 3 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb3
0 2 * * 4 rm –f /home/weiqiong/itdb4/*.*
10 2 * * 4 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb4
0 2 * * 5 rm –f /home/weiqiong/itdb5/*.*
10 2 * * 5 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb5
0 2 * * 6 rm –f /home/weiqiong/itdb6/*.*
10 2 * * 6 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb6
0 2 * * 7 rm –f /home/weiqiong/itdb0/*.*
10 2 * * 7 cp /usr/local/mysql/var/itdb/*.* /home/weiqiong/itdb0
35.创建后台任务:
shell> crontab itscron
shell>crontab –l
10.jsp的Web页面
在/usr/local/apache/htdocs目录下创建目录images放图象,创建manage目录放后台管理页面。将前台的页面放在/usr/local/apache/htdocs目录下,将后台管理页面放在/usr/local/apache/htdocs/manage目录下,将JAVA需要用的类放在/usr/local/apache/htdocs/WEB-INF目录下。
这样就可以通过键入http://192.168.18.235访问前台程序,通过键入http://192.168.18.235/manage访问后台管理程序。