Isher的学习笔记

平时用到的一些技术积累,可以合成解决方案将放置在www.acnis.com中。

星期三, 四月 15, 2009

ubuntu下apache2运行apache2 -k start 出现bad user name ${APACHE_RUN_USER}

在Ubuntu下sudo apt-get install apache2安装完Apache2以后,启动apache2的默认用户名是www-data, 属于www-data用户组
在shell中按如下输入
#apache2
会出现错误提示:
apache2: bad user name ${APACHE_RUN_USER}

解决办法:
1. 打开apache2的配置文件
#sudo gedit /etc/apache2/apache2.conf
(本来应该改envvars这个文件的,但是不知道为什么修改了不起作用)
2. 修改默认的用户名和组
找到 ${APACHE_RUN_USER} 和 ${APACHE_RUN_GROUP}
替换为自己的用户名和组,然后保存退出。
3.重启apache2
#apache2 -k graceful

注意,要让自己的用户对/var/www这个目录有写权限,否则你的脚本可能会出问题的。
当然,可以打开/etc/apache2/sites-enabled/000-default修改网站文件的根目录。

星期六, 四月 11, 2009

ubuntu的apt命令参数

2年没用ubuntu,apt命令忘得一个干净,help又显示零型乱码,郁闷

apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装"-f = --fix-missing"
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

星期一, 五月 21, 2007

websphere ND安装

一、 搭建集群环境
1.1 安装软件
Websphere Application Server Network Deployment v6.0,简称WAS ND版。

