月度归档:2010年10月

resin4.0.5+iis6 整合方案

安装jdk,并设置java_home等相关环境变量

下载resin4.0.5解压至D:\resin-pro-4.0.5
点击目录下的setup.exe,点击 web server plugins
看IIS,安装至 C:\Inetpub\Scripts ,如果没有Scripts目录,你得手动建一个,
安装后此目录下有个isapi_srun.dll,
然后在IIS上添加ISAPI,名称JSP,随便起也行,路径就是这文件
然后在添加一个.jsp的映射,也是这个文件,这些操作基本和php的一样。
最好在WEB服务器扩展也添加一个,然后让它允许。
然后在iis站点上新建一个虚拟目录,名称为Scripts,路径同上C:\Inetpub\Scripts
一般可能出错的地方就是IIS站点对这个目录或isapi_srun.dll没有读取权限,自己设。
还有isapi加载,那个优先级高低都可以的。只要是绿色就行。

------启动 resin   -->cmd -> net start resin
------这时打开IIS的站点,如果遇到.jsp文件,就会让resin解析了。

配置resin

-------------------D:\resin-pro-4.0.5\conf\resin.xml--------
大约在174行,修改 resin主机目录,和你IIS保持同路径
<web-app id="/" root-directory="WebRoot"/>
改成如:
<host id="b.oocms.net" root-directory="E:/Workspaces/ssh">

OK,只要你以上步骤正确操作,决对没问题

 

连接池要不要?要就在下面
大约在88行</resin:if>后面添加
    <database>
           <jndi-name>jdbc/aaa</jndi-name>
           <driver type="com.mysql.jdbc.Driver">
             <url>jdbc:mysql://127.0.0.1:3306/test</url>
             <user>root</user>
             <password>123</password>
            </driver>
            <prepared-statement-cache-size>8</prepared-statement-cache-size>
            <max-connections>20</max-connections>
            <max-idle-time>30s</max-idle-time>
    </database>
这样就可以直接在java里调用了,不需要像tomcat一样还得在web.xml配置

那在IIS上应该会了吧,resin上继续配置resin.xml
在</host>后面添加就是了
比如:
    <host id="www.oocms.net" root-directory="E:/Workspaces/ssh">
      <web-app id="/" root-directory="WebRoot"/>
    </host>

Resin多域名绑定 
 

需求: 
group.XXX.com 
XXX.group.XXX.com 
都指向同一系统

 
 

<host id="group.aaa.com"


>
  <host-alias-regexp>([a-zA-Z0-9.]+)roup\.([^.]+)\.com</host-alias-regexp>
  <host-name>${


host-alias-regexp.regexp[1]}


roup.${


host-alias-regexp.regexp[2]}


.com</host-name>
  <root-directory>.</root-directory>
  <web-app id="/"


 document-directory="e:\group_aaa"


/>
</host>

启动Resin后,访问

http://a.group.aaa.com/


http://group.aaa.com/


http://group.bbb.com/


http://a.group.bbb.com/





或另一配置方式


<host id="" root-directory=".">
<host-alias>域名1</host-alias>
<host-alias>域名2</host-alias>
<host-alias>域名3</host-alias>
     
    </host>

都能访问到同一系统。

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

软件环境

  • 操作系统:win2003
  • SDK:JDK 1.6
  • 服务器:IIS6.0和Resin 3.1.2

1、配置Resin

  1. 安装好SDK(我的SDK安装在:C:\Program Files\Java\jdk),解压Resin至:C:\resin3.1
  2. 在我的电脑上单击鼠标右键→属性→高级→环境变量:
    1. 新建:java_home 值为:C:\Program Files\Java\jdk;
    2. 新建:Resin_home 值为:C:\resin3.1(Resin安装的目录);
    3. 新建:classpath 值为:.;C:\Program Files\Java\jdk\lib\dt.jar;C:\Program Files\Java\jdk\lib\tools.jar 前面有一个点和一个分号;
    4. 编辑系统变量:path加上一个分号,在其后面加上:C:\Program Files\Java\jdk\bin;

2、复制Resin文件至IIS目录

这就需要我们自己来复制文件。我的IIS是安装在C:\Inetpub下的:

  1. C:\Inetpub下面新建一个文件夹,重命名为scripts;
  2. 运行Rensin3.1下的setup.exe 选上iis/pws点OK,C:\Inetpub\scripts下就生成了isapi_srun.dll,如果失败请检查C:\Inetpub\scripts是否有权限;
  3. 在C:\Inetpub\scripts新建一个resin.ini文件。文件内容下面两行数据:
    ResinConfigServer localhost 6802
    IISPriority high


    官方的文档上说只有需要建立多个站点的时候才必须使用resin.ini。如果只有一个站点就没必要新建resin.ini(推荐使用);

