随笔-69  评论-0  文章-5  trackbacks-0
 
rem ---------------------------------------------------------------------------
rem 和eclipse建立远程调试的方法,管用
rem ---------------------------------------------------------------------------
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

加入catalina.bat(在CATALINA_OPTS使用之前)文件

在eclipse的remote debug设置对应的主机地址和端口号即可

和tomcat的命令行方式配合使用,可以省插件了
posted @ 2007-01-24 17:29 liunix 阅读(430) | 评论 (0)编辑 收藏
    <!--ssl连接,如果要验证客户端证书,只需要将clientauth设为true即可-->
    <Connector port="8443"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="/D:/tomcat_command/teststore"
               keystorePass="125521"
               />
posted @ 2006-12-25 16:08 liunix 阅读(415) | 评论 (0)编辑 收藏
1,按说明安装ruby的apache mod
2,配置文件如下:
 1  #########################################################
 2  #     ruby cgi 配置
 3  #########################################################
 4  LoadModule ruby_module /usr/lib/httpd/modules/mod_ruby.so
 5  
 6  <IfModule mod_ruby.c>
 7      RubyRequire apache/ruby-run
 8      <Files *.rbx><!--不要误以为源文件以.rbx结尾,还是.rb(在windows下要用.rb)-->
 9          SetHandler ruby-object
10          RubyHandler Apache::RubyRun.instance
11      </Files>
12      RubyRequire apache/eruby-run
13      <Files *.rhtml>
14          SetHandler ruby-object
15          RubyHandler Apache::ERubyRun.instance
16      </Files>
17      #for debug
18      RubyRequire auto-reload
19  </IfModule>


windows:说明
先装:RubyForApache-1.3.1.exe
后装:eruby-1.0.5-i386-mswin32-1.8.zip
posted @ 2006-12-12 15:56 liunix 阅读(1127) | 评论 (0)编辑 收藏
命令形式:
java -classpath D:\tomcat5\bin\bootstrap.jar;D:\jdk15\lib\tools.jar -Dcatalina.home=D:\tomcat5 -Dcatalina.base=E:\webwork1_base  org.apache.catalina.startup.Bootstrap -config E:\webwork1_base\conf\tomcat_server.xml start

说明:
1,catalina.base要有一些类似tomcat安装目录的结构和文件
       --conf      #从安装目录将文件拷过来
       --webapps   #最好将应用放在这下面
       --work      #运行时目录
2,tomcat_server.xml文件的最后加入一个类似的context
<Context debug="0" docBase="/E:/webwork1_base/webapps/webwork1/web/" path="" reloadable="false" workDir="/E:/webwork1_base/work/webwork1/work"/>

3,关闭方式
把start换成stop就行了

4,有啥用?
想试验tomcat配置的,便可不用改原server.xml文件而随心所欲了
还有自动构造建布署等等啦
posted @ 2006-12-11 22:21 liunix 阅读(2450) | 评论 (0)编辑 收藏
Apache安装MOD_SSL的补充--手工签署证书的方法

 虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器
的证书签名,但是有时你可能需要改变它。

当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署
证书。

首先我假定你已经安装好了openssl和MOD_SSL,如果你的openssl安装时
的prefix设置为/usr/local/openssl,那么把/usr/local/openssl/bin加入
执行文件查找路径。还需要MOD_SSL源代码中的一个脚本,它在MOD_SSL的
源代码目录树下的pkg.contrib目录中,文件名为 sign.sh。
将它拷贝到 /usr/local/openssl/bin 中。

先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
[S-1]
openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
[S-2]
chmod 400 ca.key
你可以用下列命令查看它的内容,
[S-3]
openssl rsa -noout -text -in ca.key

利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
[S-4]
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名
Email Address: sunstorm@263.net Email地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
[S-5]
chmod 400 ca.crt
你可以用下列命令查看它的内容,
[S-6]
openssl x509 -noout -text -in ca.crt


下面要创建服务器证书签署请求,
首先为你的 Apache 创建一个 RSA 私用密钥:
[S-7]
openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400,并放在安全的地方。
[S-8]
chmod 400 server.key
你可以用下列命令查看它的内容,
[S-9]
openssl rsa -noout -text -in server.key

