`
faiinlove
  • 浏览: 57728 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux下Apache和Tomcat的整合

    博客分类:
  • php
阅读更多

前言:本文是我撰写的关于搭建“linux下整合apachetomcatWeb服务器的第2篇文章。比Linux下apahe和tomcat的整合(第一版)没有什么大的变化,增加了GD库、Zend、eaccelerator加速等,测试了一些PHP和JSP的知名开源程序,sablog、shopex、phpcms、discuz、ucenter_home、lybbs等都可以正常运行。

  Apache和Tomcat同是Apache基金会下面的两个项目。

  一个是HTTPWEB服务器,另一个是servlet容器(servlet container)。在我们生产的环境中,往往需要Apache做前端服务器,Tomcat做后端服务器。此时我们就需要一个连接器,这个连接器的作用就是把所有Servlet/JSP的请求转给Tomcat来处理。在Apache2.2之前,一般有两个组件可选择:mod_jk和mod_jk2。后来 mod_jk2没更新了,转而更新mod_jk,所以现在一般都使用mod_jk做Apache和Tomcat的连接器。
不过,自从Apache2.2出来后,你又多了种选择,那就是proxy-ajp。大家知道Apache里的proxy模块,可以实现双向代理功能,功能非常强大。其实从连接器的实现原理上来说,用proxy模块来实现是非常自然的。proxy模块的功能无非就是把相关的请求发给特定的主机再返回结果。那连接器的功能需求就是要把所有对Servlet/JSP的请求都转给后台的Tomcat。

安装步骤

系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.7,另在RedHat AS4上也安装成功

一、获取相关开源程序:
所需软件

引用:
eaccelerator-0.9.5.2.tar.bz2
gd-2.0.35.tar.gz
httpd-2.2.9.tar.gz
mysql-5.0.67.tar.gz
php-5.2.6.tar.gz
ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
jdk-6u7-linux-i586-rpm.bin
apache-tomcat-6.0.14.tar.gz
apr-1.3.3.tar.gz
apr-util-1.3.4.tar.gz
eaccelerator-0.9.5.2.tar.bz2
-----------------------------------------------------------------------------------------------------------------------
安装之前要确保系统中安装了以下这些包。
我们可以用rpm -qa |grep 来查看系统是否装
引用:
bzip2-devel
zlib-devel
libjpeg-devel
libpng-devel
libtiff-devel
freetype-devel
openssl-devel
libxml2-devel
gettext-devel
这些包一般都安了,除了最后一个,我们可以在光盘里找到用rpm -ivh 来安装上.

二、安装JDK
引用:
# pwd
/usr/local
# chmod a+x jdk-6u7-linux-i586-rpm.bin
# ./jdk-6u7-linux-i586-rpm.bin
# ln -s /usr/java/jdk1.6.0_07 /usr/local/java
设置环境变量

# vi profile
末尾增加如下内容
引用:
JAVA_HOME=/usr/java/jdk1.6.0_07
CLASSPATH=/usr/java/jdk1.6.0_07/lib/dt.jar:/usr/java/jdk1.6.0_07/lib/tools.jar
PATH=/usr/java/jdk1.6.0_07/bin:$PATH
export PATH JAVA_HOME CLASSPATH
保存退出
引用:
# source /etc/profile
验证:
引用:
#  java -version
三、安装MYSQL
引用:

# tar -zxvfmysql-5.0.67.tar.gz
# cd mysql-5.0.67
# groupadd mysql
# useradd -g mysql -s /sbin/nologin -M mysql
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-thread-safe-client
# make && make install
# cp support-files/my-medium.cnf  /etc/my.cnf
# chown -R mysql.mysql /usr/local/mysql/
# /usr/local/mysql/bin/mysql_install_db --user=mysql
# chown -R root.root /usr/local/mysql/
# chown -R mysql.mysql /usr/local/mysql/var/
启动数据库服务,并添加到自启动
引用:
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
# netstat -ant             查 看3306端口
加入自动启动服务队列:
引用:
#cp  support-files/mysql.server  /etc/rc.d/init.d/mysqld
#chmod  755  /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
#chkconfig  --level  345  mysqld  on
添加root密码
引用:
# /usr/local/mysql/bin/mysqladmin -u root password "123456"
测试一下:
引用:
# /usr/local/mysql/bin/mysql -u root -p
输入密码:123456,看能不能进入到数据

配置库文件搜索路径
引用:
# echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf
# ldconfig
# ldconfig -v
#echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
#source /etc/profile
四、安装Apr和Apr-util
引用:
# tar -zxvf apr-1.3.6.tar.gz
# cd apr-1.3.6
# ./configure  --prefix=/usr/local/apr
# make
# make install
# tar -zxvf apr-util-1.3.8.tar.gz
# cd apr-util-1.3.8
# ./configure  --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install
五、安装GD2
引用:

# tar -jxvf gd-2.0.35.tar.bz2
# cd gd-2.0.35
# ./configure --prefix=/usr/local/gd --with-png --with-freetype --with-jpeg --with-zlib --with-fontconfig
#make
#如果GD报错:configure.ac:64: warning: macro `AM_ICONV' not found in library
你就make clean一下,然后再make
#make install
六、安装Apache
引用:
# tar xzvf httpd-2.2.9.tar.gz
# cd httpd-2.2.9
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-proxy --enable-proxy-ajp --enable-proxy-balancer --enable-proxy-connect --enable-proxy-http --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
# make
# make install
# /usr/local/apache/bin/apachectl start
添加到自启动
引用:
# cp /usr/local/www/bin/apachectl /etc/rc.d/init.d/httpd
然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
# chkconfig: 2345 10 90
# description: Activates/Deactivates Apache WebServer
最后,运行chkconfig把Apache添加到系统的启动服务组里面:
# chkconfig --add httpd
# chkconfig httpd on
七、安装Tomcat
引用:
# cp apache-tomcat-6.0.20.tar.gz /usr/local/
# cd /usr/local/
# tar xzvf apache-tomcat-6.0.20.tar.gz
# ln -s apache-tomcat-6.0.20 tomcat
#vi /usr/local/tomcat/bin/catalina.sh
加入一行:
引用:
JAVA_HOME=/usr/java/jdk1.6.0_14
# /usr/local/tomcat/bin/startup.sh