4、设置IIS

  1. 在默认网站上单击右键→属性→ISAPI筛选器→添加:
    筛选器名称:Resin3.1(可随便填)
    可执行文件:C:\Inetpub\scripts\isapi_srun.dll
  2. 在默认网站上单击右键→新建→虚拟目录
    别名:scripts
    本地路径:C:\Inetpub\scripts
  3. 单击WEB服务扩展→添加一个新的WEB服务扩展
    扩展名:Resin(可随便添)
    要求文件:C:\Inetpub\scripts\isapi_srun.dll
    选中设置扩展状态为允许

5、设置Resin

打开C:\resin3.1\conf\resin.conf,在文件中找到(大概是在最后):

<host id=''>
<document-directory>doc</document-directory>

改成

<host id=''>
<document-directory>c:/inetpub/wwwroot</document-directory>

(c:/inetpub/wwwroot,为你的默认网站的目录)

然后先运行net stop w3svc关闭IIS服务;再运行net start w3svc重新启动IIS;打开Resin3.1\bin\httpd.exe。现在IIS6.0与Resin3.1已经成功整合了。

我们可以将httpd.exe作为服务启动。那么,计算机启动的时候就会启动httpd.exe:

  • 安装服务:c:\resin3.1\bin\httpd.exe -install
  • 取消服务:c:\resin3.1\bin\httpd.exe -remove

启动后访问IIS站点如果出现Server is currently unavailable or down for maintenance,运行resin下的setup.exe文件,点remove关闭窗口即可(注意点完remove后不要点OK,直接X就行了。)

Linux网络配置

ifconfig 配置网络接口的工具介绍;

ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。比如我们可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。 也可以把它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址;不过这样做目前看来没有 太大的必要。主要是各个发行版本都有自己的配置工具,无论如何也能把主机加入到网络中;

下面我们看看ifconfig 用法;

ifconfig 查看网络接口状态;

ifconfig 如果不接任何参数,就会输出当前网络接口的情况;

