设为首页 收藏本站
查看: 2011|回复: 0

[经验分享] Linux下apahe和tomcat的整合(第二版)

[复制链接]

尚未签到

发表于 2018-12-6 11:35:07 | 显示全部楼层 |阅读模式
Linux下apahe和tomcat的整合(第二版)  [文章作者:擦肩而过 最后修改:2009.07.30
  转载请注明原文链接:http://bbs.yahunet.com/thread-9856-1-1.html]
  前言:本文是我撰写的关于搭建“linux下整合apache和tomcat”Web服务器的第2篇文章。比第一版没有什么大的变化,增加了GD库、Zend、eaccelerator加速等,测试了一些PHP和JSP的知名开源程序,sablog、shopex、phpcms、discuz、ucenter_home、lybbs等都可以正常运行。
  Apache和Tomcat同是Apache基金会下面的两个项目。
  一个是HTTP WEB服务器,另一个是servlet容器(servletcontainer)。在我们生产的环境中,往往需要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>
保存退出引用:
# source /etc/profile
验证:引用:
#  java -version
三、安装MYSQL引用:
# tar -zxvf mysql-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- --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 Web Server
最后,运行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.jsp index.html index.htm
保存退出引用:
service httpd restart
然后在目录中建一个文件用来测试php情况  在htdocs目录下建一个测试页
引用:
vi index.php  
保存退出  重启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目录下进行测试了。
  十一、Tomcat 与Apache 的整合
  # vi httpd.conf
  在文件末尾增加一下两行 引用:
  ProxyPass / ajp://127.0.0.1:8009/
  ProxyPa***everse / 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  block.
  #
  
  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot "/usr/local/apache/docs/dummy-host.example.com"
  ServerName dummy-host.example.com
  ServerAlias www.dummy-host.example.com
  ErrorLog "logs/dummy-host.example.com-error_log"
  CustomLog "logs/dummy-host.example.com-access_log" common
  
  
  ServerAdmin webmaster@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
  改成: 引用:
  NameVirtualHost   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
  
  
  ServerName www.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
  注:加这两行日志要注意就是在相应的路径下一定要建
  ServerAlias 是别名也就是域名这里需注意的是在不是JSP工程时虚拟主机只改httpd-vhosts.conf加上就可以而JSP工程不但在这得加还要在server.xml中也要加具体方法看下面的。
  以上是PHP的但如果是JSP 引用:
  
  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/
  ProxyPa***everse / ajp://127.0.0.1:8009/
  这里就得加这两行而且还得在tomcat配置文件server.xml中也得做虚拟主机目录和这个要一致。
  server.xml中这么加: 引用:
  

  
    timestamp="true"/>
  OK,最后就是用工程测试了。
  到此大功告成!!!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-643947-1-1.html 上篇帖子: tomcat服务器catalina的日志切割 下篇帖子: JDK Tomcat eclipse的32位与64版本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表