启动服务后访问本地的8080端口可以看到对应apache tomcat页面了

把Tomcat加到自启动:
vi /etc/rc.d/rc.local
在里面加入如下代码
引用:
export JDK_HOME=/usr/java/jdk1.6.0_14
export JAVA_HOME=/usr/java/jdk1.6.0_14
/usr/local/tomcat/bin/startup.sh
八、安装PHP
引用:

#tar zxvf php-5.2.5.tar.gz
#cd php-5.2.5
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd --with-config-file-path=/usr/local/php --enable-mbstring=all
# make
# make install
# cp php.ini-recommended /usr/local/php.ini
整合apache与php
# vi /usr/local/apache/conf/httpd.conf

找到AddType application/x-gzip .gz .tgz在其下加以下内容
引用:
AddType application/x-httpd-php .php
查找:(设置WEB默认文件)
DirectoryIndex index.html
改成:
引用:
DirectoryIndex index.php index.jspindex.html index.htm
保存退出
引用:
service httpd restart
然后在目录中建一个文件用来测试php情况
在htdocs目录下建一个测试页
引用:

vi index.php
<?php
phpinfo();
?>
保存退出
重启apache

九、安装Zend
引用:

# tar zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.3.0a-linux-glibc21-i386
# ./install.sh
出现一个界面
OK点回车
安装协议直接回车
YES回车

然后问你php的配置文件,我们前面已经知道是在/etc下所以直接回车
问你是用apache服务器吗,当然用选YES
问apche的控制命令在哪 /usr/local/apache/bin/apachectl
然后开始装有进度条但很快,然后到一个有/etc/php.ini-zend_optimizer.bak备份的界面选OK
go on "OK"
问你是否重新启动apache选YES
提示apache启动成功点"OK"
安装完成
我们再输入IE看那个测试页Zend是否加载成功。
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
没有zend之前是这样的:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies就是这样的。

十、安装eaccelerator加速软件

eaccelerator是php的加速软件,使用后php的执行效率会有很大幅度的提升。目前eaccelerator0.9.5.2已经和ZendOptimizer-3.3.0能够基本上兼容啦。
引用:

# tar jxvf eaccelerator-0.9.5.2.tar.bz2
# cd eaccelerator-0.9.5.2
# /usr/local/php/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make
# make install
编译安装后我们会看到屏幕提示的eaccelerator.so所在的目录,php5.2.x系列是在/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/,记住这个路径,待会要用到。

修改php.ini(安装完zend之后,php.ini存入于/usr/local/Zend/etc)

# vi /usr/local/zend/etc/php.ini

安装php扩展
在文件最后,[zend]之前,注意,这部分内容务必放在[zend]之前,不然可能会出现不可预期的服务器问题。添加下列信息:
引用:
[eaccelerator]
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
重启apache然后在IE还是那个php测试页,zend哪又有没有变化如没有,说明这种方法没有好用。
然后mkdir /tmp/eaccelerator
# chmod 777 /tmp/eaccelerator