1.2 搭建环境说明
本文将介绍如何在一台主机上安装集群管理端和一个节点,在另外一台机器上安装一个节点作为一个集群,当然可以在每台机器上安装多个节点,一个节点对应一个Windows Service,每个节点有独立的端口号。
1.3 安装集群管理端
将 光盘插入光驱,回自动运行光盘根目录下的launchpad.bat,将会启动一个ND启动版安装页面,点击“启动Websphere ApplicationServer的安装指南”,如果ND启动版页面不能运行,也可以进入光盘的WAS目录,双点install.exe来启动安装向 导:
(1)出现第一个安装向导界面,点“下一步”按钮。
(2)出现“软件许可协议”的窗口,当然是选择“我接受许可协议中的全部条款”的单选按钮,然后点“下一步”。
(3)系统运行“系统先决条件检查”,点“下一步”。
(4)如果本机安装websphere,则出来一个“检测到一个现有的Websphere Application Server产品”,点“下一步”。
(5)出现一个窗口提示你安装Websphere的路径,输入你指定的安装路径,例如d:spherend,点“下一步”。
(6)出现的窗口中有应用程序服务器样本和javadoc的checkbox选项,你可以都选中,也可以不选,我安装时选择了javadoc选项,然后点此窗口的“下一步”按钮。
(7)下一个窗口显示安装所需要的磁盘空间,继续点“下一步”。
(8)出现软件的安装窗口,等待安装完毕。。。
(9)安装完毕,出现安装完成窗口,这个窗口的“启动概要表创建向导”按钮要选中,点下一步。
(10)出现新窗口(欢迎使用v6概要表创建向导),点“下一步”。
(11) 出现的新窗口是“概要表创建向导”窗口,这个窗口有三个radio button选项,因为我们要先装一个集群管理端,所以要选择第一个选项,即创建Deployment Manager概要表选项,然后点下一步。顺便在这里说一下,如果只装一个节点,不装集群管理,则选择第二个选项(创建应用服务器程序概要表)。
(12)下一步的窗口要你输入一个概要表名,默认是Dmgr01,注意如果是集群管理的概要表,最好以dmgr开头,这样从安装后的文件夹一看就能明白dmgr目录是用于集群管理的概要表。
(13)下一步的窗口要你输入一个默认的安装路径,可以使用系统提示的安装路径。
(14)下一个窗口是输入节点、主机、单元名,可使用系统默认值,主机名不能自己随便改。点下一步。
(15)下一步是概要表的端口值指定窗口,系统会默认分配,但两个端口一定要记住,因为启动应用服务器控制台和添加节点要用到,所以要一定记住两个端口:管理控制台端口,如9060,SOAP连接器端口,如8879,每安装一个节点,端口值都不会重复,你可以在此窗口中修改这两个端口值。点下一步。
(16) 然后出来“Windows服务定义端口”,如果你愿意将应用程序服务器作为windows服务运行,则选中“将应用服务器进程作为windows服务运 行”的checkbox,建议选中,这样启动方便,否则要到安装后的程序目录找启动程序。Checkbox下面是“作为本地系统帐户登录”的 radiobox,输入登录windows的有超级用户身份的用户帐号和口令(因为需要安装windows service),启动类型可选择“手工”或“自动”都可以。点下一步
(17)出现一个“概要表摘要”的窗口,点下一步。系统出现安装概要表的窗 口,等待安装完毕。。。安装完毕后,出现“概要表安装完成”窗口,选中此窗口的“启动第一步控制台”,然后点下一步,出现一个新的窗口,先不要点“安装验 证”,因为点了安装验证后会启动应用服务器,在启动前我得换一个系统jar包,就是jdom1.0.jar,这个jar包是改进的合并和
(18) 将jdom-1.0.jar和xercers.jar复制到d:spherendlib目录下,并将此目录下的jdom.jar更名为jdom.ja(只 要不是jar的扩展名就行),然后点17步有安装验证的窗口的“安装验证”,实际上是启动了集群管理的服务。 如果启动正常的话,安装验证的输出窗口最后是:VTL00801:安装验证完成。也可通过命令行启动集群管理服务:cmd.exe /c “D:spherendprofilesdmgr01instartmanager.bat” –profileName Dmgr01
(19)在桌面的我的电脑图标右键选择“管理”打开计算机管理窗口,检查集群服务是否运行,服务的名称为:IBM Websphere Application Server V6 – 机器名CellManager01,此时应为启动状态,打开浏览器,输入http://192.168.6.79:9060/admin,点登录按钮,这里的ip是我安装的主机的IP地址,端口9060是我安装时设定的端口,或输入http://localhost:9060/admin,
如出现了用户标识的登录页面则说明安装成功,此时页面用户标识右面的输入框不用输入内容,直接点登录,可进入集群管理的页面。
1.4 在另外一台机器上安装一个节点
如果另外一台机器已安装了一个节点,假定websphere安装在d:spherend,则运行d:spherendinProfileCreatorpctWindows.exe,运行pctwindows.exe后的安装步骤参看下面的步骤即可。
如 果没安装websphere6 ND版本,则先运行安装程序安装websphere,安装过程前面的步骤同1.3节的(1)-(10),概要表创建向导运行后,会出现概要表类型选择的窗 口,有三个选项,第一项是安装集群管理的饿概要表,所以这个不要选,应该选第二个选项,即创建应用服务器概要表,概要表名可以自己命名,默认是 AppSrv01,安装过程中出现端口指定的窗口时,要记住管理控制台端口和SOAP连接器端口,因为集群管理添加节点要用。这两个端口可以自己指定,一般按系统默认的就可以。第一个节点的管理端口一般是9060,SOAP端口是8879或8880,应用服务端口从9080开始,安装多个节点,其应用服务端口系统可自动分配,如9081,9082…,应用服务端口指部署EAR后访问Web应用程序的端口。
注意安装完后仍然是先替换jdom-1.0.jar,再启动安装验证。
安装验证通过后可以到windows的服务列表里看一下,有服务名为IBM Websphere Application Server V6 –主机名Node01的服务,并应处于已启动状态。
这时再运行:http://localhost:9060/admin,应能打开websphere的用户标识输入页面。
注意:如果非集群的机器装了一个节点,此节点如果还没有加入到集群中,是可以通过http: //localhost:端口/admin的形式进入应用服务器管理页面,但如果此节点被加入到一个集群的节点里,则不能通过此连接登录到管理页面,也就 是说,此节点被集群管理后,不能在本机通过http://localhost:端口/admin的形式登录管理页面。

1.5 在集群的主机安装一个节点
过程同1.4节。这样集群的结构为一个机器是一个集群管理和一个节点,另外的一台机器安装了一个节点,下面讲解如何把节点添加到集群的过程。

