apache - ITS服务器的安装及配置
				
				
					
					ITS服务器的安装及配置
2004-04-23 15:18 pm来自:Linux文档
现载:Www.8s8s.coM
地址:无名
内容摘要
    本文档根据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.235		its.net263.com	its,确保机器具有自己正确的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 [email protected] 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访问后台管理程序。