在Solaris下安装j2se+perl+resin+mysql+apache+php
=====================================================================================================================
引自 :http://www.digitalcn.com.cn/jishubbs.htm?num=3
总体说明... 1
安装jdk(Ver:J2SE v 1.4.2_07)... 2
安装perl(Ver:5.8.5)... 4
安装resin(ver:3.0.14)... 6
配置安装Oracle
JDBC. 9
安装mySQL数据库(源码编译版本)... 11
安装mySQL数据库(二进制版本)... 12
安装apache(ver:2.2.3)... 14
配置apache虚拟路径(URL
Path)... 15
配置apache虚拟主机(单独配置apache)... 15
方案-1
apache和resin联动:apache解析/,resin解析/eshouse. 16
方案-2配置apache+resin虚拟主机(resin根路径)... 17
配置apache虚拟主机(apache+resin联动配置)... 17
整合resin和apache. 18
数据库连接池proxool-[ 非web应用使用 ] 19
数据库连接池proxool-[
Resin下使用 ] 20
安装apache统计工具--AWStats 20
安装zlib,libxml2--
php的支持包- 21
安装php(Ver:4.4.4)... 21
附录:删除已经安装的jdk pkg. 24
附录-测试php是否正常运行的程序... 27
附录-测试mysql连接的php程序... 28
附录-2:配置apache虚拟主机[网上资料] 30
1. 下面所有的安装过程,基本上在linux服务器上面也是操作验证过的。除了pkgadd,pkginfo等相关命令,这些命令只能在Solaris平台上面执行。
2. TODO:需要在使用过程中补充的技术/工具
a)
Linux优化:内核优化
b)
Linux集群-LVS配置
c)
Rsync:远程备份工具
d)
Rpm:linux下面打包工具
e)
Java开源-Hibernage配置
f)
Java开源-spring配置
g)
Java开源-struts配置
服务器IP:.37(这IP暂时没有了,原服务器变成了40)
安装包:所有的安装包的存放目录/export/home/sms/tools/
几个软件的安装目录
JDK:/usr/j2se
Perl:/usr/per5
Resin:/export/home/sms/resin-3.0.14
Mysql:/export/home/sms/mysql-4.0.24, 不过做了一个/usr/local/mysql连接
apache:/export/home/sms/apache-2.2.3, 后台的根目录:/oracle/wapdocs
php:/export/home/sms/php-4.4.4
特别注意:一定要使用全新的安装包来执行安装操作,如果之前使用过的安装源目录,尤其第二次安装时候想更改安装目标目录的时候,一定要重新解压缩全新的安装包。否则第一次的安装参数会清理不干净。有严重问题。
卸载原来安装的jdk
安装之前,需要首先删除服务器上已经安装的jdk包,这样能够保证版本的正确。具体操作过程参考附件。除了hotjava之外的java包都删除了。
Resin:从http://www.caucho.com获得安装包
安装包:resin-3.0.8.tar
版本:3.0.8
启动:注意用sms用户
检查进程: ps –ef|grep resin
安装目录:/export/home/sms/resin-3.0.8。在安装resin之前,需要先安装perl和jdk[1.4.2以上版本]
JSDK1.4.2。
安装包:j2sdk-1_4_2_07-solaris-sparc.tar.Z
版本:J2SE v 1.4.2_07
下载地址::http://java.sun.com/j2se/1.4.2/download.html
安装目录:/usr/j2se,
/usr/jdk
Perl
安装包:perl_s-5.8.5-sol7-sparc-local.gz
版本:5.8.5
下载地址:从http://www.sunfreeware.com/indexsparc7.html获取perl安装包
安装目录:/usr/local/perl
安装jdk(Ver:J2SE v 1.4.2_07)
说明:下面的安装记录中,命令和需要修改的配置要参照执行,提示信息部分留意即可。
安装命令:用黄色背底标注,
提示信息:安装过程中控制终端显示的重要信息用灰色背底标注,
修改配置:安装过程中需要修改的配置文件内容,用青绿色背底标注
注意:有些目录可以参考本文档目录创建,也可以根据实际目录变更,比如/export/home/sms/tools/等目录
安装J2SE v 1.4.2_07
下载J2SE v 1.4.2_07版本:下载地址:http://java.sun.com/j2se/1.4.2/download.html
安装过程:
0.
安装之前,先把系统中已经安装的跟java相关的包删除,参见文档最后的删除java包一节,基本上就是用关键字搜索,把j或者DK,dk相关的软件包都找到,然后除了hotjava,和browser等相关的之外,都删除掉。
1.
解压缩j2sdk-1_4_2_07-solaris-sparc.tar.Z
创建一个临时目录/export/home/sms/tools/jdk/tmp,把j2sdk-1_4_2_07-solaris-sparc.tar.Z拷贝到临时目录下,然后解压缩
sm% cd
/export/home/sms/tools/jdk
sm% mkdir tmp
sm% uncompress j2sdk-1_4_2_07-solaris-sparc.tar.Z
sm% tar xvf j2sdk-1_4_2_07-solaris-sparc.tar
会在/export/home/sms/tools/jdk/tmp目录下生成一批目录和文件
2.
变成root权限,
sm% su
3.
安装
安装后系统创建的目标目录包括:/usr/j2se, /usr/jdk,/usr/java等。
执行过程提示信息
# pkgadd -d
/export/home/sms/tools/jdk/tmp
下列软件包是可以使用的:
1 SUNWj3cfg SUNWj3rt post
configuration
(sparc) 1.4.2,REV=2005.01.15.14.03
2
SUNWj3dev
J2SDK 1.4 development tools
(sparc) 1.4.2,REV=2005.01.15.14.03
3
SUNWj3dmo
J2SDK 1.4 demo programs
(sparc) 1.4.2,REV=2005.01.15.14.03
4
SUNWj3jmp
J2SDK 1.4 Japanese man pages
(sparc) 1.4.2,REV=2005.01.15.14.03
5
SUNWj3man
J2SDK 1.4 man pages
(sparc) 1.4.2,REV=2005.01.15.14.03
6
SUNWj3rt
J2SDK 1.4 runtime environment
(sparc) 1.4.2,REV=2005.01.15.14.03
选择你要执行的软件包(或选择'全部'执行所有的软件包).
(default: all) [?,??,q]:都安装
安装完毕后在系统下生成的目录:
1)/usr/j2se目录:安装包的目标目录
2)同时生成两个连接:
/usr/jdk/j2sdk1.4.2_07
à /usr/j2se
/usr/java à /usr/j2se
4.
安装完毕后,推出root用户,回到sms普通用户
# exit
或者
# su - sms
5.
配置JAVA_HOME,CLASSPATH,PATH环境变量
1)修改/export/home/sms/.profile
smsbak%
cd [回到sms用户的缺省目录]
smsbak% pwd
/export/home/sms
smsbak%
vi .profile
# 20050304: Add Enviroment variables for resin
JAVA_HOME=/usr/j2se
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
2)修改/export/home/sms/.cshrc
smsbak%
pwd
/export/home/sms
smsbak% vi .cshrc
setenv JAVA_HOME /usr/j2se
setenv CLASSPATH
$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
6.
验证java版本
[注意:在验证版本之前,需要推出用户重新登录一次,以便使上面设定的环境变量生效]
smsbak% java -version
java
version "1.4.2_07"
Java(TM)
2 Runtime Environment, Standard Edition (build 1.4.2_07-b05)
Java
HotSpot(TM) Client VM (build 1.4.2_07-b05, mixed
mode)
安装最终安装目录:/usr/j2se/,/usr/jdk
调试过程:一开始安装jdk1.2版本,resin启动不起来,后来改成jdk1.4.2版本,成功了,详细调试过程参看“安装resin”一节。安装jsk1.4.2之前,需要先把原来安装的jdk卸载掉,否则安装后的jdk不能正常使用。卸载过程参见[附录:删除已经安装的jdk pkg]
从http://www.sunfreeware.com/indexsparc7.html获取perl安装包
安装步骤
两个安装包:perl_s-5.8.5-sol7-sparc-local.gz,perl-5.8.5-sol7-sparc-local.gz,决定安装perl_s-5.8.5-sol7-sparc-local.gz。这个安装包里面包含一个 /usr/local/lib/perl5/5.8.5/sun4-solaris/CORE/libperl.so,有些程序可能会用得到。
0.
解压缩
创建一个临时目录:/export/home/sms/tools/perl/tmp,把perl_s-5.8.5-sol7-sparc-local.gz拷贝到该临时目录下。然后解压缩。
sm% cd
/export/home/sms/tools/perl
sm% mkdir tmp
sm% cp perl_s-5.8.5-sol7-sparc-local.gz
./tmp
sm% cd
/export/home/sms/tools/perl/tmp
sm% gzip -d perl_s-5.8.5-sol7-sparc-local.gz
1.
改变当前用户为超级用户权限
sm% su
2.
执行打包
a)
安装perl_s-5.8.5-sol7-sparc-local
在临时目录下,执行
# cd /export/home/sms/tools/perl/tmp
# pkgadd -d perl_s-5.8.5-sol7-sparc-local
The
following packages are available:
1 SMCperl perl
(sparc) 5.8.5
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:[缺省,直接回车就可以了]
Processing package instance <SMCperl> from
</export/home/sms/tools/perl/tmp/perl-5.8.5-sol7-sparc-local>
Installation of <SMCperl> was successful.
安装目标目录:
/usr/local/bin,/usr/local/lib/perl5,/usr/local/doc,/usr/local/share/man等目录
3.
确认环境变量PATH
如果原来的PATH中没有/usr/local/bin,则在PATH环境变量中加入/usr/local/bin目录
注意,为了全面,需要修改$HOME/.profile, $HOME/.cshrc两个隐藏文件。
4.
验证perl5.8.5是否安装成功
1)查看perl可执行程序是否已经安装到正确目录
smsbak% ls /usr/local/bin/perl
/usr/local/bin/perl
2)编写一个简单的perl程序,来验证一下吧。
testperl.pl:
#!/usr/local/bin/perl
# Program to do the obvious
print 'Hello world.';# Print a message
print 'Your Perl is installed successfully! ^_^';# Print a
message
从http://www.caucho.com获得安装包[Resin 3.0 Binary ]
[ 2005年8月22日星期一:3.0.8运行了将近3个月,今天发现stderr.log文件里面全是提示licence的信息,好像是这个版本是一个试用版本,目录结构也有所不同,所以决定安装一下3.0.14版本试一下。3.0.8版本的不同之处:
a.有一个license的目录
b.在$RESIN_HOME/lib目录下有一个license.jar
c.
]
1.解压缩resin-3.0.14.tar,并把目录resin-3.0.14拷贝到/export/home/sms下
sm% tar xvf resin-3.0.14.tar
sm% mv resin-3.0.14
/export/home/sms
2.进入安装目录
sm% cd /export/home/sms/resin-3.0.14
3.运行configure
./configure -prefix=/export/home/resin-3.0.14 --with-java-home=$JAVA_HOME
./configure
-prefix=$HOME/resin-3.0.14 --with-java-home=$JAVA_HOME
checking whether to build static libraries... yes
creating libtool
checking for JAVA_HOME...
/usr/j2se
checking for JNI in /usr/j2se/include/solaris ... found
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bin/wrapper.pl
4.运行make
sm% make
(cd src/c/plugin; make)
for dir in common resin resinssl; do (cd $dir; make);
done
/usr/ccs/bin/ld -r -o common.o stream.o registry.o
config.o memory.o
make: Fatal error in reader: Makefile, line 19:
Unexpected end of line seen
Current working directory /export/home/sms/resin-3.0.8/src/c/plugin/resin
*** Error code 1
make: Fatal error: Command failed for target `plugins'
Current working directory /export/home/sms/resin-3.0.8/src/c/plugin
*** Error code 1
make: Fatal error: Command failed for target `all'
调试过程:
后来发现是/export/home/sms/resin-3.0.14/src/c/plugin/下resin/
和resinssl 目录下的Makefile里面有^M符号,把这些符号删除后,在/export/home/sms/resin-3.0.14/src/c/plugin/resin目录下执行make就成功了。
删除^M的方法:用vi打开这两个Makefile,然后[ :%s/^M//g](注意这几个红色字符都不能少,
^M的输入方法:按住键盘上的CTRL键,同时按V键,然后松开V键,再松开CTRL键,再输入回车键,)
5.运行 make install
sm% make install
6.拷贝init.resin到/export/home/sms/resin/bin目录下
sm% cp ./contrib/init.resin
./bin
7.配制端口为8080
修改文件./conf/resin.conf(一般缺省安装后,不用修改)
<!--
The http port -->
<http server-id="" host="*" port="8080"/>
8.配置其它启动参数
修改文件:resin-3.0.14/bin/httpd.sh,
Java虚拟机启动内存大小,如果内存过小,经常会出现莫名其妙的问题,比如可能会提示文件打不开,等(在服务器实际运营中上碰到过,把虚拟机内存扩大后就没有问题了。)
下面是一个linux服务器上resin配置的参数(linux配置:内存:4G,)
# Extra arguments to Java. If you're passing arguments to the JVM,
you'l l
# need to use -Jxxx.
For example, args="-J-ms48m". You can modify
# the pid file with args="-pid server-a.pid"
#配置java虚拟机最小内存512M,最大内存1024M
args="-Xms512m -Xmx1024m"
#args=
9.配置环境变量:RESIN_HOME,CLASSPATH,PATH
下面分别配制了.cshrc和.profile两个文件
.cshrc:
setenv RESIN_HOME ${HOME}/resin3.0.14
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/dom.jar
setenv CLASSPATH
${CLASSPATH}:${RESIN_HOME}/lib/isorelax.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/jca-15.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/jmx-12.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/jsdk-24.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/jstl-11.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/jta-101.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/license.jar
setenv CLASSPATH
${CLASSPATH}:${RESIN_HOME}/lib/portlet-10.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/resin.jar
setenv CLASSPATH ${CLASSPATH}:${RESIN_HOME}/lib/webutil.jar
setenv PATH ${PATH}: ${RESIN_HOME}/bin
.profile
RESIN_HOME=$HOME/resin-3.0.14
# RESIN classpath
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/dom.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/isorelax.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/jca-15.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/jmx-12.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/jsdk-24.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/jstl-11.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/jta-101.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/license.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/portlet-10.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/resin.jar
CLASSPATH=$CLASSPATH:$RESIN_HOME/lib/webutil.jar
PATH=$PATH:$JAVA_HOME/bin:$RESIN_HOME/bin
export JAVA_HOME RESIN_HOME CLASSPATH PATH
10.启动resin
sm%
init.resin start
smsbak% init.resin start
-n Starting resin:
smsbak% Resin httpd start at 2005年05月11日 星期三 14时48分03秒 CST
调试过程:
-n Starting resin:
/export/home/sms/resin-3.0.14/bin/httpd.sh:
perl: 没有找到
是perl没有安装,
安装perl包后,启动成功,提示信息:
sm% init.resin start
-n Starting resin:
sm% Resin httpd start at 2005年03月07日 星期一 13时40分36秒
CST
sm% ps -ef|grep httpd
sms 5336 1 0 13:40:36 pts/1 0:00 perl
/export/home/sms/resin-3.0.8
/bin/wrapper.pl -chdir -name httpd -class com.
11.验证resin
启动后,用IE访问http:// IP_Address:8080/index.jsp,应该显示关于resin的一个帮助文档。
正常启动之后,显示进程:
mhwz-jk% ps
-ef|grep httpd
tuxedo 20061 1 0 22:47:44 pts/2 0:00 perl ./wrapper.pl
-chdir -name httpd -class com.caucho.server.resin.Resin -Xms2
第一次安装的时候,没有显示出任何页面。看来还有错误。
判断是jdk版本不对,下载J2SE v 1.4.2_07试一下,成功显示浏览信息。
调试过程:
1) 跟踪调试./bin/wrapper.pl,获取启动java的命令行为:
/usr/j2se/bin/java
-Xss1m
-Dresin.home=/export/home/sms/resin-3.0.8
-Djava.util.logging.manager=com.caucho.log.LogManagerImpl
com.caucho.server.resin.Resin
-socketwait
33112
直接在字符终端执行,提示信息如下:。。。。。。
该信息表示jdk版本不对,后重新安装jdk1.4.2后,resin启动成 功。
12.停止,重新启动resin
sm%
httpd.sh stop
sm%
httpd.sh restart
配置安装Oracle JDBC
1.下载Oracle JDBC驱动,classes12.jar
2.把classes12.jar拷贝到$RESIN_HOME/lib目录下
3.配置resin的JDBC数据库连接
修改:$RESIN_HOME/conf/resin.conf文件:
把下面的jdbc数据库连接加到resin.conf文件:
<!--
STSRT: For Oracle Database JDBC Connector -->
<database>
<jndi-name>jdbc/caboss</jndi-name>
<driver type="oracle.jdbc.driver.OracleDriver">
<url>jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL=
TCP)(Host= 211.94.194.36 )(Port= 1521)) (CONNECT_DATA = (SID = sms))) </url>
<user>caboss</user>
<password>caboss</password>
</driver>
<prepared-statement-cache-size>8</prepared-statement-cache-size>
<max-connections>20</max-connections>
<max-idle-time>30s</max-idle-time>
</database>
<!-- STOP: For Oracle Database JDBC
Connector -->
注意:在安装mysql之前,系统已经安装了一个mysql。版本是5.0.22
原来安装的处理过程:
1./Usr/bin下面的若干mysql*文件:在/usr/bin下面创建一个bakmysql目录,把/usr/bin/ 下面的mysql相关的文件都mv到bakmysql下面了。
2:/usr/lib/mysql目录:把这个目录mv成/usr/lib/bakmysql
3:/usr/share/mysql目录:把这个目录mv成/usr/share/bakmysql
4:/etc/ld.so.conf.d/ mysql-i386.conf
文件内容:/usr/lib/mysql
把这个文件mv到/app/tools下面
5:/etc/my.cnf mv到/app/tools下面
安装版本:5.0.45
原来下载的是二进制包,重新下载了5.0.45的源码,编译安装。
安装目录:/app/mysql-5.0.45
安装过程:
首先用root用户配置mysql组和mysql用户
设置安装目标目录和字符集
因为我们使用简体,所以需要优化简体的查询,我们这也需要对繁体和英文使用,--with-charset
和
--with-extra-char-charsets 就是对这些需要进行配置,
./configure --prefix=/app/mysql-5.0.45 \
--with-charset=utf8 \
--with-extra-charsets=utf8,gbk,latin2,latin1
Make
Make
install
scripts/mysql_install_db
配置mysql:
1) 配置path。把/app/mysql-5.0.45/bin增加到PATH里面
2) 创建目录/app/mysql-5.0.45/var
3) 把配置文件my.conf拷贝到/etc目录下面
/app/mysql-5.0.45/share/mysql/my/my-huge.cnf
/etc/my.conf
启动运行
/app/mysql-5.0.45/bin/mysqld_safe
&
在211.94.194.36上:
./bin/mysqld_safe &
授权
grant all
on example.* to ‘eshouse’@’localhost’;
set password for ‘eshouse’@’localhost’ = password('eshouse');
grant all on example.* to ‘eshouse’@’58.83.130.10’;
set password for ‘eshouse’@’58.83.130.10’ = password('eshouse');
grant all on example.* to ‘eshouse’@’127.0.0.1’;
set password for ‘eshouse’@’127.0.0.1’ = password('eshouse');
grant all on example.*
to ‘eshouse’@’221.223.69.18’;
set password for
‘eshouse’@’221.223.69.18’ = password('eshouse');
验证安装是否正确
验证支持字符集是否支持
用root账号登录mysql,然后用命令设定字符集
set names gbk
下载地址:
http://dev.mysql.com/downloads/mysql/4.1.html
注意要下载tar包,不要下载pkg方式的安装包。
pkg安装包会要求安装之前必须创建mysql组和mysql用户,并且会要求自动安装到/opt/mysql目录。(这样很不方便)
安装过程(Max包)
1.当前目录:/export/home/sms
1.解压缩
rong% gunzip
mysql-max-4.1.21-sun-solaris2.8-sparc-64bit.tar.gz
rong% tar
xvf mysql-max-4.1.21-sun-solaris2.8-sparc-64bit.tar
在当前目录下生成目录:mysql-max-4.1.21-sun-solaris2.8-sparc-64bit
rong%
mv mysql-max-4.1.21-sun-solaris2.8-sparc-64bit mysql
把目录名字直接转换成mysql(/export/home/sms/mysql-4.0.24)
2.建立/usr/local下面创建mysql的连接
这样就能使用./support-files/mysql.server来启动和停止mysql了。否则,只能在/export/home/sms/mysql/执行./bin/mysqld_safe 来启动。
su - root
cd
/usr/local
ln –s
/export/home/sms/mysql-4.1.22 mysql
3.执行数据库脚本
rong%
cd /export/home/sms/mysql
rong%
./scripts/mysql_install_db
会在当前目录下面的data目录产生mysql目录和test目录,里面是系统所需要的库表
执行脚本过程,提示如下信息:
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h rong password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
rong% cd . ; ./bin/mysqld_safe &
4.启动/终止mysql
启动mysql:
rong%./bin/mysqld_safe
&
也可以这样来启动终止服务
mgame% ./support-files/mysql.server start &
终止mysql:
5.设定root口令()
rong%
cd /export/home/sms/mysql-4.1.24/bin
rong%
mysqladmin -u root password 'root'
rong% mysqladmin -u root -h rong password 'root'
注意:把root口令修改成了root。但是这个时候在bin目录下面直接执行mysql还是能进入mysql提示符状态,但是这时候没有选定任何数据库,等需要选定数据库的时候,还是有权限限制的。
6.登陆mysql
rong% cd
./bin
rong%
mysql
注意:这个时候的root口令是空,需要修改的话,可以按照上面的提示来修
6. 登录数据库mysql
经过上面的root口令修改之后,执行下面命令
rong% mysql -h
rong -u root -p mysql
7.创建数据库dl,mysql用户:dl,密码dlpassword。
a)
mysql> create database dl
b)
mysql> grant all on dl.* to dl@localhost
c)
mysql> grant all on dl.* to dl@’%’
d)
mysql> set password for
dl@localhost=password('dlpassword');
e)
mysql> set password for
dl@'%'=password('dlpassword');
8.这时候,执行man mysql 提示没有安装mysql 的man文件
TODO:继续解决如何安装mysql帮助文件的事情吧
下载网址:http://www.apache.org/
版本:2.2.3
Unix
Source: httpd-2.2.3.tar.gz
[PGP] [MD5]
参考指导文档:http://www.chedong.com/tech/apache_install.html#install
日积月累\技术积累\IP技术\WWW服务器&java应用服务器\Apache\
Apache学习笔记-安装过程指导.doc
1.
安装过程
2.
把安装包解压缩:httpd-unix-2.2.3.tar,生成目录:/export/home/sms/tools/httpd-2.2.3
3.
修改apache启动进程数量限制
rong% pwd
/export/home/sms/tools/httpd-2.2.3
rong% vi
./include/httpd.h
??没有这句话??
#define HARD_SERVER_LIMIT 2560
<===将原来的 HARD_SERVER_LIMIT 256 后面加个“0”
4.
安装三部曲:
执行之前,注意确认环境变量PATH,要包含/usr/ccs/bin, /usr/local/bin等。主要是要能找到make等命令。
特别注意:一定要使用全新的安装包,如果之前使用过的安装源目录,尤其第二次安装时候想更改安装目标目录的时候,一定要重新解压缩全新的安装包。否则第一次的安装参数会清理不干净。有严重问题。
a)
./configure --prefix=/export/home/sms/apache-2.2.3
b)
/usr/ccs/bin/make
c)
/usr/ccs/bin/make install (如果一次失败,可重复执行)
注意:
à如果需要重新configure,之前最好执行一下make
clean,把之前生成的文件清理干净。
à如果第一步的configure没有指定安装目录,就会缺省安装到/usr/local/apache2,这样就必须使用root用户来执行make
install安装。
à详细的配置选项,可以运行./configure
–help来查看
Installation directories:
--prefix=PREFIX
install architecture-independent files in PREFIX
[/usr/local/apache2]
--exec-prefix=EPREFIX install architecture-dependent
files in EPREFIX
[PREFIX]
--enable-ssl
SSL/TLS support (mod_ssl)
à以前安装过程记录:
安装目标目录:/usr/local/apache2[要用root用户执行]
一开始执行不成功,提示ranlib,gcc没找到,后来把/usr/ccs/bin,/usr/local/bin设定到PATH环境变量里,执行成功了。
编辑/etc/profile文件。
执行不成功的几次,曾经提示过的错误。
*** Error code 127
make: Fatal error: Command
failed for target `install'
Current working directory
/export/home/sms/httpd-2.2.3/srclib/apr
*** Error code 1
make: Fatal error: Command
failed for target `install-recursive'
Current working directory
/export/home/sms/httpd-2.2.3/srclib
*** Error code 1
make: Fatal error: Command
failed for target `install-recursive'
5.
配置apache-2.2.3
配置./conf/httpd.conf
ServerName
211.94.194.36:80
DocumentRoot "/oracle/wapdocs"
<Directory "/oracle/wapdocs">
...
</Directory>
6.
启动,终止apache httpd
用root用户执行()
cd /usr/local/apache2/bin
.apachectl start
apachectl stop
察看apache http进程:ps -ef|grep httpd
注意:即使用sms用户安装的,启动还是要用root用户启动。
配置apache虚拟路径(URL Path)
目的: 把物理路径/data2/resource配置成虚拟路径/resource
配置./conf/httpd.conf
1:配置物理路径
<Directory
/data2/resource>
Options
FollowSymLinks
AllowOverride None
Order
deny,allow
Deny from
all
</Directory>
2:配置虚拟路径影射Alias
Alias
/resource /data2/resource
配置apache虚拟主机(单独配置apache)
1.
配置普通形式虚拟主机
这种虚拟主机的配置形式是支持许多个域名解析到这台服务器,如果有其中一个需要用IP来配置虚拟主机的话,这种配置方式不能支持。
<VirtualHost
www.digitalcn.com.cn>
DocumentRoot "/oracle/web_digitalcn"
ErrorLog /export/home/sms/apache-2.2.3/logs/digitalcn_error_log
TransferLog /export/home/sms/apache-2.2.3/logs/digitalcn_access_log
</VirtualHost>
<VirtualHost www.rongtech.com.cn>
DocumentRoot "/oracle/wapdocs"
ErrorLog /export/home/sms/apache-2.2.3/logs/OA_error_log
TransferLog /export/home/sms/apache-2.2.3/logs/OA_access_log
</VirtualHost>
2.配置基于名字的虚拟主机
如果是一台服务器,用域名访问是一个虚拟主机,同时用IP访问是另外一个虚拟主机,则需要这种方式的虚拟主机配置才能做到。
NameVirtualHost 211.94.194.36
<VirtualHost
www.digitalcn.com.cn>
ServerName www.digitalcn.com.cn
DocumentRoot "/oracle/web_digitalcn"
ErrorLog /export/home/sms/apache-2.2.3/logs/digitalcn_error_log
CustomLog /export/home/sms/apache-2.2.3/logs/digitalcn_access_log
common
#
TransferLog /export/home/sms/apache-2.2.3/logs/digitalcn_access_log
</VirtualHost>
<VirtualHost
211.94.194.36>
ServerName 211.94.194.36
DocumentRoot "/oracle/wapdocs"
ErrorLog /export/home/sms/apache-2.2.3/logs/OA_error_log
CustomLog /export/home/sms/apache-2.2.3/logs/OA_access_log
common
#TransferLog /export/home/sms/apache-2.2.3/logs/OAaccess_log
</VirtualHost>
方案-1 apache和resin联动:apache解析/,resin解析/eshouse
目的:只是把一个静态页面index.htm放到apache的根目录下面,
1. 配置apache的根路径,指向/data2
DocumentRoot
"/data2"
# 20071120:
configure for document ROOT dir
<Directory
/data2>
Options Indexes
FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
其他不用配置,只是把resin和apache做一下编译整合就可以了
部署方式:
/data2作为静态页面的根路径,存放首页index.htm
/data2/resource作为图片文件存放路径。
方案-2配置apache+resin虚拟主机(resin根路径)
目的:把部署在resin/webapps/eshouse作为URL的根路径来访问
[此方案配置验证成功]
1. 配置apache:httpd.conf
<VirtualHost 58.83.130.10>
ServerName 58.83.130.10
DocumentRoot "/app/resin-3.0.24/webapps/eshouse"
ErrorLog /app/logs/error_log
CustomLog /app/logs/access_log common
#TransferLog /export/home/sms/apache-2.2.3/logs/OAaccess_log
</VirtualHost>
# 20071120: configure for Document Root dir
# 20071120: configure for Document Root dir
<Directory /app/resin-3.0.24/webapps/eshouse>
Options
Indexes FollowSymLinks
AllowOverride None
Order
allow,deny
Allow from
all
</Directory>
2. 配置resin
<host id="58.83.130.10">
<web-app id='/'
document-directory="/app/resin-3.0.24/webapps/eshouse"/>
</host>
配置apache虚拟主机(apache+resin联动配置)
1.
配置域名方式虚拟主机
这种虚拟主机的配置形式是支持许多个域名解析到这
环境和目标说明:
在211.94.194.36服务器上,apache监听端口是80,resin监听端口是8080。现在配置一个目录,作为80端口的url根路径来访问。
配置过程:
1. 创建一个部署路径,把jsp程序拷贝到这个目录下
/export/home/sms/testjsp
2. Apache 的httpd.conf
<VirtualHost
211.94.194.36>
ServerName 211.94.194.36
DocumentRoot "/export/home/sms/testjsp"
ErrorLog /export/home/sms/apache-2.2.3/logs/OA_error_log
CustomLog /export/home/sms/apache-2.2.3/logs/OA_access_log common
#TransferLog /export/home/sms/apache-2.2.3/logs/OAaccess_log
</VirtualHost>
<Directory
"/export/home/sms/testjsp">
Options Indexes
FollowSymLinks
#
AllowOverride None
# Controls who can get stuff
from this server.
Order allow,deny
Allow from all
</Directory>
3. Resin 的resin.conf
在 </server>里面配置一个host
<host
id="211.94.194.36">
<web-app
id='/' document-directory="/export/home/sms/testjsp"/>
</host>
访问验证
访问下面两个url,都可以访问到同样的内容,表明配置生效了。
直接访问resin的监听url
http://211.94.194.36:8080/index.jsp
访问apache监听url
http://211.94.194.36/index.jsp
版本:resin3.0.14,apache2.2.3
目前的安装情况说明:resin是在apache之前安装的。Apache1.X和apache2.X在安装选项上面的差别非常大。
需要重新配置resin,以生成mod_caucho给apache调用。
apache的安装目录是:/export/home/sms/apache-2.2.3
perl的安装目录是:/usr/perl5
执行命令:
% ./configure
\
--prefix=/export/home/sms/resin-3.0.14
\
--with-apache=/export/home/sms/apache-2.2.3
\
--with-apxs2=/export/home/sms/apache-2.2.3/bin/apxs
\
--with-perl=/usr/perl5
% make
% make
install
这时候会产生如下两个结果:(注意下面的不用手动配置,只要确认一下配置文件就行了)
1) 在/export/home/sms/apache-2.2.3/modules目录下生成动态连接库mod_caucho.so
2) 在apache配置文件apache-2.2.3/conf/httpd.conf增加如下内容:
# mod_caucho Resin Configuration
#
LoadModule caucho_module
/export/home/sms/apache-2.2.3/modules/mod_caucho.so
ResinConfigServer localhost 6802
CauchoStatus yes
3) 在resin配置文件resin-3.0.14/conf/resin.conf增加如下内容:
<cluster>
<srun
server-id="" host="127.0.0.1" port="6802"
index="1"/>
</cluster>
说明:resin的根目录不用动,还在$RESIN_HOME/web-apps目录下面放置程序。本来如果没有配置apache联动的话,resin监控的是8080端口,所以需要访问http://211.94.194.36:8080/index.jsp才行。但是现在访问http://211.94.194.36/index.jsp也可以了,就说明apache起作用了。这个时候下面两个URL都是生效的。
http://211.94.194.36/index.jsp
http://211.94.194.36:8080/index.jsp
验证测试:
可以直接访问resin的根目录下面的那个index.jsp
http://211.94.194.36/index.jsp
http://211.94.194.36:8080/index.jsp
详细说明:
configure的选项
--prefix=PREFIX
install architecture-independent files in PREFIX
[/export/home/sms/resin-3.0.14]
数据库连接池proxool-[ 非web应用使用 ]
配置classpath:增加proxool驱动proxool-0.9.0RC3.jar,以及proxool.xml所在目录。
执行的时候提示如下信息:命令行终端显示错误信息:
log4j:WARN No appenders could be
found for logger (org.logicalcobwebs.proxool.configuration.JAXPConfigurator).
log4j:WARN Please initialize the log4j system properly.
java.sql.SQLException: org.logicalcobwebs.proxool.ProxoolException:
Attempt to refer to a unregistered pool by its alias 'ezmylive'
后来替换了一下mysql连接驱动,替换成mysql-connector-java-3.0.9-stable-bin.jar。之后,问题解决。
现场mysql服务器版本:mysql-5.0.45-solaris8-sparc-64bit
数据库连接池proxool-[ Resin下使用 ]
Resin/log/stderr.log错误信息:
log4j:WARN No appenders could be
found for logger (org.logicalcobwebs.proxool.configuration.JAXPConfigurator).
log4j:WARN Please initialize the log4j system properly.
java.sql.SQLException: org.logicalcobwebs.proxool.ProxoolException:
Attempt to refer to a unregistered pool by its alias 'ezmylive'
参照上面的解决方法,替换驱动之后,问题依然存在。
下载地址:http://sourceforge.net/projects/awstats/
参考资料:http://www.chedong.com/tech/awstats.html
版本:6.7
Notes (2007-07-03 04:08)
安装过程
1. 解压缩安装包
gzip -d
awstats-6.7.tar.gz
tar xvf
awstats-6.7.tar
2. 拷贝部署应用cgi-bin。
把AWStats的cgi-bin目录拷贝到apache的cgi-bin目录下面
[root@letian
wwwroot]# pwd
/home/eshouse/tools/awstats-6.7/wwwroot
[root@letian
wwwroot]# cp -r cgi-bin/
/home/eshouse/httpd-2.2.4/cgi-bin/awstats
3. 部署AWStats静态页面
a)
拷贝wwwroot过去
[root@letian]#
pwd
/home/eshouse/tools/awstats-6.7
[root@]# cp -r wwwroot /home/eshouse/httpd-2.2.4/htdocs/awstats
b)
拷贝docs下面的静态文件到htdocs下面
[root@letian
docs]# pwd
/home/eshouse/tools/awstats-6.7/docs
[root@letian
docs]# pwd
/home/eshouse/tools/awstats-6.7/docs
[root@letian
docs]# cp * /home/eshouse/httpd-2.2.4/htdocs/awstats
cp: 略过目录 “images”
[root@letian
docs]# cp -r images/ /home/eshouse/httpd-2.2.4/htdocs/awstats
4. 部署tools目录里面的pl应用
[root@letian
tools]# pwd
/home/eshouse/tools/awstats-6.7/tools
[root@letian
tools]# cp * /home/eshouse/httpd-2.2.4/cgi-bin/awstats
cp: 略过目录 “webmin”
cp: 略过目录 “xslt”
[root@letian
tools]# cp -r webmin /home/eshouse/httpd-2.2.4/cgi-bin/awstats
[root@letian
tools]# cp -r xslt /home/eshouse/httpd-2.2.4/cgi-bin/awstats
到目前为止,访问http://58.83.130.10/awstats/,可以访问到AWStats的帮助文档。
5. 配置过程-修改awstats.model.conf 更名成common.conf
[root@letian
awstats]# pwd
/home/eshouse/httpd-2.2.4/cgi-bin/awstats
[root@letian
awstats]# mv awstats.model.conf
common.conf
6.
安装zlib,libxml2--
php的支持包-
预安装支持包:对于php5,需要最新的xml包和zip包。
对于php4.4.4,需要zlib包
最新版本的libxml2库(现在的libxml2 2.6.11),从XmlSoft.org下载。
最新版本的zlib库(现在的zlib 1.2.1)从Gzip.org下载。
后来就没有安装,而是指定/usr/lib目录就行了
--with-zlib-dir=/usr/lib \
安装php(Ver:4.4.4)
下载网址:http://www.php.net/downloads.php(官方网站)
http://cn2.php.net/get/php-5.2.0.tar.gz/from/a/mirror
版本: PHP 5.2.0
PHP 5.2.0 (tar.gz) [8,382Kb] - 02 Nov 2006
md5: 52d7e8b3d8d7573e75c97340f131f988
在执行configure的过程,提示xmllib错误,总之安装起来比较费劲。configure的过程实际上就是生成makefile的过程,如果配置没有成功,就不会生成相应的makefile,察看Makefile.*,会发现可能有字节数=0的Makefile文件。
一句话,还是安装4.4.4比较好。
版本:php
4.4.4
安装过程:
1.
解压缩
% gzip -d php-4.4.4.tar.gz
% tar xvf php-4.4.4.tar
2.
编译前配置
执行命令: (在执行configure之前,最好执行一下make clean)
./configure \
--prefix=/export/home/sms/php-4.4.4
\
--with-oci8=/oracle/ora806 \
--with-apxs2=/export/home/sms/apache-2.2.3/bin/apxs
\
--with-zlib-dir=/usr/lib \
--enable-force-cgi-redirect \
--with-gettext \
--with-iconv \
--with-png
相关说明:
--prefix:目标安装目录
--with-zlib-dir[=DIR] MySQL: Set the path to
libz install prefix.
--with-apxs2:apache2目录,如果是apache1.X的话,就用—whti-apxs
[!!注意!!:带上--with-mysql=/usr/local/mysql总是执行不成功,后来去掉了这个选项,但是在编译的时候看到-o里面还是有mysql的相关编译选项,
不知道是什么意思,最后测试一下在php里面mysql函数能不能调用成功就行了]
需要把将来需要支持的开发配置包含充分,
另外,在网上找到的一般说要用参数--with-apxs2=/usr/local/apache2/bin/apxs。但是提示出错,
因为系统安装的是apache2.2.0,要用参数:
--with-apxs2=/usr/local/apache2/bin/apxs
./configure
–help可以查看选项汇总
--with-mysql[=DIR] Include MySQL support.
DIR
is the MySQL base directory
--with-oci8[=DIR] Include
Oracle (OCI8) support.
The default DIR is ORACLE_HOME.
Use
--with-oci8=instantclient,/path/to/oic/lib
to use Oracle Instant Client installation
3.
编译
make
make install
4.
配置php
cp php.ini-dist /export/home/sms/php-4.4.4/lib/php.ini
修改配置项:register_globals = ON
5.
配置apache2.2.3
整合apache和php。
vi
/export/home/sms/apache-2.2.3/conf/httpd.conf
增加相应的AddType内容
# 20061212: for php-4.4.4
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
另外,注意确认此配置文件,在安装php的时候,是否被正确配置了如下内容(在make install的时候):
LoadModule
php4_module
modules/libphp4.so
6.
验证测试
在apache的后台根目录下[/oracle/wapdocs]编辑一个php文件,参见附录2(单纯验证php),附录3(验证通过php能不能访问mysql)
附录:删除已经安装的jdk pkg
注意:这里只是为了要全部删除java相关的包,所以在搜索安装包的时候采用了关键字,比如DK,java,ja等。但是删除每个具体的包的时候,还是要仔细确认包的说明内容,是不是和java相关,如果不相关,就不要删除。
0.
先显示安装包名称
# pkginfo |grep
DK|more
system SUNWcj2rt
JDK 1.2 run time environment (Simplified Chines
e supplement)
system SUNWj2dem
JDK 1.2 demo programs
system SUNWj2dem.2
JDK 1.2 demo programs
system SUNWj2dev
JDK 1.2 development tools
system SUNWj2dev.2
JDK 1.2 development tools
system SUNWj2man
JDK 1.2 man pages
system SUNWj2man.2
JDK 1.2 man pages
system SUNWj2rt
JDK 1.2 run time environment
system SUNWj2rt.2
JDK 1.2 run time environment
system SUNWj3dev
JDK 1.3 development tools
system SUNWj3dev.2
J2SDK 1.4 development tools
system SUNWj3dmo
JDK 1.3 demo programs
system SUNWj3dmo.2
J2SDK 1.4 demo programs
system SUNWj3jmp
J2SDK 1.4 Japanese man pages
system SUNWj3man
JDK 1.3 man pages
system SUNWj3man.2
J2SDK 1.4 man pages
system SUNWj3rt JDK
1.3 run time environment
system SUNWj3rt.2
J2SDK 1.4 runtime environment
system SUNWjej3m
JDK 1.3 man pages (Japanese EUC)
system SUNWjpj3m
JDK 1.3 man pages (Japanese PCK)
system SUNWjuj3m
JDK 1.3 man pages (Japanese UTF-8)
1.
删除包
# pkgrm SUNWj2dem
SUNWj2dem.2 SUNWj2dev.2
# pkgrm
211.94.194.36:2005年5月11日星期三操作记录
1)查看与jdk有关的开发包,
通过可能的方式把与java有关的包都找到,
# pkginfo |grep DK|more
# pkginfo |grep ja|more
# pkginfo |grep j|more
smsbak% pkginfo |grep DK|more
system
SUNWcj2rt
JDK 1.2 run time environment (Simplified Chinese supp
lement)
system
SUNWj2dem
JDK 1.2 demo programs
system
SUNWj2dev
JDK 1.2 development tools
system
SUNWj2man
JDK 1.2 man pages
system
SUNWj2rt JDK 1.2
run time environment
# pkginfo |grep ja|more
system SUNWjvdev JavaVM
developers package, includes javac, javah, and
javap
# pkginfo |grep j|more
system SUNWcjvdv Simplified
Chinese JavaVM developers package
system SUNWcjvrt Simplified
Chinese JavaVM run time environment
system SUNWjvdem JavaVM demo
programs
system SUNWjvman JavaVM man pages
system SUNWjvrt JavaVM run
time environment
2)删除这些老的开发包
smsbak% su
# pkgrm
SUNWj2man
# pkgrm
SUNWj2dev
# pkgrm SUNWj2dem
# pkgrm SUNWj2rt
# pkgrm
SUNWcj2rt
# pkgrm SUNWjvdev
# pkgrm
SUNWcjvdv
# pkgrm
SUNWcjvrt
# pkgrm
SUNWjvdem
# pkgrm
SUNWjvman
# pkgrm SUNWjvrt
2005年11月1日星期二 操作220.194.22.40服务器,重新安装jdk和resin
因为发现执行java命令出错:
#
java
java was not found in /usr/j2se/bin/sparc/native_threads/java
经察看发现:/usr/java连接的是java -> /usr/java1.1,
而36服务器上的情况是:java
-> jdk/j2sdk1.4.2_07
操作步骤:
察看和jdk相关的包,都删除掉,重新安装jdk
# pkginfo |grep
ja|more
system SUNWjvdev JavaVM
developers package, includes javac, javah, and
javap
# pkginfo |grep
DK|more
system SUNWj3dev J2SDK 1.4
development tools
system SUNWj3dmo J2SDK 1.4 demo
programs
system SUNWj3jmp J2SDK 1.4
Japanese man pages
system SUNWj3man J2SDK 1.4 man
pages
system SUNWj3rt J2SDK 1.4
runtime environment
#pkginfo |grep J|more
# pkginfo |grep J|more
system SUNWcjvdv Simplified
Chinese JavaVM developers package
system SUNWcjvrt Simplified
Chinese JavaVM run time environment
system SUNWj3dev J2SDK 1.4
development tools
system SUNWj3dmo J2SDK 1.4 demo
programs
system SUNWj3jmp J2SDK 1.4
Japanese man pages
system SUNWj3man J2SDK 1.4 man
pages
system SUNWj3rt J2SDK 1.4
runtime environment
system SUNWjvdem JavaVM demo
programs
system SUNWjvdev JavaVM
developers package, includes javac, javah, and
javap
system SUNWjvman JavaVM man pages
system SUNWjvrt JavaVM run
time environment
删除相关的java包
pkgrm SUNWjvdev
SUNWj3dev
SUNWj3dmo
SUNWj3jmp
SUNWj3man
SUNWj3rt
SUNWcjvdv
SUNWcjvrt
SUNWjvman
SUNWjvrt
SUNWjvdem
附录-测试php是否正常运行的程序
编写一个php程序:phpinfo.php
<?
//filename: phpinfo.php
phpinfo();
?>
附录-测试mysql连接的php程序
注意:红色部分需要替换成实际的内容。
<?
//Configure
$db_user="dl";
$db_pass="dlpassword";
$dbserverurl="211.94.194.36";
$expiretime="1200";///单位秒
$myaddress=getenv(SERVER_ADDR);
$youraddress=getenv(REMOTE_ADDR);
Function Fpconnect1($db_user,$db_pass) {
global $db_server;
$max
= 10;
while(!($conn = @mysql_connect($dbserverurl,$db_user,$db_pass)))
{
sleep(1);
if (++$c == $max) break;
}
if
($c == $max) { // Database
echo '对不起!数据库连接错误!<br/>';
exit;
}
if
($c!=0) echo("尝试多次才连接成功 ");
else
echo ("一次成功连接mysql数据库,祝贺阿!");
echo
"\n";
return $conn;
}
?>
<html>
<head>
<META
http-equiv="Content-Type" content="text/html;
charset=GBK">
<META
name="GENERATOR" content="IBM WebSphere Studio">
<META
http-equiv="Content-Style-Type" content="text/css">
</head>
<?
$conn=Fpconnect1($db_user,$db_pass);
$sql="select
account,name from dl.dl_user";
/*
mysql_query(&$conn,$sql);
$result
= mysql_use_result(&conn);
while((row
= mysql_fetch_row($result)))
{
echo
$row["account"];
echo
"";
}
*/
$rs=
mysql_query($sql,$conn);
if
($rs)
{
while($res=mysql_fetch_array($rs))
{
$outlink[$i][0]=$res["account"];
$outlink[$i][1]=$res["name"];
echo $res["account"] . "=" . $res["name"];
echo "\n";
$i++;
}
}
/*
$rs=mysql_query($sql,$conn);
while($row=mysql_fetch_row($rs))
{
echo
$row["account"];
echo
"";
}
*/
?>
</html>
附录-2:配置apache虚拟主机[网上资料]
四、实现Apache虚拟主机的两种方案
简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序
支持多个Apache服务器,如在公司财务部门有一台web服务器,名为
account.yourdomain.com,同时又想为sales部门建立网站,网站内容也
放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机
设置。
设置Apache虚拟主机通常有两种方案
1.基于IP的虚拟主机
这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的
网卡上绑定多个IP地址去服务多个虚拟主机。
若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先
你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到
/etc/rc.d/rc.local,确保每次启动后自动运行。
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
192.168.0.255 up
#/sbin/route add -host 192.168.0.2 eth0:0
然后你需要设置/etd/httpd/conf/httpd.conf文件:
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
然后分别创建目录
/home/httpd/sales.yourdomain.com,
/var/log/httpd/sales.yourdomain.com
放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保
你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2
。
注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的
虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机
方案。
2.基于名字的虚拟主机:
它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的
浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件
/etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.0.1
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/httpd/hr.yourdomain.com
ServerName hr.yourdomain.com
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
TransferLog /var/log/hr.yourdomain.com/access_log
注:
你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,
为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS
都指向IP地址192.168.0.1
上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能
没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案,
若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。
提示:上面所提到的相对目录可以用绝对路径代替,如:
/home/httpd/hr.yourdomain.com 可改为 D:/Inetpub/wwwroot