ChinaUnix首页 > 精华文章 > Web服务器 > 正文

[精华] [配置]RedHatAS4下Apache2+MySQL+Php+Tomcat整合及虚拟主机配置


http://www.chinaunix.net 作者:Bruce_yang  发表于:2007-12-17 12:37:02
发表评论】 【查看原文】 【Web服务器讨论区】【关闭

作者:杨文军
一、本文所用到的软件:
[color=Blue]Sun的JDK[/color]:j2sdk-1_4_2_09-linux-i586.bin
[color=Blue]Apache2.0.54[/color]:httpd-2.0.54.tar.gz
[color=Blue]MySQL[/color]:mysql-standard-4.1.14-pc-linux-gnu-i686.tar.gz
[color=Blue]Php[/color]:php-4.4.2.tar.gz
[color=Blue]Tomcat[/color]:jakarta-tomcat-5.0.28.tar.gz
[color=Blue]jakarta-tomcat-connectors-jk2[/color]:jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
本文中所有软件安装在[color=Blue]/home/www[/color]目录中。
注:文中[color=Red]红色字体[/color]为输入的命令行。

二、软件安装
1、首先安装Sun的JDK

[root@yangwenjun www]# [color=Red]./j2sdk-1_4_2_09-linux-i586.bin[/color]

安装后会生成文件夹j2sdk1.4.2_09,将文件夹j2sdk1.4.2_09移动(或复制)到你想要存放的JDK的位置,本文中是放在/home/www/j2sdk1.4.2_09
接下来编辑/etc/profile文件加入JDK环境变量,在文件末尾处加入以下内容:

[root@yangwenjun www]# [color=Red]vi /etc/profile[/color]

export JAVA_HOME=/home/www/j2sdk1.4.2_09
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
:$JAVA_HOME/lib/mysql-connector-java-3.2.0.jar:$JAVA_HOME/lib/classes12.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre

[root@yangwenjun etc]# [color=Red]source profile[/color]
[root@yangwenjun etc]# [color=Red]set[/color]

在这里你可以看见所有的环境变量。
[root@yangwenjun etc]# [color=Red]java –version[/color]
如果JDK配置正确的话,运行上面的命令将会出现JDK的相应版本。

2、安装MySQL

[root@yangwenjun www]# [color=Red]tar xzfv mysql-standard-4.1.14-pc-linux-gnu-i686.tar.gz[/color]
[root@yangwenjun www]# [color=Red]cd mysql-standard-4.1.14-pc-linux-gnu-i686[/color]
[root@yangwenjun mysql-standard-4.1.14-pc-linux-gnu-i686]# [color=Red][/color]more INSTALL-BINARY

认真的阅读一下这个文档,就会发现MySQL很容易安装

[root@yangwenjun mysql-standard-4.1.14-pc-linux-gnu-i686]# [color=Red]groupadd mysql[/color]
[root@yangwenjun mysql-standard-4.1.14-pc-linux-gnu-i686]# [color=Red]useradd -g mysql mysql[/color]
[root@yangwenjun www]# [color=Red]mv mysql-standard-4.1.14-pc-linux-gnu-i686 /home/www/mysql[/color]     
[root@yangwenjun www]# [color=Red]cd /home/www/mysql[/color]
[root@yangwenjun mysql]# [color=Red]scripts/mysql_install_db --user=mysql[/color]
[root@yangwenjun mysql]# [color=Red]chown -R root .[/color]
[root@yangwenjun mysql]# [color=Red]chown -R mysql data[/color]
[root@yangwenjun mysql]# [color=Red]chgrp -R mysql .[/color]
[root@yangwenjun mysql]# [color=Red]bin/mysqld_safe --user=mysql &[/color]

这样MySQL就已经启动了,下面为root用户设置密码:

