- 浏览: 57728 次
- 性别:
- 来自: 深圳
最新评论
-
sheldan:
sheldan@126.com 谢谢了啊
Blitz templates 最快的PHP模板引擎 -
msn877763580:
好东西啊………………学习中
做网站的一些定律 -
huhu359819176:
經典!收藏哈!
做网站的一些定律 -
cremains:
不错啊,学习了,张进了
做网站的一些定律 -
beowulf1985:
好多大道理,學習了!!
做网站的一些定律
前言:本文是我撰写的关于搭建“linux下整合apache和tomcat”Web服务器的第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
二、安装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
引用:
# 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引用:
# /usr/local/mysql/bin/mysqladmin -u root password "123456"
引用:
# /usr/local/mysql/bin/mysql -u root -p
配置库文件搜索路径
引用:
# 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引用:
# 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引用:
# 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引用:
# 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引用:
# 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
启动服务后访问本地的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引用:
#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
# vi /usr/local/apache/conf/httpd.conf
找到AddType application/x-gzip .gz .tgz在其下加以下内容
引用:
AddType application/x-httpd-php .php
DirectoryIndex index.html
改成:
引用:
DirectoryIndex index.php index.jspindex.html index.htm
引用:
service httpd restart
在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
修改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"
然后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
OK~~全部结束!!!!
十一、Tomcat 与Apache 的整合
# vi httpd.conf
在文件末尾增加一下两行
引用:
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
如果做虚拟主机的话如果是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>
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]
发表评论
-
PHP魔术方法汇总[转]
2010-10-17 13:48 1626从php5以后的版本,php的类就可以使用魔术方法 ... -
[转]PHP:PDO驱动的一些方法属性
2010-09-30 08:35 1535PDO::setAttribute(属性,值) ... -
PHP导出QQ好友
2009-11-23 13:29 2008从昨天晚上开始 ... -
WP主题文章显示摘要
2009-10-31 00:55 1685前几天有个同事突然问 ... -
Sphnix的PHP客户端Demo
2009-10-21 13:12 1630前段时间做JobUI(www.jobui. ... -
Mysql Limit 出现误差?
2009-10-20 21:23 1062在一段更新数据库的代码中,居然出现了虚假的更新动作。 数据库 ... -
Date操作类
2009-10-10 13:03 896<?php /** * 日期工具类,负责日期 ... -
MySql的简单修改表字段SQL语句
2009-09-17 11:25 3456#新增一个字段,默认值为0,非空,自动增长,主键 ... -
PHP转换数据
2009-09-14 13:00 703最近做一个数据转换,需要把大约几G的数据从数据库取出来,然后处 ... -
将XML字符串装换成PHP对象
2009-09-11 14:23 1536最近做一个CRM的接口,需要接受CRM发出的XML数据,再在P ... -
PHP实现大文件上传
2009-09-11 09:13 2844最近在弄大文件上传在网上搜了搜发现两个不错的方法。 1 ... -
Blitz templates 最快的PHP模板引擎
2009-09-09 12:59 2755Blitz--PHP模板引擎的文档翻译 ... -
实用PHP技巧:万能Cache
2009-09-09 10:17 953Web程序员最常使用的数据库封装方式就是DAO,其实和马丁大爷 ... -
PHP与魔兽--看PHP设计模式
2009-09-09 09:22 1261通过魔兽看PHP设计模 ...
相关推荐
Linux+Apache+Tomcat 的整合是目前最常用的 web 服务器架构之一,本文档将详细介绍如何在 Red Hat Enterprise Linux 5.2 环境下安装和配置 Apache2.2.12、Tomcat6.0.20 和 JDK6u16,以实现一个完整的 JSP 环境。...
在 Ubuntu Linux 环境中,Apache 和 Tomcat 的整合是一项常见的任务,旨在实现静态内容通过 Apache 服务器进行高效分发,而动态内容(如 Java 应用)则通过 Tomcat 服务器处理。这种配置不仅能够提高系统的性能,还...
在Linux环境中,将Apache HTTP服务器和Tomcat应用服务器整合是一个常见的需求,这使得Apache能够处理静态内容,而Tomcat则负责动态内容的处理,如Java Servlets和JSP。以下是一个详细步骤,介绍如何在Linux系统上...
"Linux 6.0 下 Apache 与 Tomcat 整合支持 PHP、HTML、Java(编译安装)" Linux 6.0 下 Apache 与 Tomcat 的整合是指在 Linux 6.0 操作系统...本文的内容将有助于读者更好地理解 Linux 6.0 下的Apache 和 Tomcat 整合。
### Linux下Apache与Tomcat整合的简单方法:深入解析 #### 核心知识点概览: 在Linux环境下,Apache与Tomcat的整合是一个常见的需求,尤其是对于那些希望利用Apache的高效静态资源处理能力和Tomcat的强大Java应用...
Apache 与 Tomcat 整合是将 Apache 作为前端服务器,负责静态页面的处理和负载均衡,而 Tomcat 作为后端应用服务器,专门处理动态请求。这种整合方式可以充分利用两者的优势,提高系统的稳定性和效率。以下是整合...
在Linux环境下,将Apache HTTP服务器与Tomcat应用服务器整合是常见的做法,以便充分利用Apache的静态资源处理能力以及Tomcat对Java Web应用的支持。以下是一个简单的整合步骤: 1. **准备工作**:确保已安装JDK,...
在Linux下进行Apache+tomcat整合
在讨论Apache与Tomcat的整合之前,首先需要了解Apache和Tomcat的基本概念。Apache HTTP Server(通常简称为Apache)是一个广泛使用的开源网页服务器,它非常擅长处理静态内容,如HTML页面和图片等。而Tomcat是一个...
这篇文章将探讨如何在Linux环境下整合Apache与Tomcat,以便更有效地发布Web应用。 首先,让我们了解Apache和Tomcat的基本功能。Apache主要负责处理静态网页内容,如HTML、CSS、JavaScript等,而Tomcat则是Java应用...
通过以上步骤,Apache和Tomcat在Linux环境下就能协同工作,提供高效、可靠的Web服务。这个整合工具对于那些希望在一台服务器上同时利用Apache和Tomcat优势的开发者来说非常有用,它允许他们利用Apache处理静态资源,...
**Apache与Tomcat整合** 在实际应用中,Apache和Tomcat的整合能充分利用两者的优势。一种常见的整合方式是使用Apache作为前端服务器处理静态内容,将动态请求通过Apache的mod_proxy模块转发给Tomcat处理。这样可以...
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整合的简单方法 #### 一、引言 随着互联网技术的发展,越来越多的应用需要同时利用Apache和Tomcat的优势。Apache作为一款稳定、高效且功能强大的Web服务器,而Tomcat则是一款专为Java应用程序...
NULL 博文链接:https://lectery.iteye.com/blog/284304
在Linux环境下,将Apache2.2与Tomcat6进行整合是一项常见的任务,这通常涉及到创建一个Web服务器集群,以便能够处理动态和静态内容。Apache作为前端服务器,主要负责静态资源的处理,而Tomcat作为后端应用服务器,...
通过以上步骤,Linux环境下的Apache和Tomcat整合及负载均衡配置基本完成。这种方式可以提高系统的可用性和响应速度,尤其在处理大量并发请求时,通过负载均衡可以有效分担服务器压力,提升系统整体性能。同时,这种...
在 IT 行业中,Apache 和 Tomcat 的整合是非常常见的需求之一。通过使用 mod_jk 这一模块,我们可以实现 Apache 和 Tomcat 之间的高效通信。mod_jk 是一个负载均衡器和反向代理,它能够帮助我们在多个应用服务器之间...
在 Linux 系统下整合 Apache 和 Tomcat 的步骤包括: 1. 准备相关软件包,如 Apache、Tomcat 和 mod_jk 源码。 2. 安装 Apache 并配置安装路径。 3. 安装 Tomcat,通常是解压二进制包。 4. 编译 mod_jk 模块,指定 ...