Linux(ubuntu)下apache与tomcat的整合(最新版)

(高手绕道)

 

目的是在 ubuntu 9.10 下安装 apache 2.2 +tomcat 6.0.20+jk 1.2.28.,当然在期间也复习了 linux下的基本命令,基本的 shell编程语句,如 :expr if while test 等 ,研究了下 tomcat的启动脚本。

 

一开始,肯定对 apache2一点也不熟悉,为了一次整合成功,做了很多的准备,包括看了很多的文章,就是没有看 apache的官网文档的,这是一个失误阿!

使用了 apt-get install apache2 .安装是成功了,但是不知道安装到那个目录下, google

下,通过如下方式找到 ubuntu下默认安装 apache2软件的路经 .

论坛指点:

默认安装路径如下:

/usr/bin /usr/lib /usr/share /usr/share/man

 

方法 1:在命令行输入: dpkg -L 软件包名;这里注意了软件包名,如 apache2软件包名为 apache2.(推荐这个方法)

方法 2:在 /var/cache/apt/archives找的你安装程序的包 ,然后用“ gdebi-gtk+软件包名”可以查看具体安装在什么位置。

 


 

 

 

参考: http://forum.ubuntu.org.cn/viewtopic.php?f=73&t=21990

 

默认安装后, apache2的路径非常乱,在本机电脑上安装路径如下:

/usr/

/usr/share/

/usr/share/doc

/usr/share/bug

/usr/share/apache2

 

太乱了,如是下手卸载,去 ubuntu software center 下载,结果 search一下,没有 apache。纳闷啊,我明明安装了,怎么在这里面没有了? Bug

另寻它法:(步骤如下)

1、 sudo apt-get remove apache2

2、 sudo apt-get remove apache2.2-common

3、 sudo apt-get autoremove (此命令会自动卸载 PHP)

卸载完成

成功卸载了吧?我这么想,去看看 /etc/目录下看看 ,apache2 在那里好好的,原来删除根本就不完全,

这样卸载软件,系统能用多久啊,

迟早一天硬盘会不够用的,系统运行速度会变慢的!于是 rm掉。

 

===========================================

至此, ubuntu默认安装默认卸载结束。重新到官网去下载 apache2.2 。根据 document安装

===========================================

另外记录一下启动 apache2 出现的错误以及解决办法:

 

 

 

 

1.Apache Address already in use: make_sock: could not bind to port 80 error and solution

 

First make sure port 80/443 is not used by any other service or application with netstat command:

# netstat -tulpn| grep :80

If port 80 is bind to httpd, kill all process:

# killall -r httpd

Now start the httpd:

# /etc/init.d/httpd start

Also make sure you are root while starting the httpd.

(后来这个很有用!)

 

 

另外参考:

===============================================

 

 

去官网下了这个: Unix Source: httpd-2.2.15.tar.gz

(虽然 apache 2.3.5-alpha 已经出来了)

 

安装步骤:


 

Download     $ lynx http://httpd.apache.org/download.cgi
Extract         $ gzip -d httpd- NN .tar.gz
                    $ tar xvf httpd- NN .tar
                    $ cd httpd- NN Configure
                    $./configure --prefix= PREFIX
Compile        $ make
Install            $ make install
Customize     $ vi PREFIX /conf/httpd.conf
Test              $ PREFIX /bin/apachectl -k start
 

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

说下需要注意的地方,在 ./configure这一步的时候,注意 PREFIX是你新建的目录下。比如 :apache2。

PS:这个过程是从原代码编译开始到安装。整个过程的时间很长,请耐心等待。

 

安装成功。

 

=======================================


 2. 在 index.html中添加中文,出现中文乱码,

解决方法一:

 <meta http-equiv="Content-Language" content="zh-cn">;

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">; 

 

解决的方法之二 :

 

直接在httpd.conf配置文件中将

AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 .ZH-CN .zh-cn

上网有上面这种方法,

但是我的apache 2.2.15里没有这个httpd.conf文件,应该是版本不同吧。至此,已经告一段落。

 

 

=============================================

 


配置mod_jk

mod_jk requires two entities:

mod_jk.xxx - The Apache module, depending on your operating system, it will be mod_jk.so, mod_jk.nlm or or MOD_JK.SRVPGM (see the build section).

workers.properties - A file that describes the host(s) and port(s) used by the workers (Tomcat processes). A sample workers.properties can be found under the conf directory in the source download.

 

配置mod_jk在官网文档里面关于“auto-configure”有如下说法:

Using Tomcat auto-configure

 