[root@yangwenjun mysql]# [color=Red]./bin/mysqladmin -u root password ‘password’[/color]
[root@yangwenjun mysql]# [color=Red]./bin/mysqladmin -u root -h localhost.localdomain[/color] password 'pass'
[root@yangwenjun mysql]# [color=Red]./bin/mysql -u root -p[/color]
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.1.14-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

[root@yangwenjun mysql]# [color=Red]cp support-files/mysql.server /etc/init.d/mysql[/color]
[root@yangwenjun mysql]# [color=Red]vi /etc/init.d/mysql[/color]
修改如下定义使其内容为:
basedir=/home/www/mysql
datadir=/home/www/mysql/data
[root@yangwenjun mysql]# [color=Red]chkconfig --level 345 mysql on[/color]
[root@yangwenjun mysql]# [color=Red]service mysql restart[/color]
Shutting down MySQL...                                     [  OK  ]
Starting MySQL                                                  [  OK  ]
[root@yangwenjun mysql]#

到这里MySQL就装好了。


3、安装Apache
[root@yangwenjun httpd-2.0.54]# [color=Red]cd /home/bruce/software/www/httpd-2.0.54[/color]
[root@yangwenjun httpd-2.0.54]# [color=Red]./configure --prefix=/home/www/apache --enable-module=most --enable-shared=max --enable-so[/color]
[root@yangwenjun httpd-2.0.54]# [color=Red]make[/color]
[root@yangwenjun httpd-2.0.54]# [color=Red]make install[/color]

创建一个httpd启动脚本,内容如下:
[root@yangwenjun init.d]# [color=Red]vi httpd[/color]
#!/bin/bash
# Startup script for the Apache Web Server
# 包含函数库
. /etc/rc.d/init.d/functions
# 获取网络配置
. /etc/sysconfig/network
# 检测 NETWORKING 是否为 "yes"
[ "${NETWORKING}" = "no" ] && exit 0
# apache安装目录
APACHE=/home/www/apache
# 启动服务函数
start() {
 echo $"Starting httpd service: " 
 $APACHE/bin/apachectl start
 RETVAL=$?
 echo
}
# 关闭服务函数
stop() {
 echo $"Stopping httpd service: "
 $APACHE/bin/apachectl stop
 RETVAL=$?
 echo
}
# 根据参数选择调用
case "$1" in
  start)
 start
 ;;
  stop)
 stop
 ;;
  restart)
 stop
 start
 ;;
  *)
 echo $"Usage: $0 start|stop|restart"
 exit 1
esac
exit 0
保存退出vi
[root@yangwenjun init.d]# [color=Red]chmod 755 httpd[/color]
[root@yangwenjun init.d]# [color=Red]chkconfig --level 345 httpd on[/color]
[root@yangwenjun conf]# [color=Red]vi httpd.conf[/color]
修改默认启动页
DirectoryIndex index.html index.htm default.htm default.html index.php index.php3 index.jsp
[root@yangwenjun init.d]# [color=Red]service httpd restart[/color]
Apache安装完毕!
4、安装Php
[root@yangwenjun www]# [color=Red]tar zxvf php-4.4.2.tar.gz[/color]
[root@yangwenjun www]# [color=Red]cd php-4.4.2[/color]
[root@yangwenjun php-4.4.2]# [color=Red]./configure --prefix=/home/www/php --with-mysql=/home/www/mysql --with-apxs2=/home/www/apache/bin/apxs[/color]
[root@yangwenjun php-4.4.2]# [color=Red]make[/color] 
[root@yangwenjun php-4.4.2]# [color=Red]make install[/color]
[root@yangwenjun php-4.4.2]# [color=Red]cp php.ini-dist /usr/local/lib/php.ini[/color]
[root@yangwenjun php-4.4.2]# [color=Red]cd /home/www/apache/conf[/color]
[root@yangwenjun conf]# [color=Red]vi httpd.conf[/color]
#系统自动添加了这一行,如果没有则自己加入这一行。
LoadModule php4_module modules/libphp4.so
在AddType application/x-tar .tgz 
下加一行 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php .php3
编写文件index.php 写入下一行
<? echo phpinfo() ?>
通过浏览器我们看到了我们的测试结果。至此,PHP装好了。

