Linux下apahe和tomcat的整合(第二版) [文章作者:擦肩而过 {zh1}修改:2009.07.30 转载请注明原文链接:] 前言:本文是我撰写的关于搭建“linux下整合apache和tomcat”Web服务器的第2篇文章。比{dy}版没有什么大的变化,增加了GD库、Zend、eaccelerator加速等,测试了一些PHP和JSP的知名开源程序,sablog、shopex、phpcms、discuz、ucenter_home、lybbs等都可以正常运行。 Apache和Tomcat同是Apache基金会下面的两个项目。 一个是HTTP WEB服 务器,另一个是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 安装之前要确保系统中安装了以下这些包。 我们可以用rpm -qa |grep 来查看系统是否装这些包一般都安了,除了{zh1}一个,我们可以在光盘里找到用rpm -ivh 来安装上. 二、安装JDK设置环境变量 # vi profile 末尾增加如下内容保存退出验证:三、安装MYSQL 引用:# tar -zxvf mysql-5.0.67.tar.gz 引用:#cp support-files/mysql.server /etc/rc.d/init.d/mysqld 配置库文件搜索路径四、安装Apr和Apr-util 引用:# tar -zxvf apr-1.3.6.tar.gz 引用:# tar -jxvf gd-2.0.35.tar.bz2 引用:# tar xzvf httpd-2.2.9.tar.gz 把Tomcat加到自启动:在里面加入如下代码:八、安装PHP 引用:#tar zxvf php-5.2.5.tar.gz 在htdocs目录下建一个测试页保存退出 重启apache 九、安装Zend出现一个界面 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能够基本上兼容啦。编译安装后我们会看到屏幕提示的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)安装php扩展 在文件{zh1},[zend]之前,注意,这部分内容务必放在[zend]之前,不然可能会出现不可预期的服务器问题。添加下列信息: 引用:[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 {zh1}就可以把网站工程放在/usr/local/htdocs目录下进行测试了。 十一、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> ServerAdmin DocumentRoot "/usr/local/apache/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost :80> ServerAdmin 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> ServerName 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,{zh1}就是用工程测试了。 到此大功告成!!! 本文出自 “” 博客,请务必保留此出处 |