1.6 向集群中添加节点
在添加节点之前,建议把集群中各台机器的ip和主机名添加到 windows的system32driversetchosts文件中,如果不添加应该也可以,不过添加节点时主机名的输入框得输入ip地址而不是主机名.
添加步骤(这里列出将另外一台主机的节点添加到集群的方法,集群主机的节点添加到集群的方法是一样的):
(1) 打开http://localhost:9060/admin,点登录,进入管理页面。
(2) 左边功能树选择系统管理-节点。点节点后右面列出添加节点的页面 。
(3) 点“添加接点”,新页面选择“受管节点”,在新出来的页面输入另外一台机器的主机名(计算机名,或IP地址),JMX连接器端口输入安装时的SOAP端口,启动端口选指定,端口号为安装时的启动端口号,就是上文中安装说明需要记住的端口号,然后点“确定”按钮。
(4) 新窗口中询问是否将Node agent作为windows服务运行,将此选项选上,则安装后可以不通过命令启动node agent,安装完成后远程机器的windows服务里将有一个node agent的服务。确定后出现“添加节点”页面,系统运行添加节点程序,我们等待一会,等添加节点完成。
在这里需要说明几个问题:
1、如果添加节点页面出现并有输出信息,等添加节点完成后,页面的下方有一个从websphere管理控制台注销的连接,一定要点此连接重新进入控制台。
2、两台节点机器的时间间隔不能大于5分钟,否则添加节点不成功。
有 时添加节点页面长时间无反应,这时可点左侧功能树的系统管理-节点,系统提示保存修改,这时节点也有可能成功添加,如果节点添加成功,在远程机器的 windows服务里应该新增加了一个node agent的代理服务,名称为:IBM Websphere Applicaiton Server V6 -主机名Node01_nodeagent
这时在远程机器上启动这个服务会报一个错误,服务启动不了,所以远程主机的节点添加完如果不再添 加新节点,请一定重启远程主机(或者在部署EAR之前重启也可以),然后启动代理服务和应用服务器的node1的服务,服务名:IBM Websphere Applicaiton Server V6 -主机名Node01。
远程主机的节点添加到集群的节点后,此时如果在远程主机上再运行http://localhost:9060/admin,会导致IBM Websphere Applicaiton Server V6 -主机名Node01服务停止,所以请不要再运行此连接,不过如果这样的话,则说明ibm的这个nd版有bug,不然别人很容易通过输入这个连接地址导致这个节点服务停止。
如 果在安装节点时不选择将node agent作为windows服务之前,那么添加完节点后也应重启远程主机,并运行D:spherendprofilesProfile名称in下的 startnode.bat,startnode的命令格式参考此命令的帮助,最省事的办法就是添加节点时直接把node agent作为windows服务就行,省得还运行命令行启动命令。

(5) 这样远程节点就添加成功了,cluster manager这台机器的节点添加到集群的方式和(4)一样,添加节点后也一定要重启一次机器时node agent服务能正常工作。

1.7 建集群,并将两个节点添加到集群中
(1) 打开集群管理主机的管理控制台:http://localhost:9060/admin,登录,左侧功能树点服务器-集群,右侧页面点“新建“,填写一个集群名,例cluster1,点下一步,出现下一个页面。
(2) 此页面中,输入一个节点成员名(自己命名一个,如localnode),选择节点的下拉列表框选择一个本地节点,然后点应用。再加一个节点成员,命名为 remotenode,节点列表选择另外一个即远程的节点,权重可设置为3。然后点应用。打勾选中页面下方新加的两个节点,然后点下一步。下一个出现的页 面点完成。系统提示保存,保存时选中与节点同步更新。
(3) 以上操作完成后,选择系统管理-节点,查看一下两个节点是否同步,注意在公司内部部署集群的时候请注意两台机器不要被其他人关闭以保证集群部署顺利进行。 如未同步或有问题请检查两台机器各节点的windows服务和node agent代理服务是否已经启动。在部署EAR的时候一定也要注意各服务都已正常启动.
(4) 检查完节点同步后,点功能树的服务器-集群,这时集群应未启动,请启动集群。在右侧的集群列表里点集群名,可以查看集群的成员,可选择一个集群,进入集群 成员列表选择要启动的节点。集群成员列表的各成员的状态如果都为绿色实心箭头说明集群正常启动,下面开始部署EAR应用。