5、安装Tomcat及jakarta-tomcat-connectors-jk2
本文安装的版本是:jakarta-tomcat-5.0.28
[root@yangwenjun www]# [color=Red]tar xzfv jakarta-tomcat-5.0.28.tar.gz[/color]
[root@yangwenjun www]# [color=Red]cp -rf jakarta-tomcat-5.0.28 /home/www/tomcat[/color]
[root@yangwenjun www]# [color=Red]cd /home/www/tomcat[/color]
现在来测试一下tomcat是否安装成功
启动tomcat服务:
[root@yangwenjun tomcat]# [color=Red]./bin/startup.sh[/color]
访问http://ip:8080/看能否看到tomcat的默认页面,如能看到说明tomcat已经在服务了.
停止tomcat服务:
[root@yangwenjun tomcat]# [color=Red]./bin/shutdown.sh[/color]

开始安装jakarta-tomcat-connectors-jk2
[root@yangwenjun www]# [color=Red]tar xzfv jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz[/color]
[root@yangwenjun www]# [color=Red]cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/[/color]
[root@yangwenjun native2]# [color=Red]./configure --with-apxs2=/home/www/apache/bin/apxs[/color]
[root@yangwenjun native2]# [color=Red]make[/color]
[root@yangwenjun native2]# [color=Red]cd ../build/jk2/apache2/[/color]
[root@yangwenjun apache2]# [color=Red]/home/www/apache/bin/apxs -n jk2 -i mod_jk2.so[/color]
上条命令是将mod_jk2.so添加到apache2的modules中.
上面就完成了Tomcat和Connectors的安装.接下来进行与Apache的整合.
6、Tomcat与Apache的整合
[root@yangwenjun apache2]# [color=Red]cd /home/www/apache/conf/[/color]
[root@yangwenjun conf]# [color=Red]vi httpd.conf[/color]
编辑配置文件在其中加入这个模块,保存退出
LoadModule jk2_module modules/mod_jk2.so
然后在这个目录新建一文件workers2.properties
[root@yangwenjun conf]# [color=Red]vi workers2.properties[/color]
文件内容如下:
[root@yangwenjun conf]# more workers2.properties
  [channel.socket:202.114.33.249:8009]
  port=8009
  host=202.114.33.249
  [ajp13:202.114.33.249:8009]
  channel=channel.socket:202.114.33.249:8009
  [uri:/*]
  worker=ajp13:202.114.33.249:8009
  [uri:/examples/*]
  worker=ajp13:202.114.33.249:8009

当然以上内容中的202.114.33.249也可改成localhost
接下来进入tomcat下的conf目录:
[root@yangwenjun conf]# [color=Red]cd /home/www/tomcat/conf/[/color]
修改server.xml文件
[root@yangwenjun conf]# [color=Red]vi server.xml[/color]
找到其中的<Host>中的<Contest>项,我修改后的相关参数如下:
<Context path="" docBase="/home/www/apache/htdocs" debug="0"
        reloadable="true" crossContext="true"/>
编辑后保存退出.
重启Apache和Tomcat后可以查看整合后的效果.如下图所示:
[root@yangwenjun conf]# [color=Red]/home/www/tomcat/bin/startup.sh[/color]
[root@yangwenjun conf]# [color=Red]service httpd restart[/color]


三、架设整合后的虚拟主机
    [root@yangwenjun conf]# [color=Red]vi /home/www/apache/conf/httpd.conf[/color]
在httpd.conf文档末尾虚拟主机设置处加入以下内容:
NameVirtualHost *:80
<VirtualHost *:80>
    Documentroot /home/www/apache/htdocs
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /home/bruce/test1
    ServerName test1.yangwenjun.com
</VirtualHost>
<VirtualHost *:80>
        DocumentRoot /home/bruce/test2
    ServerName test2.yangwenjun.com
</VirtualHost>

    [root@yangwenjun conf]# [color=Red]vi /home/www/tomcat/conf/server.xml[/color]
在server.xml文档的<Engine>......</Engine>中间添加两段<Host>......</Host>
内容如下:
      <Host name="test1.yangwenjun.com" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="/home/bruce/test1" debug="0"
        reloadable="true" crossContext="true"/>
        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>
      </Host>

      <Host name="test2.yangwenjun.com" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="/home/bruce/test2" debug="0"
        reloadable="true" crossContext="true"/>
        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>
      </Host>

重启Apache和Tomcat后可以查看架设的虚拟主机的效果.如下图:
[root@yangwenjun conf]# [color=Red]/home/www/tomcat/bin/startup.sh[/color]
[root@yangwenjun conf]# [color=Red]service httpd restart[/color]




[url=http://www.yangwenjun.com/attachments/month_0606/520066914316.PDF][color=Red]本文PDF文档下载[/color]

----------全  文  完----------

[ 本帖最后由 Bruce_yang 于 2006-6-9 16:28 编辑 ]



 Bruce_yang 回复于:2006-06-09 16:09:25

写的够详细吧.应该可以上精华吧.


 HonestQiao 回复于:2006-06-09 18:07:12

希望楼主继续努力


 xxjoyjn 回复于:2006-06-09 20:26:09

支持,LZ辛苦了。


 shaying110 回复于:2006-06-11 11:39:46

多谢楼主,互联网时代,开源共享


 cefiro999 回复于:2006-06-12 15:18:55

精华!!!


 jordan123123 回复于:2006-06-12 17:01:37

hao hao


 半粒沙 回复于:2006-07-15 23:18:23

辛苦了


 zqlogin 回复于:2006-07-19 17:57:20

好好看看.


 Baroms 回复于:2006-07-20 10:25:33

不知楼主有没有试过PHP能不能用
我装好后PHP不能用
谁知道是怎么回事
回帖说明以下
谢谢!!!


 Baroms 回复于:2006-07-20 15:05:53

楼主的workers2.properties文件有错误
[root@localhost conf]# vi workers2.properties
文件内容如下:
[root@localhost conf]# more workers2.properties
  [channel.socket:localhost:8009]
  port=8009
  host=localhost
  [ajp13:localhost:8009]
  channel=channel.socket:localhost:8009
  [uri:/*.jsp]
  worker=ajp13:localhost:8009
  [uri:/examples/*.jsp]
  worker=ajp13:localhost:8009
是上面的内容才对
[uri:/*.jsp]  [uri:/examples/*.jsp]后面加.jsp


 Linux@初学者 回复于:2006-07-20 17:00:55

我按上面的配置后访问主页时提示:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email]you@example.com[/email] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


--------------------------------------------------------------------------------

Apache/2.0.58 (Unix) PHP/5.1.4 mod_jk2/2.0.4 Server at 192.169.0.67 Port 80

APACHE的error.log:
[Thu Jul 20 17:27:39 2006] [error] ajp13.init(): No channel 192.169.0.67:8009
[Thu Jul 20 17:28:05 2006] [error] mod_jk2.handler() Error connecting to tomcat 120000, status 0
[Thu Jul 20 17:28:10 2006] [error] mod_jk2.handler() Error connecting to tomcat 120000, status 0
[Thu Jul 20 17:28:35 2006] [error] mod_jk2.handler() Error connecting to tomcat 120000, status 0

这是为啥?


 Baroms 回复于:2006-07-20 17:01:54

我按照上面的改好后servlet/?*不能用了

有没有在行的给看下啊!!
谢谢!!!


 kozziwoo 回复于:2006-09-16 16:35:10

...
开始安装jakarta-tomcat-connectors-jk2
[root@yangwenjun www]# tar xzfv jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
[root@yangwenjun www]# cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
[root@yangwenjun native2]# ./configure --with-apxs2=/home/www/apache/bin/apxs
[root@yangwenjun native2]# make
...

make: *** No targets specified and no makefile found.  Stop.

why?


 wanfei 回复于:2006-09-22 16:30:26

LoadModule php4_module modules/libphp4.so
当我在FedoraCore4(简体中文)安装完Apache,在安装完php4后,重启apache,发现apache系统不能装载上面的module,试了很多次都不行。郁闷


 fuminglei8 回复于:2006-09-23 10:47:00

有没有连ORACLE的文档.我这里使用的是Oracle 10g,用上述方法配置了(把Mysql换成了oracle),但不能连上.请帮助一下


 chenlie39 回复于:2006-10-08 13:45:14

我准备也写个solaris10下面apache +tomcat的, 没想到高人已在高处。

赶快把虚拟整合也抄下来哦。


 gb8007 回复于:2006-11-24 17:09:23

把它顶起,我配置过程中出现新的问题,还请指教一二。。。。。。
os: rh4
tomcat:jakarta-tomcat-5.0.28.tar.gz
appache:httpd-2.0.54  
Jdk:j2sdk-1_4_2_09-linux-i586.bin
 jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
apr-1.2.7.tar.gz
apr-util-1.2.7.tar.gz
libtool-1.5.22.tar.gz

这些软件的安装并没什么问题,但我安装至 jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz的时候,
却出现了如下问题,请问怎么解决
[root@webserver webserver]# cd jakarta-tomcat-connectors-jk2-2.0.4-src
[root@webserver jakarta-tomcat-connectors-jk2-2.0.4-src]# ls
build.properties.default  build.xml  common  doc  jk  KEYS  lib  LICENSE  NOTICE  README.txt  RELEASE-NOTES.txt  scandoc  xxx
[root@webserver jakarta-tomcat-connectors-jk2-2.0.4-src]# cd jk/native2/
[root@webserver native2]# ./configure --with-apxs2=/home/www/apache/bin/apxs
.......
config.status: creating scripts/build/unix/dummy
config.status: executing depfiles commands
[root@webserver native2]# make
.......
make[1]: *** [../../../build/jk2/apache2/mod_jk2.so] Error 1
make[1]: Leaving directory `/home/webserver/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'
make: *** [jk2-build] Error 1
[root@webserver native2]#


 gb8007 回复于:2006-11-24 17:15:21

make[1]: *** [../../../build/jk2/apache2/mod_jk2.so] Error 1
查了一些,我的问题可能是要将..../jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2/下的mod_jk2.so cp 到...../apache/modules 下(apache目录为我自己建的安装apache的目录),然而.../jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2/下 并没有mod_jk2.so文件,请指教。


 gb8007 回复于:2006-11-24 18:46:39

顶一下自己


 wing-qiang 回复于:2006-11-27 12:21:56

很有帮助,支持!


 chenjie34 回复于:2007-01-18 11:07:01

多谢楼主,互联网时代,开源共享


 mcumsigscr 回复于:2007-01-18 15:34:21

感谢楼主.顶.


 xxd1019 回复于:2007-01-27 14:11:37

楼主我基本就是看你的做的。为什么到了最后看JSP显示不出来。要显示出来必须的带8080端口啊 [font=黑体]Sample Text[/font][size=5]Sample Text[/size][color=Red]Sample Text[/color]


 ykstar1981 回复于:2007-01-27 21:04:23

我弄了3边了 !!总是不行!!好象在最后设置方面还有点问题!


 cssweb234 回复于:2007-12-14 17:03:39

好东西,支持,收藏了。


 hyp198156 回复于:2007-12-17 12:37:02

好文章谢了




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=770898
转载请注明作者名及原文出处