在浏览器中打开phpinfo()那个测试页,如果出现以下内容,证明安装成功!
引用:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
最后就可以把网站工程放在/usr/local/htdocs目录下进行测试了。
OK~~全部结束!!!!


十一、Tomcat 与Apache 的整合

# vi httpd.conf
在文件末尾增加一下两行
引用:
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
这里要注意的是如果没有虚拟主机的话在http.conf中直接加以上两行如果有就不加了。
如果做虚拟主机的话如果是JSP 加其它不加
例:
vi /usr/local/apache/conf/http.conf
把:
#Include conf/extra/httpd-vhosts.conf
去掉注释保存
然后vi /usr/local/apache/conf/extra/httpd-vhosts.conf

把:
引用:

NameVirtualHost :80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost :80>
ServerAdminwebmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAliaswww.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost :80>
ServerAdminwebmaster@dummy-host2.example.com
DocumentRoot "/usr/local/apache/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
改成:
引用:

NameVirtualHost  192.168.1.100:80
<VirtualHost 192.168.1.100:80>
ServerName bbs.yahunet.com
DocumentRoot "/usr/local/apache/htdocs/bbs"
ErrorLog /usr/local/apache/htdocs/yahunet/error_log
CustomLog /usr/local/apache/htdocs/yahunet/access_log common
</VirtualHost>
<VirtualHost 192.168.1.100:80>
ServerNamewww.syitren.com
DocumentRoot "/usr/local/apache/htdocs/syitren"
ErrorLog /usr/local/apache/htdocs/syitren/error_log
CustomLog /usr/local/apache/htdocs/syitren/access_log common  
</VirtualHost>
注:加这两行日志要注意就是在相应的路径下一定要建
ServerAlias 是别名也就是域名这里需注意的是在不是JSP工程时虚拟主机只改httpd-vhosts.conf加上就可以而JSP工程不但在这得加还要在server.xml中也要加具体方法看下面的。
以上是PHP的但如果是JSP
引用:
<VirtualHost 192.168.1.100:80>
ServerName bbs.syitren.com
DocumentRoot "/usr/local/tomcat/webapps/wz"
ErrorLog /usr/local/apache/htdocs/syitrenbbs/error_log
CustomLog /usr/local/apache/htdocs/syitrenbbs/access_log common
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
</VirtualHost>
这里就得加这两行而且还得在tomcat配置文件server.xml中也得做虚拟主机目录和这个要一致。
server.xml中这么加:
引用:
<Host name="www.syitren.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"  xmlNamespaceAware="false">
  <Context path="" docBase="/usr/local/apache/htdocs/syitren/" debug="0" reloadable="true" crossC/>  
  <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www_5sai_log." suffix=".txt"
timestamp="true"/>
</Host>

OK,最后就是用工程测试了。

到此大功告成!!!

