当前位置:Linux教程 - Apache - 中小企业服务器配置方案(Apache+Jserv整和等)

中小企业服务器配置方案(Apache+Jserv整和等)



        
    汤海京 (投稿)

    第三节 Apache+Jserv整和
    一、需要的源码包:
    jdk-1_2_2_006-linux-i386.tar.gz
    jsdk20-solaris2-sparc[1].tar.Z
    ApacheJServ-1.1.2.tar.gz
    二、安装过程
    1、安装jdk1.2.2
    (1) 解开压缩包
    tar xvzf jdk1_2_2_006-linux-i386.tar.gz
    (2) 目录的处理
    ln -s jdk1.2.2 jdk
    ln -s jdk/jre jre
    (3) 设置$JAVA_HOME,$CLASSPATH
    vi /root/.bash_profile
    加入:
    JAVA_HOME=/usr/local/jdk
    export JAVA_HOME
    CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib
    export CLASSPATH
    PATH=$PATH:/usr/local/jdk/bin:/usr/local/jre/bin
    注:JDK的安装到此结束。
    2.安装JSDK
    (1) tar zxvf jsdk20-solaris2-sparc[1].tar.Z
    (2) 将产生的JSDK2.0目录移到 /usr/local/JSDK2.0
    mv JSDK2.0 /usr/local/JSDK2.0
    注:JSDK的安装到此结束。
    3.Apache和Jserv的静态混合编译
    所谓的静态编译是指将Jserv编译进apache里
    (1) tar xvzf apache_1.3.12.tar.gz
    tar xvzf ApacheJServ-1.1.2.tar.gz
    (2) cd apache_1.3.12
    ./configure --prefix=/usr/local/apache
    (3) 配置apache jserv编译参数
    cd ../ApacheJServ-1.1.2
    ./configure \
    --prefix=/usr/local/jserv \
    --with-apache-src=../apache_1.3.12 \
    --with-jdk-home=/usr/local/ jdk1.2.2 \
    --with-java-platform=2 \
    --with-JSDK=/usr/local/JSDK2.0/lib/jsdk.jar
    make
    make install
    (4) 编译apache和apache jserv
    cd ../apache_1.3.12
    ./configure \
    --prefix=/usr/local/apache \
    --activate-module=src/modules/jserv/libjserv.a
    make
    make install
    (5) 执行/usr/local/apache/bin/httpd -l检查一下mod_jserv是否编译进apache了
    (6) 更改配置文件 /usr/local/apache/conf/httpd.conf
    添加 Include /usr/local/jserv/etc/jserv.conf
    (7) 更改配置文件 /usr/local/jserv/etc/jserv.conf
    SetHandler jserv-status
    order deny,allow
    deny from all
    加入你的信任主机allow from xxxx
    这样在信任主机上通过http://yourserver/jserv/(注意后面这个"/"不能少)可以看到你的apache jserv的配置信息。
    接着在/usr/local/jserv/servlets下放入你自己的servlet class实验一下效果吧,测试结果表明在redhat6.2下没有中文显示问题,一切ok!
    其他关于servlet zone的设置、load balance等等请参考apache jserv文档和java.apache.org网站
    注:Apache和Jserv混合编译到此结束
    三、最后的测试:
    1. 启动apache:/usr/local/apache/bin/apachectl start
    2. 用浏览器测试http://yourserver/servlets/IsItWorking
    看见了Yes,Its working!了吗?你成功了!!



    第四节 Linux下Apache、php3、MySQL的整合
    一、所需的安装包
    apache_1.3.19.tar.gz
    php-4.0.4.tar.gz
    mysql-3.23.32.tar.gz
    注意:以上均为源代码而非RPM包
    二、软件安装
    1. 安装MySQL
    (1) 解开压缩包
    cd /usr/local
      tar -zvxf mysql-3.23.32.tar.gz
    (2) 将产生mysql-3.23.32目录移到/usr/local/mysql
    mv mysql-3.23.32 /usr/local/mysql
    (3) 编译MySQL
    cd /usr/local/mysql
    ./configure --prefix=/usr/local/mysql
    make
    make install
    (4) 安装数据库文件
    /usr/local/mysql/scripts/mysql_install_db
    /usr/local/mysql/bin/safe_mysqld &
    (5) MySQL授权操作
    MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的加密算法与Unix系统不尽相同,其用户名可以长达16个字符。
    先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to thj@localhost identified by ‘thj’ with grant option; 这样,无论用户thj从什么地方登陆到这台服务器都可以使用MySQL。
    (6) MySQL数据库简单操作语句
    创建数据库
    命令:create database 数据库名;
    删除数据库
    命令:drop database 数据库名;
    查询MySQL中都有什么数据库
    命令:show databases;
    更改当前使用的数据库
    命令:use tbl_name
    创建数据表
    命令:create table tbl_name ( column_specs );
    说明:tbl_name 数据表名 column_specs 表中列的说明
    查询指定的数据表的结构
    命令:describe tbl_name;
    查询数据库中都有什么数据表
    命令:show tables;
    增加新记录
    命令:insert into tbl_name (col_name1,col_name2,…) values(values1,values2,….)
    说明:insert语句简单易用,但是它也有一个缺陷,就是每次只能插入一条记录。
    批量装载数据
    命令:load data local infile “filename.txt” into table tbl_name;
    说明:MySQl的版本不得低于3.22.15,否则load data local不起作用。该语句实际上是调用了/usr/bin/mysqlimport。
    检索信息
    命令:select 要选择的东西 from 一个或多个表 where 数据必须满足的条件
    注:在MySQL中,每键入一条命令之后,在命令行的结尾都要敲入“;”,标志是一条命令,或者敲回车之后再敲go,提示系统执行上边的命令;另外,在多数关于MySQL的参考书中,命令都为大写,实际上小写也可以;还有,use语句可以不加“;”,这是所有MySQL语言中唯一一个不需要加“;”就可以执行的语句。
    注:MySQL的安装到此结束
    2. Apache、PHP3的混合编译
    (1) 解开压缩包
       cd /usr/local
    tar xvzf apache_1.3.19.tar.gz
    tar xvzf php-4.0.4.tar.gz
    mv apache_1.3.19.tar.gz apache
    mv php-4.0.4.tar.gz php
    (2) 把Apache的安装目录定为/usr/local/apache
    cd apache
    ./configure --prefix=/usr/local/apache --with-port=8000
    (3) 配置支持MySQL、作为Apache功能模块、跟踪变量有效
    cd ../php
    ./configure --with-mysql=/usr/local/mysql --with- apache=../apache --enable-track-vars –with-pgsql=/usr/lib/pgsql --prefix=/usr/local/apache/php –with-config-file-path=/usr/local/apache/php
       make
    make install
    注:PHP的安装到此结束
    (4) 配置Apache,加入PHP4的模块
    cd ../apache
    cp /usr/local/php/libs/libphp4.a \
    /usr/local/apache/src/modules/php4
    ./configure --prefix=/usr/local/apache --activate- module=src/modules/php4/libphp4.a --with-port=8000
    make
    make install
    注:APACHE安装完毕
    3.更改配置
    (1) 把php.ini文件拷到/usr/local/apache/php目录下.
    cd ../php
    cp php.ini-dist /usr/local/apache/php/php4.ini
    (2) 更改Apache的配置文件
    cd /usr/local/apache/conf
    vi httpd.conf
    找到 AddType application/x-httpd-php .php4 把它前头的#号给删了当然也可加一行 AddType application/x-httpd-php3.asp 这样用FrontPage编辑会方便一点。
    最后运行/usr/local/apache/bin/apachectl start启动apache进程


    第五节 为Apache增加SSL安全保护
    & 5.1 简介
    Netscape公司提出的安全套接层(Secure Sockets Layer)的概念,简称SSL。顾名思义,这是一个建立在Socket层的安全协议,它屏蔽了高层协议如telnet、ftp、http的区别,把安全建立在了传输之上。目前该协议以被广泛采纳,它所定义的很多功能都成了下一代IP协议IPV6的一部分。
    & 5.2 所需资源
    &1.2.1 所需包
    1. Apache 1.3.19.tar.gz
    下载网址:
    http://www.tux.org/pub/net/apache/dist/apache_1.3.17.tar.gz
    2. openssl 0.9.6 要用他来生成密钥和签署证书
    下载网址:
    http://www.openssl.org/source/openssl-0.9.6.tar.gz
    3. mod_ssl 2.8.0
    下载网址:
    http://www.modssl.org/source/mod_ssl-2.8.0-1.3.19.tar.gz
    &1.2.2 安装过程
    1. 编译 OpenSSL:
    cd /usr/local
    tar zxvf openssl-0.9.6.tar.gz
    cd /usr/local/openssl-0.9.6
    ./config --prefix=/usr/local/openssl
    #注意,这里是 config 而不是 configure。
    make
    make test
    make install
    2. 编译MOD_SSL
    cd /usr/local
    tar zxvf mod_ssl-2.8.0-1.3.19
    cd /usr/local/mod_ssl-2.8.0-1.3.19
    ./configure --with-apache=../apache_1.3.19
    3. 编译apache
    cd /usr/local
    tar zxvf apache_1.3.19
    cd /usr/local/apache_1.3.19
    SSL_BASE=../openssl-0.9.6 \
    ./configure --prefix=/usr/local/apache_1.3.19 \
    --enable-module=ssl \
    --enable-shared=ssl
    make
    4.生成CA
    make certificate TYPE=custom
    说明:这一步要生成你自己的 CA (如果你不知道,我也不能细说了,简单地说就是认证中心),和用它来为你的服务器签署证书。
    STEP 0:
    选择算法,使用缺省的 RSA
    STEP 1:
    生成 ca.key,CA的私人密钥
    STEP 2:
    为CA生成X.509的认证请求 ca.csr
    要输入一些信息:
    Country Name: cn 国家代码,两个字母
    State or Provice name: An Hui 省份
    Locality Name: Bengbu 城市名
    Organization Name: Home CA 组织名,随便写吧
    Organization Unit Name: Mine CA
    Common Name: Mine CA
    Email Address: sunstorm@263.net 我的Email
    Certificate Validity: 4096 四千多天,够了吧
    STEP 3:
    生成CA的签名,ca.crt
    STEP 4:
    生成服务器的私人密钥,server.key
    STEP 5:
    生成服务器的认证请求,server.csr
    要输入一些信息,和STEP 2类似,
    不过注意 Common Name是你的网站域名,如 www.mydomain.com
    Certificate Validity不要太大,365就可以了。
    STEP 6:
    为你的服务器签名,得到server.crt
    STEP 7-8
    为你的 ca.key 和 server.key 加密,要记住pass phrase。
    下面完成apache的安装
    make install
    vi /usr/local/apache/conf/httpd.conf
    修改BindAddress 和 ServerName
    如果要改变 DocumentRoot 要记得把httpd.conf里SSL Virtual Host Context部分的DocumentRoot设定也改掉。
    SSLCertificateFile和SSLCertificatKeyFile的设定也在SSL Virtual Host Context部分。
    它可能是这样设定的:
    SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
    SSLCertificateKeyFile /usr/local/apache_1.3.19/conf/ssl.key/server.key
    要注意ssl.key ssl.crt等目录和文件的权限!
    所有的key,csr,crt,prm文件都应该设为 400 属性!
    & 5.3 手工签署证书
    虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器的证书签名,但是有时你可能需要改变它。
    当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署
    证书。首先我假定你已经安装好了openssl和MOD_SSL,如果你的
    openssl安装时的prefix设置为/usr/local/openssl,那么
    把/usr/local/openssl/bin加入执行文件查找路径。还需要MOD_SSL
    源代码中的一个脚本,它在MOD_SSL的源代码目录树下的pkg.contrib目
    录中,文件名为 sign.sh。将它拷贝到 /usr/local/openssl/bin 中。
    先建立一个 CA 的证书,
    首先为 CA 创建一个 RSA 私用密钥,
    [S-1]
    openssl genrsa -des3 -out ca.key 1024
    系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
    生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
    [S-2]
    chmod 400 ca.key
    你可以用下列命令查看它的内容,
    [S-3]
    openssl rsa -noout -text -in ca.key
    利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
    [S-4]
    openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
    然后需要输入下列信息:
    Country Name: cn 两个字母的国家代号
    State or Province Name: An Hui 省份名称
    Locality Name: Bengbu 城市名称
    Organization Name: Family Network 公司名称
    Organizational Unit Name: Home 部门名称
    Common Name: Chen Yang 你的姓名
    Email Address: sunstorm@263.net Email地址
    生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
    [S-5]
    chmod 400 ca.crt
    你可以用下列命令查看它的内容,
    [S-6]
    openssl x509 -noout -text -in ca.crt
    下面要创建服务器证书签署请求,
    首先为你的 Apache 创建一个 RSA 私用密钥:
    [S-7]
    openssl genrsa -des3 -out server.key 1024
    这里也要设定pass phrase。
    生成 server.key 文件,将文件属性改为400,并放在安全的地方。
    [S-8]
    chmod 400 server.key
    你可以用下列命令查看它的内容,
    [S-9]
    openssl rsa -noout -text -in server.key
    用 server.key 生成证书签署请求 CSR.
    [S-10]
    openssl req -new -key server.key -out server.csr
    这里也要输入一些信息,和[S-4]中的内容类似。
    至于 extra attributes 不用输入。
    你可以查看 CSR 的细节
    [S-11]
    openssl req -noout -text -in server.csr
    下面可以签署证书了,需要用到脚本 sign.sh
    [S-12]
    sign.sh server.csr
    就可以得到server.crt。
    将文件属性改为400,并放在安全的地方。
    [S-13]
    chmod 400 server.crt
    删除CSR
    [S-14]
    rm server.csr
    最后apache设置
    如果你的apache编译参数prefix为/usr/local/apache,
    那么拷贝server.crt 和 server.key 到 /usr/local/apache/conf
    修改httpd.conf
    将下面的参数改为:
    SSLCertificateFILE /usr/local/apache/conf/server.crt
    SSLCertificateKeyFile /usr/local/apache/conf/server.key
    可以 apachectl startssl 试一下了。
    & 5.4 测试及管理办法
    cd /usr/local/apache_1.3.19
    bin/apachectl startssl
    提示输入pass phrase(就是你前面输入的,不知道你还记不记得)
    输入后就启动了一个支持SSL的apache
    在IE里输入https://192.168.0.1/ 试试,注意是https而不是http!
    & 5.5 小结
    用电子认证服务器,可以进行公共密钥认证的管理、签署和废止。她使用的是X.509标准。
    使用电子认证服务器,就可以自己管理公共密钥的认证,而不用依赖国外的CA服务中心。我们建立一个认证服务中心,就是为了能在我们的中国多媒体公众信息网上使用电子认证,以保证重要信息的安全。同时扩展该网的应用范围,把它建设成一个高速有效的企业单位联网平台。
    发布人:netbull 来自: