分享

Apache与Resin整合详细技术文档

 真爱图书 2014-06-04

ApacheResin整合详细技术文档

for Linux

一、    版本信息

JDKjdk-6u27-linux-i586-rpm

Apachehttpd-2.4.9

Resinresin-3.1.8

二、    系统环境

LinuxRed Had Linux5

服务器IP地址:192.168.1.206

三、    要求

搭建ApacheResin整合的Web环境。要求静态页面由Apache处理,动态请求交由Resin处理。

四、    安装过程

JDK的安装步骤(略)。

Apache

这里使用目前最新的2.49Apache。首先将httpd-2.4.9.tar.gz包拷贝至/usr/ftp目录下;

使用tar –zxvf  httpd-2.4.9.tar.gz解压,并在当前目录中生成httpd-2.4.9目录。

cd  httpd-2.4.9

./configure –-prefix=/opt/apache2 回车,报出了依赖关系:如图

 

这里需要安装APR,将apr-1.4.6.tar.gz放入/usr/ftp中,使用tar-zxvf apr-1.4.6.tar.gz解压,生成apr-1.4.6目录,并进入,执行

./configure

make

make install

成功!

返回到Apache目录中:cd /usr/ftp/httpd-2.4.9

执行./configure --prefix=/opt/apache2 --with-apr=/usr/ftp/apr-1.4.6回车,报出另一个依赖关系:如图

这次需要Apr-Util,将apr-util-1.5.1.tar.gz放入/usr/ftp目录中,使用tar –zxvf apr-util-1.5.1.tar.gz解压,生成apr-util-1.5.1目录,进入,执行:

./configure --with-apr=/usr/ftp/apr-1.4.6

注意:这里要指定Apr的安装路径,不然会报出与Apr的依赖关系。

make

make install

成功!

返回到Apache目录中:cd /usr/ftp/httpd-2.4.9

执行

./configure --prefix=/opt/apache2 --with-apr=/usr/ftp/apr-1.4.6 --with-apr-util=/usr/ftp/apr-util-1.5.1

成功!

注意:prefixApache要安装到的路径,如果不设定这个参数,将会默认安装到/usr/local/apache2目录中;后面的两个with,指的是安装Apache所需要的两个依赖包(在纯净系统中,还需要一个pcre包,安装方法与Apr一样,只是在最后执行Apacheconfigure时,要多写一个 --with-pcre=……)。

下一步就是对Apache进行编译和安装,在/usr/ftp/httpd-2.4.9目录中执行:

make

make install

成功!在/opt  目录中会生成一个apache2的目录。

启动Apache/opt /apache2/bin/apachectl start 回车。

在浏览器中输入服务器IP地址:http://192.168.1.206 出现以下界面:

说明启动成功!

 

Resin

resin-3.1.8.tar.gz包拷入/opt目录下,使用tar –zxvf resin-3.1.8.tar.gz解压,生成resin-3.1.8目录,进入。