[来自:http://www.phpchina.com/html/84/n-34884.html]

分享到:
评论

相关推荐

    linux+apache+tomcat整合完整详解版(最新)

    Linux+Apache+Tomcat 的整合是目前最常用的 web 服务器架构之一,本文档将详细介绍如何在 Red Hat Enterprise Linux 5.2 环境下安装和配置 Apache2.2.12、Tomcat6.0.20 和 JDK6u16,以实现一个完整的 JSP 环境。...

    ubuntu linux下apache与tomcat的整合.txt

    在 Ubuntu Linux 环境中,Apache 和 Tomcat 的整合是一项常见的任务,旨在实现静态内容通过 Apache 服务器进行高效分发,而动态内容(如 Java 应用)则通过 Tomcat 服务器处理。这种配置不仅能够提高系统的性能,还...

    Linux下Apache与Tomcat整合

    在Linux环境中,将Apache HTTP服务器和Tomcat应用服务器整合是一个常见的需求,这使得Apache能够处理静态内容,而Tomcat则负责动态内容的处理,如Java Servlets和JSP。以下是一个详细步骤,介绍如何在Linux系统上...

    Linux6.0下Apache与tomcat 整合支持php html java(编译安装)

    "Linux 6.0 下 Apache 与 Tomcat 整合支持 PHP、HTML、Java(编译安装)" Linux 6.0 下 Apache 与 Tomcat 的整合是指在 Linux 6.0 操作系统...本文的内容将有助于读者更好地理解 Linux 6.0 下的Apache 和 Tomcat 整合。

    Linux下Apache与Tomcat整合的简单方法.doc

    ### Linux下Apache与Tomcat整合的简单方法:深入解析 #### 核心知识点概览: 在Linux环境下,Apache与Tomcat的整合是一个常见的需求,尤其是对于那些希望利用Apache的高效静态资源处理能力和Tomcat的强大Java应用...

    Linux系统下Apache与Tomcat整合的简单方法

    Apache 与 Tomcat 整合是将 Apache 作为前端服务器,负责静态页面的处理和负载均衡,而 Tomcat 作为后端应用服务器,专门处理动态请求。这种整合方式可以充分利用两者的优势,提高系统的稳定性和效率。以下是整合...

    Linux下Apache与Tomcat整合的简单方法

    在Linux环境下,将Apache HTTP服务器与Tomcat应用服务器整合是常见的做法,以便充分利用Apache的静态资源处理能力以及Tomcat对Java Web应用的支持。以下是一个简单的整合步骤: 1. **准备工作**:确保已安装JDK,...

    在Linux下进行Apache+tomcat整合

    在Linux下进行Apache+tomcat整合

    apache+tomcat整合.pdf

    在讨论Apache与Tomcat的整合之前,首先需要了解Apache和Tomcat的基本概念。Apache HTTP Server(通常简称为Apache)是一个广泛使用的开源网页服务器,它非常擅长处理静态内容,如HTML页面和图片等。而Tomcat是一个...

    Apache与Tomcat 整合发布web(Linux)

    这篇文章将探讨如何在Linux环境下整合Apache与Tomcat,以便更有效地发布Web应用。 首先,让我们了解Apache和Tomcat的基本功能。Apache主要负责处理静态网页内容,如HTML、CSS、JavaScript等,而Tomcat则是Java应用...

    apache web整合Tomcat工具Linux版

    通过以上步骤,Apache和Tomcat在Linux环境下就能协同工作,提供高效、可靠的Web服务。这个整合工具对于那些希望在一台服务器上同时利用Apache和Tomcat优势的开发者来说非常有用,它允许他们利用Apache处理静态资源,...

    Linux下Tomcat与Apache Web服务器整合

    **Apache与Tomcat整合** 在实际应用中,Apache和Tomcat的整合能充分利用两者的优势。一种常见的整合方式是使用Apache作为前端服务器处理静态内容,将动态请求通过Apache的mod_proxy模块转发给Tomcat处理。这样可以...

    Apache和Tomcat整合总结.pdf

    apache与tomcat整合总结操作文档,虚拟机环境下的Linux 用的Nat和本机相连 Linux IP: 192.168.128.129 XP IP: 192.168.128.1 OS:CentOS 5.4 JDK: CentOS自带的jdk-1.6.0 RPM包 PHP:php-5.1.6(linux光盘...

    Apache与Tomcat整合的简单方法.pdf

    ### Apache与Tomcat整合的简单方法 #### 一、引言 随着互联网技术的发展,越来越多的应用需要同时利用Apache和Tomcat的优势。Apache作为一款稳定、高效且功能强大的Web服务器,而Tomcat则是一款专为Java应用程序...

    linux中tomcat和apache的整合

    NULL 博文链接:https://lectery.iteye.com/blog/284304

    linux下apache2.2整合tomcat6详细步骤.docx

    在Linux环境下,将Apache2.2与Tomcat6进行整合是一项常见的任务,这通常涉及到创建一个Web服务器集群,以便能够处理动态和静态内容。Apache作为前端服务器,主要负责静态资源的处理,而Tomcat作为后端应用服务器,...

    Linux下轻松实现Apache和Tomcat的负载均衡.pdf

    通过以上步骤,Linux环境下的Apache和Tomcat整合及负载均衡配置基本完成。这种方式可以提高系统的可用性和响应速度,尤其在处理大量并发请求时,通过负载均衡可以有效分担服务器压力,提升系统整体性能。同时,这种...

    mod_jk各个版本 apache与tomcat 整合

    在 IT 行业中,Apache 和 Tomcat 的整合是非常常见的需求之一。通过使用 mod_jk 这一模块,我们可以实现 Apache 和 Tomcat 之间的高效通信。mod_jk 是一个负载均衡器和反向代理,它能够帮助我们在多个应用服务器之间...

    Apache与Tomcat整合

    在 Linux 系统下整合 Apache 和 Tomcat 的步骤包括: 1. 准备相关软件包,如 Apache、Tomcat 和 mod_jk 源码。 2. 安装 Apache 并配置安装路径。 3. 安装 Tomcat,通常是解压二进制包。 4. 编译 mod_jk 模块,指定 ...

Global site tag (gtag.js) - Google Analytics