用 server.key 生成证书签署请求 CSR.
[S-10]
openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和[S-4]中的内容类似。
至于 'extra' attributes 不用输入。

你可以查看 CSR 的细节
[S-11]
openssl req -noout -text -in server.csr

下面可以签署证书了,需要用到脚本 sign.sh
[S-12]
sign.sh server.csr
就可以得到server.crt。
将文件属性改为400,并放在安全的地方。
[S-13]
chmod 400 server.crt

删除CSR
[S-14]
rm server.csr


最后apache设置
如果你的apache编译参数prefix为/usr/local/apache,
那么拷贝server.crt 和 server.key 到 /usr/local/apache/conf
修改httpd.conf
将下面的参数改为:
SSLCertificateFILE /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/server.key





openssl自建证书SSL+apache

 本文章在LINUX9+apache2.0.52,tomcat5.5.6,j2se1.5,openssl0.97上实验通证
本文的目的是为了交流,如有出错的地方,请指教
转载请注明出处,并保持文章的完整性
现在开始安装

首先在安装之前要明白一些基本概念

1、SSL所使用的证书可以是自己建的生成的,也可以通过一个商业性CA如Verisign 或 Thawte签署证书。


2、证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。

因此:在此环境中,至少必须有三个证书:即根证书,服务器证书,客户端证书
在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。

3、签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个CA.sh来签证书,而不是用MOD_ssl里的sign.sh来签。

用openssl语法来生成证书,有很多条件限定,如目录,key的位置等,比较麻烦,我实验了好几天,最后放弃了。有兴趣的可以参考一下openssl手册。


步骤一:安装openssl和apache
1、到www.openssl.org下载openssl-0.9.7e.tar.gz(目前最新版)
2、卸载掉老的opensll库
CODE:
#rpm –e –-nodeps openssl

3、解压:
CODE:
#tar xzvf openssl-0.9.7e.tar.gz

4、进入openssl目录,并安装,用--prefix指定openssl安装目录
CODE:
#cd openssl-0.9.7e
#./config --prefix=/usr/local/openssl
#make
#make test
#make install

5、安装apache
至www.apache.org/dist下载apache最新版httpd-2.0.52.tar.gz
解压后进入apache目录,根据需要安装需要的模块,我这里装了ssl,rewrite,动态模式安装
CODE:
#tar zxvf httpd-2.0.52.tar.gz
#cd httpd-2.0.52
#./configure --prefix=PREFIX --enable-ssl --enable-rewrite --enable-so --with-ssl=/usr/local/openssl
#make
#make install

步骤二:签证
安装openssl后,在openssl下有一个CA.sh文件,就是利用此文件来签证,
来签三张证书,然后利用这三张证书来布SSL服务器。

1、在/usr/local/apache/conf下,建立一个ssl.crt目录,将CA.sh文件copy至/usr/local/apache/conf/ssl.crt/目录
CODE:
[root@win ssl]# cp /usr/local/openssl/ssl/misc/CA.sh /usr/local/apache/conf/ssl.crt/CA.sh

2、运行CA.sh -newca,他会找你要CA需要的一个CA自己的私有密钥密码文件。如果没有这个文件?按回车会自动创建,输入密码来保护这个密码文件。之后会要你的一个公司信息来做CA.crt文件。最后在当前目录下多了一个./demoCA这样的目录../demoCA/private/cakey.pem就是CA 的key文件啦,./demoCA/cacert.pem就是CA的crt文件了
CODE:
[root@win ssl.crt]# ./CA.sh -newca