执行./configure --with-apxs=/opt/apache2/bin/apxs (这个参数的意思是,在/opt/apache/modules目录下生成一个与Resin整合时必要的文件mod_caucho.so

make

在编译过程中,报出如下错误:

意思是mod_caucho.c文件中有几个成员变量找不到,需要修改名称。

vi /opt/resin-3.1.8/modules/c/src/apache2/mod_caucho.c

打开mod_caucho.c文件,在命令模式下输入行号后按下G,跳转到该行。例如:588G,这时会定位到588行,按上面的错误提示,找到remote_ip,修改为client_ip,按照错误提示,依次修改完成。591行的remote_addr改为client_addr。修改完毕,保存退出。

进入/opt/resin-3.1.8目录,再次执行./configure --with-apxs=/opt/apache2/bin/apxs,成功!

make

make install

这时,在/opt/apache2/modules目录下会生成mod_caucho.so文件。

至此,Resin安装完毕。

注意:mod_caucho.so文件,理论上来讲是可以从别处拷贝过来直接用的,但这里受到几个条件限制:操作系统位宽和处理器(CPU)类型。比如,生成mod_caucho.so这个文件的机器使用的是Intel Xeon处理器,操作系统是64Linux,我把这个文件拿到Intel Core处理器或者AMD处理的机器中,系统为32Linux,这时再启动Apache时这个文件会报错。

 

控制台方式启动Resin执行:/opt/resin-3.1.8/bin/httpd.sh 回车

如图,启动成功!

浏览器中输入:http://192.168.1.206:8080

出现上面的界面,说明启动成功!

 

五、配置

                   首先,将一个Web项目放到/opt/resin-3.1.8/webapps目录下。

                   Resin配置

打开Resin配置文件

vi /opt/resin-3.1.8/conf/resin.conf

找到

<!-- The http port -->

      <http address="*" port="8080"/>

节点。

此处配置Resin的监听端口,默认为8080。访问时要在地址或域名后面加上:8080,否则访问不到;如果访问时不想输入端口号,那么这里要改成80;如果ResinApache同时启动,此处端口不能设为80

 

找到<!-- define the servers in the cluster -->

    <server id="" address="127.0.0.1" port="6800"/>

这里是配置多个项目所用不同端口的地方,在这里,我们将端口6800改为6802,此处非必改项。

 

再往下,找到

<!--  - Sample database pool configuration

       -

       - The JDBC name is java:comp/env/jdbc/test

         <database>

           <jndi-name>jdbc/mysql</jndi-name>

           <driver type="org.gjt.mm.mysql.Driver">

             <url>jdbc:mysql://localhost:3306/test</url>

             <user></user>

             <password></password>

            </driver>

            <prepared-statement-cache-size>8</prepared-statement-cache-size>

            <max-connections>20</max-connections>

            <max-idle-time>30s</max-idle-time>

          </database>

      -->

节点。这是一个配置数据库连接的例子,如果Web项目是通过Jndi的方式连接数据库,就可以依照例子配置一套完整的<database>标签中的内容。

例如:测试项目中的数据库连接配置如下

<database>

          <jndi-name>jdbc/cdi</jndi-name>

          <driver type="oracle.jdbc.driver.OracleDriver">

             <url>jdbc.url=jdbc:oracle:thin:@192.168.1.72:1521:orcl</url>

             <user>cdi</user>

             <password>123</password>

          </driver>

          <prepared-statement-cache-size>8</prepared-statement-cache-size>

          <max-connections>100</max-connections>

          <max-idle-time>300s</max-idle-time>

        </database>

 

找到<!-- configures the default host, matching any host name -->

    <host id="" root-directory=".">

节点,补全host标签中的内容,例如:

<host id="192.168.1.206" root-directory=".">

和下面的<web-app id="/" root-directory="webapps/ROOT"/>改为

<web-app id="/" root-directory="/opt/resin-3.1.8/webapps/cdi "/>

Root-Directory指的就是项目所在位置。

 

至此,Resin配置完毕。

再次以控制台方式启动Resin

/opt/resin-3.1.8/bin/httpd.sh 回车。通过http://192.168.1.206:8080,可以打开Web项目主页。

 

Apache配置

打开Apache配置文件:vi /opt/apache2/conf/httpd.conf 找到

DocumentRoot "/opt/apache2/htdocs"

<Directory "/opt/apache2/htdocs">

处,将其修改为:

DocumentRoot "/opt/resin-3.1.8/webapps/cdi"

<Directory "/opt/resin-3.1.8/webapps/cdi">

也就是项目所在路径。

 

若不是系统自动生成mod_caucho.so,则手动添加在文件尾部加入

#

# mod_caucho Resin Configuration

#

LoadModule caucho_module /opt/apache2/modules/mod_caucho.so

这步是Apache整合Resin的关键,必不可少。

#部分是说明,无意义。

 

下面加入虚拟主机的配置项:

<VirtualHost *:80>

     CauchoHost localhost 6802

     AddHandler caucho-request jsp

     SetHandler caucho-request

     ResinConfigServer localhost 6802

 

     ServerName 192.168.1.206

#    ServerAlias 211.88.20.161

     ServerAdmin dql188@hotmail.com

     DocumentRoot /opt/resin-3.1.8/webapps/cdi

     <Directory /opt/resin-3.1.8/webapps/cdi>

        AddHandler caucho-request jsp

        #Disable to Execute CGI&shell script

     </Directory>

     Options +IncludesNOEXEC

</VirtualHost>

 

这里面的CauchoHost localhost 6802,就是我们在Resin部分中配置多项目端口处设定的端口。

 

注意:Apache跟据虚拟机配置时,会先查找/etc/ hosts文件,如果Hosts文中没有Localhost的对应路由表,那么在访问项目时将会出现以下界面:

 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多