隨筆-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 閱讀(427) | 評論 (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 閱讀(413) | 評論 (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 閱讀(1122) | 評論 (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 閱讀(2446) | 評論 (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 閱讀(322) | 評論 (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 閱讀(269) | 評論 (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 閱讀(268) | 評論 (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 閱讀(269) | 評論 (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 閱讀(280) | 評論 (0)編輯 收藏
          僅列出標題
          共7頁: 上一頁 1 2 3 4 5 6 7 
          主站蜘蛛池模板: 竹山县| 卓资县| 万盛区| 成都市| 高邮市| 剑河县| 宁海县| 博乐市| 舒城县| 巨野县| 康定县| 咸宁市| 蓝田县| 库尔勒市| 津南区| 赤峰市| 手游| 策勒县| 太保市| 东城区| 全州县| 平江县| 抚顺县| 桃园市| 新田县| 前郭尔| 卢湾区| 康保县| 水城县| 永济市| 台前县| 页游| 怀远县| 塔城市| 陈巴尔虎旗| 碌曲县| 鄂托克前旗| 即墨市| 安远县| 安福县| 五大连池市|