要求输入如下信息:
QUOTE:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:FUJIAN
Locality Name (eg, city) [Newbury]:FUZHOU
Organization Name (eg, company) [My Company Ltd]:FJJM
Organizational Unit Name (eg, section) []:FD
Common Name (eg, your name or your server's hostname) []:WIN
Email Address []:WIN@WIN.COM

这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem,现在就可以cacert.pem来给签证了

3、签署服务器证书
生成服务器私钥:
CODE:
[root@win ssl.crt]# openssl genrsa -des3 -out server.key 1024

生成服务器证书请求
CODE:
[root@win ssl.crt]# openssl req -new -key server.key -out server.csr

会要求输入信息
CODE:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:FUJIAN
Locality Name (eg, city) [Newbury]:FUZHOU
Organization Name (eg, company) [My Company Ltd]:FJJM
Organizational Unit Name (eg, section) []:FD
Common Name (eg, your name or your server's hostname) []:WIN
Email Address []:WIN@WIN.COM
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:WIN
An optional company name []:WING

最后把server.crt文件mv成newreq.pem,然后用CA.sh来签证就可以了
CODE:
[root@win ssl.crt]# mv server.csr newreq.pem
[root@win ssl.crt]# ./CA.sh -sign

这样就生成了server的证书newcert.pem
把newcert.pem改名成server.crt
CODE:
[root@win ssl.crt]# mv newcert.pem server.crt

4、处理客户端:
生成客户私钥:
CODE:
[root@win ssl.crt]# openssl genrsa -des3 -out client.key 1024

请求
CODE:
[root@win ssl.crt]# openssl req -new -key client.key -out client.csr

签证:
CODE:
[root@win ssl.crt]# openssl ca -in client.csr -out client.crt

把证书格式转换成pkcs12格式
CODE:
[root@win ssl.crt]# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

5、这时就有了三张证书和三个私钥,一个是demoCA下的根证书,ssl.crt下的服务器证书和客户证书。及demoCA/private下的根key, ssl.crt下的服务器key和客户key,在conf下的ssl.conf下指定证书的位置和服务器key的位置.

我是在conf下建立一个ssl.crt目录,并将所有的key和证书放到这里
CODE:
#cp demoCA/cacert.pem cacert.pem

同时复制一份证书,更名为ca.crt
CODE:
#cp cacert.pem ca.crt

步骤三、编辑ssl.conf
CODE:
#cd /usr/local/apache/conf

编辑ssl.conf
CODE:
指定服务器证书位置
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
指定服务器证书key位置
SSLCertificateKeyFile /usr/local/apache/conf/ssl.crt/server.key
证书目录
SSLCACertificatePath /usr/local/apache/conf/ssl.crt
根证书位置
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/cacert.pem
开启客户端SSL请求
SSLVerifyClient require
SSLVerifyDepth 1

启动ssl
CODE:
/usr/local/apache/bin/apachectl startssl

会要求输入server.key的密码
启动,这样一个默认的SSL服务器及http服务器就启动了,

步骤四、安装和使用证书
把刚才生成的证书:根证书ca.crt和客户证书client.pfx下到客户端,并安装,
ca.crt安装到信任的机构,client.pfx直接在windows安装或安装到个人证书位置,然后用IP访问HTTP和https服务器。
posted @ 2006-11-29 15:47 liunix 阅读(324) | 评论 (0)编辑 收藏
 ##########################################################
 #   subversion 配置
 #说明:
 #    1,不知道为何svn模块会报已经载入
 #    2,如果设认证,AuthName 一定要设置AuthName
 #    3,仓库的属主要设为apache
 ##########################################################
 
 #LoadModule dav_svn_module modules/mod_dav_svn.so
 #LoadModule authz_svn_module modules/mod_authz_svn.so
 
 <Location /svn>
    DAV svn
    SVNParentPath /var/svn
    #SVNAutoversioning on
    Require valid-user
    AuthName "svn auth"
    AuthType Basic
    AuthUserFile /var/svn/passwd
    AuthzSVNAccessFile /var/svn/accessfile
 </Location>

htpasswd -c ${filename} ${username} #-c 在创建文件时才用

下面是:accessfile
[/]
liunix=r
[repos_test:/]   #repos_test是仓库名
liunix=rw
posted @ 2006-11-24 12:31 liunix 阅读(271) | 评论 (0)编辑 收藏
过程序要比apache+fastcgi简单许多(但下面的rpm一定要来严格按fc4的来)


1, 安装lua-5.1-6.fc4.i386.rpm
2,安装lighttpd-1.4.11-1.fc4.i386.rpm
3,安装fcgi-2.4.0.tar.gz
4,安装lighttpd-fastcgi-1.4.11-1.fc4.i386.rpm
5,安装ruby-fcgi-0.8.6.tar.gz

然后找到rails的gem下的lighttpd.conf
复制到railsapp/config下

然后直接ruby script/server即可
posted @ 2006-11-23 14:40 liunix 阅读(270) | 评论 (0)编辑 收藏
一, awk 杀进程

for
 x in `ps  - ef  |  awk  ' {F S =" ";if($0~/(ruby|lighttpd)/ && $8!~/awk/) print $2} ' `;  do   kill   - 9   $x ; done

上面代码的功能是找出系统中ruby和lighttpd的进程,然后干掉

说明:
1,FS指定分隔符,可能是指file seperator(就是文件分隔符了)
2,$0代指全行
3,print 打印到控制台
4,结果被外围shell循环掉用

二,打印ll的最后一列($NF代表列数)

/bin/ls -l test.sh | awk '{ print $NF; }'



, sed   文件替换

 sed 
-'1,$ s/cmp_old/asdf/gp' server.xml 



posted @ 2006-11-23 14:34 liunix 阅读(273) | 评论 (0)编辑 收藏

prototype 是javascript实现继承的基本方法,但这种继承和java等继承有什么本质的区别呢


在 JavaScript 中,对象的 prototype 在运行期是不可见的,只能在定义对象的构造函数时,创建对象之前设定。下面的用法都是错误的:

o2.prototype  =  o1;
/* *
  这时只定义了 o2 的一个名为“prototype”的属性,
  并没有将 o1 设为 o2 的 prototype。
*/
 
//  ---------------
 
f2 
=   function (){};
o2 
=   new  f2;
f2.prototype 
=  o1;
/* *
  这时 o1 并没有成为 o2 的 prototype,
  因为 o2 在 f2 设定 prototype 之前已经被创建。
*/
 
//  ---------------
 
f1 
=   function (){};
f2 
=   function (){};
o1 
=   new  f1;
f2.prototype 
=  o1;
o2 
=   new  f2;
/* *
  同样,这时 o1 并不是 o2 的 prototype,
  因为 JavaScript 不允许构造函数的 prototype 对象被其它变量直接引用。
*/

从上面的例子可以看出:如果你想让构造函数 F2 继承另外一个构造函数 F1 所定义的属性和方法,那么你必须先创建一个 F1 的实例对象,并立刻将其设为 F2 的 prototype。笔者认为这种继承方法不够直观,并且将对象的设计期和运行期混在一起


就是拿类来“继承”另外一个类的实例的说。。。



继续:

function  MyObject1(formalParameter){
    
this .testNumber  =  formalParameter;
}

function  MyObject2(formalParameter){
    
this .testString  =  formalParameter;
}

MyObject2.prototype 
=   new  MyObject1(  8  );

var  objectRef  =   new  MyObject2(  " String_Value "  );

Theinstance of MyObject2 referred to by the objectRef variable has a prototype chain. The first object in that chain is the instance of MyObject1 that was created and assigned to the prototype property of the MyObject2 constructor. The instance of MyObject1 has a prototype, the default Object prototype that corresponds with the object referred to by Object.prototype. Object.prototype has a null prototype(!) so the prototype chain comes to an end at this point.


说明prototype是类的一个属性而不是实例的属性。。。




prototype是一个链,链的尽头是Object.prototype而这个prototype有一些toString()之类的通用方法,且这个prototype的prototype为null


现在了解了怎样通过prototype实现继承了吧:

1,如果给一个实例动态添加属性的话,这个属性只能做用于这个实例
2,如果给一个类的prototype添加属性的话,这个属性会在类的每个实例中产生一个拷贝,即会做用于类的所有实例,产生类似继承的效果
posted @ 2006-05-26 14:46 liunix 阅读(284) | 评论 (0)编辑 收藏
仅列出标题
共7页: 上一页 1 2 3 4 5 6 7