1.8 部署EAR应用
首先要保证EAR是正确的可发布的包,部署成功后应该在远程主机和机群主机的两个节点的目录下都有部署好的解压的应用程序。如果EAR包有问题不属于本文要讨论的内容。
部署过程:
(1) 点应用程序-企业应用程序。右侧的页面点安装,然后选择一个要部署的ear,输入上下文的根, 点下一步,新页面再点下一步,选择安装选项,此页面中去掉为资源创建mbeans的选项(我们的应用用不到),点下一步。
(2) 这步是将模块映射到服务器的页面,注意操作步骤,在下面打勾选中一个模块,然后上面的集群和服务器的listbox列表中,按住ctrl键,鼠标左键点击 列表中的每一项,就是全部选中,把ear的代码部署到每个节点。全部选中后点应用,然后再打勾选择下面的模块,点下一步,新的页面再打勾选中这个模块,点 下一步,新的页面中点完成,休息一会。。。如果EAR包没问题,安装完后在页面下方出现“保存到主配置“,点此连接,新的页面选择与节点同步更改,点保 存,等待比较长的一段时间(这时在向各节点部署EAR包)…安装EAR完成。返回到企业应用程序列表,选择你部署的应用,并启动。部署完成。
(3) 检查集群主机和远程节点主机的d:spherendprofilesappsrv01installedapps主机名Cell01下应该有发布的ear包。路径名与自己实际安装的路径和profile名称对应。
(4) 启动应用后,检查是否从两个节点的url连接都能访问应用:
http://集群主机IP:9080/应用名
http://远程节点主机IP:9080/应用名

9080是本机安装时的应用服务端口,每个节点的应用服务端口在安装验证的界面上有提示。

星期四, 二月 15, 2007

CAB包安装后不被删除的小技巧


Smartphone的CAB安装包在手机中安装后都会自动被删除,如果想要在手机中保存安装程序,对于很多人来说被删除就不方便了。下面提供两个小方法防止CAB包安装后被删除的方法。
1.修改CAB包为只读属性。
这一步骤只需要在电脑中把文件的属性修改为只读在传到手机中。