The auto-configure works only for a single Tomcat running on the same machine where Apache (httpd) is running. The simplest way to configure Apache to use mod_jk is to turn on the Apache auto-configure setting in Tomcat and put the following include directive at the end of your Apache httpd.conf file (make sure you replace $TOMCAT_HOME with the correct path for your Tomcat installation:

   #To be added at the end of your httpd.conf

    Include $TOMCAT_HOME/conf/jk/mod_jk.conf-auto

Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf

This will tell Apache to use directives in the mod_jk.conf-auto file in the Apache configuration. This file is created by enabling the Apache auto-configuration by creating your workers.properties file at $TOMCAT_HOME/conf/jk/workers.properties and adding the listener to the Engine element in the server.xml file as per the following example. Please note that this example is specific to Tomcat 5.x, unlike other sections of this document which also apply to previous Tomcat branches.

  ...

  <Engine ...>

    ...

    <Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" />

    ...

  </Engine>

  ...

Then restart Tomcat and mod_jk.conf should be generated. For more information on this topic, please refer to the API documentation at the Tomcat docs website .

 


大概的意思,就是说,tomcat提供了一个功能,只要你做好如下操作,就能自动生成mod_jk的配置文件,很方便的完成配置:
1,指定worker.properties为:“$TOMCAT_HOME/conf/jk/workers.properties”
2,在监听器Listener中配置属性“modJk”,即指定mod_jk.so的路径。

两步过后,重新启动tomcat,$TOMCAT_HOME的目录下自动生成如下目录以及文件:conf/jk/mod_jk.conf-auto

mod_jk.conf-auto文件内容就是我们在httpd.conf中配置mod_jk的内容。但是自动生成的内容总存在缺点
如下是自动生成的配置文件(mod_jk.conf-auto

 

 

########## Auto generated on Thu Apr 01 23:42:51 CST 2010##########


<IfModule !mod_jk.c>


LoadModule jk_module "/opt/apache2/modules/mod_jk.so"


</IfModule>


JkWorkersFile "/opt/apache-tomcat-6.0.20/conf/jk/workers.properties"


JkLogFile "/opt/apache-tomcat-6.0.20/logs/mod_jk.log"


JkLogLevel emerg


#Where to put jk shared memory


JkShmFile /var/log/httpd/mod_jk.shm


<VirtualHost localhost>


ServerName localhost


JkMount /manager ajp13


JkMount /manager/* ajp13



JkMount /bio ajp13


JkMount /bio/* ajp13


JkMount /docs ajp13


JkMount /docs/* ajp13


JkMount /examples ajp13


JkMount /examples/* ajp13


JkMount /host-manager ajp13


JkMount /host-manager/* ajp13


</VirtualHost> 
 

 

这个没仔细研究了,但是我通过上次的操作,重新启动 tomcat 和 apache2 , 访问 http://localhost/examples/index.html 出现了 internal error. 系统日志报 505 错误。提示:没指定 JkShmFile 文件。

 

 

============================================================

经过上面的一番折腾,让我明白了mod_jk
整个配置过程.
1,配置httpd.conf,主要是为了加载module.
 
LoadModule
jk_module modules/mod_jk.so(事先将mod_jk.so放置在modules目录下)
如果加载了module,就会执行<IfModule jk_module >...</IfModule>中相关worker,以及worker处理的url,并使其生效.
2.而在<IfModule jk_module>...</IfModule>配置workers.properties,等其他文件,
或者配置额外的urlworkmap文件,如下面的uriworkermap.properties

或者直接在httpd.conf文件中配置相关的urlworkmap.

 

 #We need a workers file exactly once


#and in the global server


JkWorkersFile conf/workers.properties



#Our JK error log


#You can (and should) use rotatelogs here


JkLogFile logs/mod_jk.log



#Our JK log level (trace,debug,info,warn,error)


JkLogLevel info


#Our JK shared memory file


JkShmFile logs/mod_jk.shm


#If you want to put all mounts into an external file


#that gets reloaded automatically after changes


#(with a default latency of 1 minute),


#you can define the name of the file here.


JkMountFile conf/extra/uriworkermap.properties
 

或者不用外部文件,而如下配置:

 

 

 #Example for Mounting a context to the worker "balancer"


#The URL syntax "a|b" instantiates two mounts at once,


#the first one is "a", the second one is "ab".


#JkMount /myapp|/* balancer 

.....
 

。。。

 

3 ,如有需要: uriworkermap.properties 的配置,这个很简单,如下:

 

 

#This file provides sample mappings for example wlb


#worker defined in workermap.properties.minimal


#The general syntax for this file is:


#[URL]=[Worker name]



/admin/*=wlb


/manager/*=wlb


/jsp-examples/*=wlb


/servlets-examples/*=wlb


/examples/*=wlb 

 

 

 

以上的配置文件信息来自于从官网下载的 source.tar.gz 包中的 cong 目录的几个相关的配置文件实例。

 

 

在下载 mod_jk.so 这个二进制文件时,需要注意了,注意自己系统支持的体系结构,就 jk-1.2.28

 

binary 版本下载而言,提供了适合在 i586 以及 x86_64. 我们普通的 PC 一般是 i386, 应该下载 i586, 至少不能下 64 位的版本哦。

 

 

i586,i386 的区别以及相似的地方参看:

http://blog.csdn.net/BSKnight/archive/2009/12/30/5108821.aspx

 

 

-------------------------------------------============

经过上面的 N 次折腾,总算把 apache + tomcat 等基本的安装,配置过程有了清楚的理解。写下此篇文章,以后参考。如果给新手一些帮助,那就十分高兴。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值