[root@localhost ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:C0:9F:94:78:0E          inet addr:192.168.1.88  Bcast:192.168.1.255  Mask:255.255.255.0          inet6 addr: fe80::2c0:9fff:fe94:780e/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:850 errors:0 dropped:0 overruns:0 frame:0          TX packets:628 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:369135 (360.4 KiB)  TX bytes:75945 (74.1 KiB)          Interrupt:10 Base address:0x3000lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:16436  Metric:1          RX packets:57 errors:0 dropped:0 overruns:0 frame:0          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:8121 (7.9 KiB)  TX bytes:8121 (7.9 KiB)解说:
eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,我们可以看到目前这个网卡的物理地址(MAC地址)是 00:C0:9F:94:78:0E ; inet addr 用来表示网卡的IP地址,此网卡的 IP地址是 192.168.1.88, 广播地址, Bcast:192.168.1.255,掩码地址Mask:255.255.255.0

lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如我们把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道;

如果我们想知道主机所有网络接口的情况,请用下面的命令;

[root@localhost ~]# ifconfig -a
如果我们想查看某个端口,比如我们想查看eth0 的状态,就可以用下面的方法;

[root@localhost ~]# ifconfig eth0

ifconfig 配置网络接口;

ifconfig 可以用来配置网络接口的IP地址、掩码、网关、物理地址等;值得一说的是用ifconfig 为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。如果您想把网络接口的IP地址固定下来,目前有三个方法:一是通过各个 发行和版本专用的工具来修改IP地址;二是直接修改网络接口的配置文件;三是修改特定的文件,加入ifconfig 指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig 的语名写入/etc/rc.d/rc.local文件中;

ifconfig 配置网络端口的方法:

ifconfig 工具配置网络接口的方法是通过指令的参数来达到目的的,我们只说最常用的参数;

ifconfig 网络端口 IP地址 hw <HW> MAC地址 netmask 掩码地址 broadcast 广播地址 [up/down]
* 实例一:
比如我们用ifconfig 来调试 eth0网卡的地址

[root@localhost ~]# ifconfig eth0 down
[root@localhost ~]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 up
[root@localhost ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:00:00:11:11
          inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0x3400
注解: 上面的例子我们解说一下;

第一行:ifconfig eth0 down 表示如果eth0是激活的,就把它DOWN掉。此命令等同于 ifdown eth0;
第二行:用ifconfig 来配置 eth0的IP地址、广播地址和网络掩码;
第三行:用ifconfig eth0 up 来激活eth0 ; 此命令等同于 ifup eth0
第四行:用 ifconfig eth0 来查看 eth0的状态;

当然您也可以用直接在指令IP地址、网络掩码、广播地址的同时,激活网卡;要加up参数;比如下面的例子;

[root@localhost ~]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up
* 实例二:在这个例子中,我们要学会设置网络IP地址的同时,学会设置网卡的物理地址(MAC地址);

比如我们设置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它;

[root@localhost ~]# ifconfig eth1 192.168.1.252 hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255 up

[root@localhost ~]# ifconfig eth1 hw ether 00:11:00:00:11:22
[root@localhost ~]# ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up
其中 hw 后面所接的是网络接口类型, ether表示乙太网, 同时也支持 ax25 、ARCnet、netrom等,详情请查看 man ifconfig ;

如何用ifconfig 来配置虚拟网络接口;

有时我们为了满足不同的需要还需要配置虚拟网络接口,比如我们用不同的IP地址来架运行多个HTTPD服务器,就要用到虚拟地址;这样就省却了同一个IP地址,如果开设两个的HTTPD服务器时,要指定端口号。

虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的 eth0:0 、 eth0:1、eth0:2 ... .. eth1N。当然您为eth1 指定多个IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此类推;

其实用ifconfig 为一个网卡配置多个IP地址,就用前面我们所说的ifconfig的用法,这个比较简单;看下面的例子;

[root@localhost ~]# ifconfig eth1:0 192.168.1.251 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast 192.168.1.255 up

[root@localhost ~]# ifconfig eth1 hw ether 00:11:00:00:11:33
[root@localhost ~]# ifconfig eth1 192.168.1.251 netmask 255.255.255.0 broadcast 192.168.1.255 up
注意:指定时,要为每个虚拟网卡指定不同的物理地址;

在 Redhat/Fedora 或与Redhat/Fedora类似的系统,您可以把配置网络IP地址、广播地址、掩码地址、物理地址以及激活网络接口同时放在一个句子中,写入/etc/rc.d/rc.local中。比如下面的例子;

ifconfig eth1:0 192.168.1.250 hw ether 00:11:00:00:11:44 netmask 255.255.255.0 broadcast 192.168.1.255 up
ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:00:11:55 netmask 255.255.255.0 broadcast 192.168.1.255 up
解说:上面是为eth1的网络接口,设置了两个虚拟接口;每个接口都有自己的物理地址、IP地址... ...

如何用ifconfig 来激活和终止网络接口的连接;

激活和终止网络接口的用 ifconfig 命令,后面接网络接口,然后加上 down或up参数,就可以禁止或激活相应的网络接口了。当然也可以用专用工具ifup和ifdown 工具;

[root@localhost ~]# ifconfig eth0 down
[root@localhost ~]# ifconfig eth0 up
[root@localhost ~]# ifup eth0
[root@localhost ~]# ifdown eth0
对于激活其它类型的网络接口也是如此,比如 ppp0,wlan0等;不过只是对指定IP的网卡有效。

注意:对DHCP自动分配的IP,还得由各个发行版自带的网络工具来激活;当然得安装dhcp客户端;这个您我们应该明白;

比如Redhat/Fedora

[root@localhost ~]# /etc/init.d/network start
Slackware 发行版;

[root@localhost ~]# /etc/rc.d/rc.inet1

Redhat/Fedora 网络接口的配置文件和网络接口专用配置工具;

在Redhat/Fedora 中,与乙太网卡相关的配置文件位于 /etc/sysconfig/network-scripts目录中,比如 ifcfg-eth0、ifcfg-eth1 .... ....

Redhat/Fedora 或类似这样的系统,网卡的配置文件;

比如在Fedora 5.0中,ifcfg-eth0 ;

如果您用DHCP服务器来自动获取IP的,一般情况下ifcfg-eth0的内容是类似下面这样的;

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
如果您是指定IP的,一般内容是类似下面的;

DEVICE=eth0 注:网络接口
ONBOOT=yes 注:开机引导时激活
BOOTPROTO=static 注:采用静态IP地址;
IPADDR=192.168.1.238 注:IP地址
NETMASK=255.255.255.0 注:网络掩码;
GATEWAY=192.168.1.1 注:网关;
下面的几个选项也可以利用;

HOSTNAME=linxsir03 注:指定主机名;
DOMAIN=localdomain 注:指定域名;
HWADDR=00:00:11:22:00:aa 注:指定网卡硬件地址 (MAC地址), 也可以省略,不过这在这里来更改MAC地址一般是不能生效的。还是通过前面所说的ifconfig的办法来更改吧;

 

Redhat/Fedora 或类似系统, 配置网络的工具介绍 ;

在Redhat早期的版本中, 有linuxconf 、redhat-config-network 、netconfig 等工具;

在Redhat/Fedora 最新的版本有 system-config-network-tui (文本模式的) 、system-config-network (图形模式的),netconfig(文本模式的)。

这些工具都会直接修改Linux系统中关于网络接口的配置文件;这是 ifconfig 所不能比的;

其中 redhat-config-network 和system-config-network工具不仅仅是配置网卡的工具,还有配置ISDN和普通猫、ADSL的工具、网络硬件的添加、主机名字的配置、DNS各客户端的配置等。其实是一个工具组的集成;

这些工具比较简单,以root权限运行命令就能调用,比如:

[root@localhost ~]# /usr/sbin/system-config-network
[root@localhost ~]# system-config-network
如果您设置了可执行命令的环境变量,不用加路径就可以运行,但前提是您得安装这个网络管理工具;

不过值得一说的是netconfig 工具是一个在文本模式比较好的工具,推荐大家使用;理由是这个工具在文本模式下,也有一个简单的图形界面;还有命令模式;功能强着呢;

[root@localhost ~]# netconfig -d eth0 注:配置eth0
[root@localhost ~]# netconfig -d eth1 注:配置eth1

Redhat/Fedora系统中的netconfig 特别介绍;

netconfig这个工具,在Redhat/Fedora 或类似于它们的系统中都是存在的,这个工具比较强大。所以特别介绍一下。但在Slackware中netconfig是TEXT模式下有一个图形模式,但不能象ifconfig一样用命令来操作网卡接口;

netconfig 的用法如下:

[root@localhost ~]# netconfig --help 注:帮助;
  --bootproto=(dhcp|bootp|none) Boot protocol to use(
  --gateway=STRING Network gateway(指定网关)
  --ip=STRING IP address(指定IP地址)
  --nameserver=STRING Nameserver(指定DNS客户端)
  --netmask=STRING Netmask(指定网络掩码)
  --hostname=STRING Hostname( 指定主机名)
  --domain=STRING Domain name(指定域名)
  -d, --device=STRING Network device (指定网络设备)
  --nodns No DNS lookups (没有DNS查询)
  --hwaddr=STRING Ethernet hardware address (指定网卡的物理地址)
  --description=STRING Description of the device (描述性文字)
Help options: (帮助选项)
  -?, --help Show this help message
  --usage Display brief usage message
实例一:设置网卡的DHCP模式自动获得IP

[root@localhost ~]# netconfig -d eth0 --bootproto=dhcp
实例一:手动设置网卡的IP等

[root@localhost ~]# netconfig -d eth0 --ip=192.168.1.33 --netmask=255.255.255.0 --gateway=192.168.1.1

sql 中contains的使用例子,参数详解

全文索引——CONTAINS 语法

 

Like直接在数据据中查找可以查到所有所需记录但是会扫描整个表会影响性能CONTAINS是基于全文索引进行查询,查询结果受系统全文索引分词的方法影响查询结果会不全。
Select * FROM A Where CONTAINS(B,'"IT"Or"理论"')5257条记录
Select * FROM A Where B Like'%IT%' or B LIKE '%理论%' 5468条记录
结论:需要精确查询用Like如产品搜索,内容搜索可以用CONTAINS提高效率。

我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')。

我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列。
1. 查询住址在北京的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'beijing' )
remark: beijing是一个单词,要用单引号括起来。

2. 查询住址在河北省的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province"' )
remark: HEBEI province是一个词组,在单引号里还要用双引号括起来。

3. 查询住址在河北省或北京的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province" OR beijing' )
remark: 可以指定逻辑操作符(包括 AND ,AND NOT,OR )。

4. 查询有 '南京路' 字样的地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'nanjing NEAR road' )
remark: 上面的查询将返回包含 'nanjing road','nanjing east road','nanjing west road' 等字样的地址。
A NEAR B,就表示条件: A 靠近 B。

5. 查询以 '湖' 开头的地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"hu*"' )
remark: 上面的查询将返回包含 'hubei','hunan' 等字样的地址。
记住是 *,不是 %。

6. 类似加权的查询
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'ISABOUT (city weight (.8), county wright (.4))' )
remark: ISABOUT 是这种查询的关键字,weight 指定了一个介于 0~1之间的数,类似系数(我的理解)。表示不同条件有不同的侧重。

7. 单词的多态查询
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'FORMSOF (INFLECTIONAL,street)' )
remark: 查询将返回包含 'street','streets'等字样的地址。
对于动词将返回它的不同的时态,如:dry,将返回 dry,dried,drying 等等。

以上例子都使用英文,不使用中文是因为有的查询方式中文不支持,而且我的计算机是英文系统。
全文索引——CONTAINS 语法
我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')。

如果你在选定字段中查询一个匹配的直接使用
如:
从company中检查是否有test1的则:
select * from company
where contains(*,'test1')
如果要检查的是两个关键字,如是或地关系:
select * from company
where contains(*,'"北京" or "tttt"')
注意:关键字“北京”和“tttt”必须用"",包括起来,or代表两个关键字之间是"或"的关系
如果是与的关系:
select * from company
where contains(*,'"北京" and "tttt"')
如果是三个关键字则:
关键字前的那个or或者and 表示跟其他关键字的关系
and 表示两个词是靠近的