2.修改注册表。
进入注册表:[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
未修改前(CAB安装后会被删除):
[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
@="wceload.exe \"%1\""
修改后(CAB安装后不被删除):
[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
@="wceload.exe \"%1\" /nodelete"



第一种方法需要将每个安装包都加上只读属性,相对来说比较麻烦,所以推荐第二种方法只需要修改一次就一劳永逸了。

MPX220拍照技巧

补充:我的mpx220一直以为摄像效果很差,后来偶然机会,搜索gps地图时看到了某网站的这篇文章,然后为了保留此文章和以后方便设置手机照相效果,特摘录


CERegEdit这个注册表编辑器1. 打开注册表编辑器,手机上的,电脑上的随便你,你习惯用什么用什么,别告诉我你不知道注册表编辑器,那你不用看下面了 2. 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Arcsoft\Camera 3. 找到键值 Contrast, 这是对比度,改个大点的值, 300 ,默认 6确实有些小了,通常为250-300之间
修改完后对比度,在添加饱和度,锐化,色调等值
调完对比度之后在 Camera 下再增加三个DWord值,分别是"Saturation" "Hue"和"Sharpness" ,取值分别为"3" "5" "3"

星期三, 一月 31, 2007

mysql 添加用户~

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED by '123456' WITH GRANT OPTION;

一个简单的添加用户的命令,让我花了n长得时间去查它,而错误却出在我在root和%处没有加引号,此事件给我的印象较深,希望能接受这个教训,哈哈

星期三, 十二月 13, 2006

Apache + php+mysql下载地址

这是在我去baidu知道上面,我回答的一个人的问题

这个人问的
Apache 2.0+php5.0.5或5.1.0+mysql5.0下载地址,我觉得这对我的帮助很大,我帮他找了,同时让我找到了很多资源列表,以及快速下载这些自原的地点

apache下载,根据你的操作系统自己选择
http://httpd.apache.org/download.cgi

php 5.05下载
http://cn2.php.net/releases/index.php
5.0.5
Released: 05 Sep 2005
Announcement: None
ChangeLog
Download: Source (tar.gz), Windows binary, Windows installer Collection of PECL modules for PHP 5.0.5

各版本都有
===============================
MYSQL 5.0下载
http://dev.mysql.com/downloads/mysql/5.0.html

爱克尼斯极致网络解决方案中心
http://www.acnis.com/
共享让技术更自由

星期二, 十二月 12, 2006

linux下安装mysql方法

mysql各版本下载
http://dev.mysql.com/downloads/mysql/5.0.html

找tar.gz或tar.gz2的包

此文章为转载,转自地址忘了~~

这里的mysql用的不是standard的版本,用的是src源码版本,名为mysql-5.0.18

标准半本只要tar开即可用,源码版本需要编译以及指定服务器默认编码,因为我要修改编码,所以正好用上~

shell> ./configure --with-charset=CHARSET

CHARSET 可以使下面编码中的一种: `big5', `cp1251', `cp1257', `czech', `danish', `dec8', `dos', `euc_kr', `gb2312', `gbk', `german1', `hebrew', `hp8', `hungarian', `koi8_ru', `koi8_ukr', `latin1',
`latin2', `sjis', `swe7', `tis620', `ujis', `usa7', `win1251ukr'.

默认当前状态为root权限,如果使用其他用户权限,请在每行前面加sudo
安装开始:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip <> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql --with-charset=gb2312
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
(用mysql用户启动很重要。)
shell> bin/mysql -uroot -p
(输入密码,默认密码为空,直接回车即可)
shell> Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
如果出现上面的提示,说明mysql服务没有正常启动,因为mysql服务启动的话,会自动生成mysql.sock文件
shell> killall mysql
杀掉所有mysql进程,重新启动
shell> bin/mysql_install_db --user=mysql
重新启动
shell> bin/mysql -uroot -p

apache2+resin3支持struts和未知扩展名(.do)

让apache+resin支持发布struts架构的程序,以及支持提交未知扩展名和.do的程序的方法,让apache的404页面见鬼去

根据resin和apache的传输模式,和网上类似站点的配置,在resin查到了有关于过滤apache的.do的方案

官方地址:
http://www.caucho.com/resin-3.0/install/plugin-dispatch.xtp#special-servlet-mappings

由于resin站点访问过慢!加上gnome web borrow在保存页面时是从网上再次读取,并非从internet temp中获得页面,所以我就把resin的内容拷贝了下来

When used with another web server, Resin serves JSPs and Servlets and the other web server serves static content like html and images.

The web server plugins (mod_caucho and isapi_srun) have two main tasks:

1. Select urls to dispatch to the Java process
2. Pass the request and retrieve the response from the Java process.

Note: "mod_caucho" is used to mean all the plugins. All of the plugins work the same, so "mod_caucho" is just a shorthand for "mod_caucho and isapi_srun".

1. ResinConfigServer
2. servlet-mapping selects URLs
1. url-pattern
2. url-regexp
3. special servlet-mappings
4.
5.
3. /caucho-status shows mod_caucho's URLs
4. Dispatching using Apache's http.conf

ResinConfigServer

mod_caucho discovers its configuration by contacting the ResinConfigServer specified in the httpd.conf or resin.ini. The ResinConfigServer can be any Resin server. When a user requests a URL, mod_caucho uses the configuration it has determined from the ResinConfigServer to determine whether Resin or Apache should handle the request. That decision is based on the configuration in the ResinConfigServer's resin.conf.

servlet-mapping selects URLs

The servlet-mapping tag selects the URLs to send to Resin. and group the servlet-mapping tags.
url-pattern

servlet-mapping's url-pattern selects the URLs to pass to Resin. servlet-mapping and url-pattern are part of the Servlet 2.3 standard, so there are many references explaining how it works.

url-pattern can take one of four forms:

* "/" matches all URLs. Use this to pass all requests to Resin.
* "/prefix/url/*" matches any URL starting with /prefix/url, including prefix/url itself. It does not match /prefix/urlfoo because any slash must immediately follow url
* "/exact/path" matches only the exact path. In other words, it will not match /exact/path/bogus.
* "*.ext" matches any URL with the extension ext. Resin allows path-infos, so /foo/bar.ext/path/info will also match.

url-regexp

Note: mod_caucho does not understand regular expressions. If you put regular expressions in your resin.conf, mod_caucho will not send the request to Resin. Apache will handle the request itself.

If you want to use regular expressions in servlet-mapping, web-app, or hosts, you must use Apache-specific configuration to send the request to Resin. You can see this by looking at /caucho-status. /caucho-status will not display any regular expressions.
special servlet-mappings

There are two special servlet-names which only affect the plugins: plugin_match and plugin_ignore.

plugin_match will direct a request to Resin. The servlet engine itself will ignore the plugin_match directive. You can use plugin_match to direct an entire subtree to Resin, e.g. to workaround the regexp limitation, but allow Resin's other servlet-mapping directives to control which servlets are used.

plugin_ignore keeps the request at on the web server. So you could create a directory /static where all documents, including JSPs are served by the web server.


servlet-name='plugin_match'/>


servlet-name='plugin_ignore'/>



web-apps collect servlets and JSP files into separate applications. All the servlet-mappings in a web-app apply only to the URL suffix.

In the following example, every URL starting with /prefix/url maps to the web-app. The servlet-mapping only applies to URLs matching the prefix.

...



..

In the exaple, mod_caucho will match any URL matching /prefix/url/*.foo. /prefix/url/bar.foo will match, but /test/bar.foo will not match.

Note: Resin standalone allows a regexp attribute instead of an id. Because mod_caucho does not understand regexps, it will ignore any web-app with a regexp attribute.

Note: web.xml files and war files are treated exactly the same as web-apps in the resin.conf.


host blocks configure virtual hosts . There's a bit of extra work for virtual hosts that we'll ignore here. (Basically, you need to add Apache ServerName directives so Resin knows the name of the virtual host.)

For dispatching, a host block gathers a set of web-apps. Each host will match a different set of URLs, depending on the web-app configuration. The default host matches any host not matched by a specific rule.

As usual, /caucho-status will show the URLs matched for each host.

Note: mod_caucho does not understand the host regexp attribute. It will ignore all hosts using regexp. To get around this, you can either configure Apache directly (see below), or configure the default host with the same set of servlet-mappings. Since mod_caucho will use the default host if no others match, it will send the right requests to Resin.

/caucho-status shows mod_caucho's URLs

The special URL /caucho-status is invaluable in debugging Resin configurations. /caucho-status displays all the resin.conf patterns, so you can easily scan it to see which URLs mod_caucho is sending to Resin and which ones are handled by Apache.

Dispatching using Apache's http.conf

You can configure Apache directly, instead of letting mod_caucho dispatch from the resin.conf file. If you use this method, you need to make sure you match the Apache configuration with the Resin configuration.

Note: This technique uses Apache-specific features, so it's not directly applicable to IIS or iPlanet.

Apache's Location and SetHandler directives send requests to Resin. The mod_caucho handler is caucho-request.

httpd.conf

LoadModule caucho_module libexec/mod_caucho.so
AddModule mod_caucho.c

CauchoHost localhost 6802
AddHandler caucho-request jsp

SetHandler caucho-request


Because Apache's SetHandler is external to mod_caucho, /caucho-status will not show any SetHandler dispatching.


依照以上文章,在apache的conf文件内,过滤内容为所有servlet目录下的所有内容全部题交给resin,那我们可以具体定义我们要过滤的内容,如下

AddHandler caucho-request jsp

SetHandler caucho-request

如果这样定义,证明在resin发布的/(根)目录,所有的.do的文件都将会题交给resin。这样就做到了让resin去处理而不会在出现404 apache找不到页面的问题了