隨筆-153  評論-235  文章-19  trackbacks-0
           
                  想搭個服務(wù)器,但外面訪問不到,是防火墻的原因,把端口設(shè)置一下就行。

          1.在/etc/sysconfig/iptables里添加
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

          2.重啟iptables
          [root@localhost ~]# /etc/init.d/iptables restart

          3.看下狀態(tài)
          [root@localhost ~]# /etc/init.d/iptables status
          posted @ 2008-05-01 14:14 流浪汗 閱讀(4421) | 評論 (0)編輯 收藏
                  在VMware安裝一個CentOS的Sever版,終端里的內(nèi)容不可滾動,不方便。在win下遠(yuǎn)程登錄不錯(win下有個Xshell)。默認(rèn)安裝ssh是有的。只是hosts訪問問題。

          1.在hosts.deny文件尾添加sshd:ALL
          意思是拒絕所有訪問請求
          [root@localhost ~]# vi /etc/hosts.deny

          修改后看起來如下:
          #
          #
           hosts.deny    This file describes the names of the hosts which are
          #
                         *not* allowed to use the local INET services, as decided
          #
                         by the '/usr/sbin/tcpd' server.
          #
          #
           The portmap line is redundant, but it is left to remind you that
          #
           the new secure portmap uses hosts.deny and hosts.allow.  In particular
          #
           you should know that NFS uses portmap!
          sshd:ALL

          2.在hosts.allow文件尾添加sshd:192.168.0.
          意思是允許192.168.0.1 到254的主機(jī),內(nèi)網(wǎng)。
          [root@localhost ~]# vi /etc/hosts.allow 
          #
          #
           hosts.allow   This file describes the names of the hosts which are
          #
                         allowed to use the local INET services, as decided
          #
                         by the '/usr/sbin/tcpd' server.
          #
          sshd:192.168.0.

          3.重啟ssh
          [root@localhost ~]# /etc/rc.d/init.d/sshd restart
          停止 sshd:                                                [  確定  ]
          啟動 sshd                                                  [  確定  ]


          好了,用putty和Xshell(Xmanager)可以登錄了。^_^

          4.ssh增強(qiáng)配置
          [root@localhost ~]# vi /etc/ssh/sshd_config  ← 用vi打開SSH的配置文件

          #Protocol 2,1 ← 找到此行將行頭“#”刪除,再將行末的“,1”刪除,只允許SSH2方式的連接
           
          Protocol 
          2 ← 修改后變?yōu)榇藸顟B(tài),僅使用SSH2

          #ServerKeyBits 768 ← 找到這一行,將行首的“#”去掉,并將768改為1024
           
          ServerKeyBits 
          1024 ← 修改后變?yōu)榇藸顟B(tài),將ServerKey強(qiáng)度改為1024比特

          #PermitRootLogin yes  ← 找到這一行,將行首的“#”去掉,并將yes改為no
           
          PermitRootLogin no  ← 修改后變?yōu)榇藸顟B(tài),不允許用root進(jìn)行登錄

          #PasswordAuthentication yes ← 找到這一行,將yes改為no
           
          PasswordAuthentication no ← 修改后變?yōu)榇藸顟B(tài),不允許密碼方式的登錄

          #PermitEmptyPasswords no  ← 找到此行將行頭的“#”刪除,不允許空密碼登錄
           
          PermitEmptyPasswords no  ← 修改后變?yōu)榇藸顟B(tài),禁止空密碼進(jìn)行登錄

          參考: http://www.centospub.com/make/sshd.html
          posted @ 2008-05-01 10:13 流浪汗 閱讀(12573) | 評論 (0)編輯 收藏

          想學(xué)習(xí)在linux下建一個服務(wù)平臺。
          安裝lighttpd

          1.下載安裝
          http://www.lighttpd.net/下載,lighttpd-1.4.19.tar.gz

          $ wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
          $ gzip 
          -cd lighttpd-1.4.19.tar.gz | tar xf -
          $ cd lighttpd
          -1.4.19
          $ .
          /configure --prefix=/usr/local/lighttpd-1.4.19
          $ make
          $ make install


          2.copy conf

          cp doc/lighttpd.conf /usr/local/lighttpd-1.4.19/ 


          3.配置

          lighttpd.conf里server.document-root是服務(wù)目錄、server.errorlog是錯誤日志目錄,自己更改。

          4.運(yùn)行

          $ cd /usr/local/lighttpd-1.4.19
          $ sbin
          /lighttpd -f lighttpd.conf


          呵呵,現(xiàn)在可以運(yùn)行了。

          posted @ 2008-04-30 23:23 流浪汗 閱讀(1340) | 評論 (2)編輯 收藏
          轉(zhuǎn)載: http://www.bullog.cn/blogs/cathayan/archives/33231.aspx

          在Linux下面全面用UTF-8后就曾發(fā)現(xiàn)過中文排序有點(diǎn)不理解了,昨天才看到別人討論,原來Unicode里面的漢字順序居然是《康熙字典》的偏旁部首順序。查了一下,康熙字典中的部首共有214個:

          一丨丶丿乙亅二亠人兒入八冂冖冫幾凵刀力勹匕匚匸十卜卩廠厶又口囗土士夂夊夕大女子宀寸小尢尸屮山巛工己巾干幺廣廴廾弋弓彐彡彳心戈戶手支攴文斗斤方無日曰月木欠止歹殳毋比毛氏氣水火爪父爻爿片牙牛犬玄玉瓜瓦甘生用田疋疒癶白皮皿目矛矢石示禸禾穴立竹米糸缶網(wǎng)羊羽老而耒耳聿肉臣自至臼舌舛舟艮色艸虍蟲血行衣襾見角言谷豆豕豸貝赤走足身車辛辰辵邑酉釆里金長門阜隸隹雨靑非面革韋韭音頁風(fēng)飛食首香馬骨高髟鬥鬯鬲鬼魚鳥鹵鹿麥麻黃黍黑黹黽鼎鼓鼠鼻齊齒龍龜龠

          像在Google Docs里面,如果對Spreadsheet表格排序,中文就依據(jù)上面的部首順序進(jìn)行,部首在前的字就排在前面,如果部首相同,則算筆劃數(shù),筆劃數(shù)相同的就不知道怎么排了。比如有這樣的結(jié)果:

          劉孫康張李王趙錢齊

          它們的部首分別是:刀子廣弓木王走金齊。

          又有:刈劉則剎劑剔,文和貝同為4劃,殺和齊同為6劃,而點(diǎn)在豎前,撇在橫前,按傳統(tǒng)應(yīng)該是“江山千古”(丶丨丿一乛)的順序。另外還有“寒來暑往”(丶一丨丿乛),“天上人間”(一丨丿丶乛),札字(一丨丿丶乛)法,禮(丶一丨丿乛)字法等。

          這樣用Unicode的話,就是不加任何處理,排序出來的漢字也是很有道理的。但如果想排出拼音順序就還得再想辦法。

          查Unicode和康熙的時候,還查到了這個海峰五筆超大字符集輸入法,一個用于Win系統(tǒng)的五筆輸入法,有86和98標(biāo)準(zhǔn),最厲害的是:收錄UNICODE超大字集全部七萬多中日韓漢字,同時他們還提供一個exe來安裝這個字體

          CJK基本 [4E00-9FFF] 20992碼位 實(shí)際20924字

          CJK擴(kuò)展A [3400-4DBF] 6592碼位 實(shí)際6582字

          CJK擴(kuò)展B [20000-2A6DF] 42720碼位 實(shí)際42711字

          CJK擴(kuò)展C [2A700-2BA7F] 4224碼位 實(shí)際4219字

          CJK兼容擴(kuò)展 [2F800-2FA1F] 544碼位 實(shí)際542字

          CJK部首擴(kuò)展 [2E80-2EFF] 128碼位 實(shí)際116字

          CJK康熙部首 [2F00-2FDF] 224碼位 實(shí)際214字

          CJK筆畫 [31C0-31EF] 48碼位 實(shí)際36字

          CJK兼容 [F900-FAFF] 512個碼位 實(shí)際474字
          posted @ 2008-04-21 17:23 流浪汗 閱讀(1399) | 評論 (0)編輯 收藏


          log4j.properties文件

          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.stdout.layout.ConversionPattern
          =%-4r %d %-5p %l - %m%n
          log4j.logger.net.blogjava.chenlb
          =DEBUG
          log4j.rootLogger
          =INFO, stdout

          解釋下pattern

          r 開始到日志的毫秒數(shù)
          d 日志的時間
          p 日志級別
          l 包括類全名.方法還有在第幾行,這樣在eclipse的Console里點(diǎn)可以直接轉(zhuǎn)到源碼
          m 日志的內(nèi)容
          n 換行
          c 類全名
          M 日志所在的方法名
          L 日志所在的行號
          t 可能是線程啟動的方法名
          F 文件名,包括后綴
          posted @ 2008-04-11 12:01 流浪汗 閱讀(567) | 評論 (0)編輯 收藏
          jdk14的logging還有點(diǎn)麻煩,要覆蓋jre/lib/logging.properties的配置,還要在啟動時加-Djava.util.logging.config.file=mylogging.properties





          java 1.4
          日志紀(jì)錄在java.util.logging.Level類中定義了下列日志級別常數(shù)
          Ø          SERVER表示一個嚴(yán)重失敗。常常將有一個伴隨的Throwable。
          Ø          CONFIG為應(yīng)用配置期間所生成的消息而設(shè)計(jì)的。
          Ø          INFO中等優(yōu)先級。表示一個構(gòu)件正在做什么(例如,監(jiān)視一項(xiàng)任務(wù)的  運(yùn)行進(jìn)度),但不是用來幫助調(diào)試該構(gòu)件。
          Ø          FINE跟蹤信息。該級別和較低優(yōu)先級的級別應(yīng)該用來幫助調(diào)試某些類,但不應(yīng)該用來總體的說明該應(yīng)用的工作方式。
          Ø          FINER詳細(xì)的跟蹤信息。
          Ø          FINEST非常詳細(xì)的跟蹤信息。
          Log4jorg.apache.log4j.Level類中定義了下列日志級別常數(shù)
          Ø          FATAL表示一個嚴(yán)重失敗。導(dǎo)致application的中斷。
          Ø          ERROR表示一個錯誤事件??梢栽试SApplication可以繼續(xù)運(yùn)行。
          Ø          WARN表示一個有潛在的危險。
          Ø          INFO表示一個構(gòu)件正在做重要運(yùn)行情況,信息比較粗糙。
          Ø          DEBUG表示一個構(gòu)件詳細(xì)的運(yùn)行情況,用于調(diào)試Application
          Ø          ALL表示紀(jì)錄所有級別的日志信息。
          Common-logging的日志級別分為6種,從低到高分別為trace,debug,info,warn,error,fatal。
          Ø          FATAL表示一個嚴(yán)重失敗。導(dǎo)致application的中斷。
          Ø          ERROR表示一個錯誤事件??梢栽试SApplication可以繼續(xù)運(yùn)行。
          Ø          WARN表示一個有潛在的危險。
          Ø          INFO表示一個構(gòu)件正在做重要運(yùn)行情況,信息比較粗糙。
          Ø          DEBUG表示一個構(gòu)件詳細(xì)的運(yùn)行情況,用于調(diào)試Application。
          Ø          TRACE非常詳細(xì)的跟蹤信息,僅僅用于紀(jì)錄該日志而已。






          posted @ 2008-04-11 11:50 流浪汗 閱讀(1084) | 評論 (0)編輯 收藏
              用ajax去請求solr服務(wù)。返回json,然后解釋。讓solr返回json的參數(shù)是wt=json。然后javascript用evel()解釋成對象。
          我的solr會返回:auother,title,introduce這幾個域。先創(chuàng)建一個jsp或html,如:json.jsp

          1.json.jsp關(guān)鍵的html內(nèi)容
            <form action="select/" name="f1" method="get" onsubmit="xmlhttpPost('/solr/select'); return false;" >
                Chenlb: 
                
          <input type="text" name="q" size="80" value="文檔">
                
          <input name="start" type="hidden" value="0">
              
          <input name="rows" type="hidden" value="10">
              
          <input name="indent" type="hidden" value="on">
              
          <input name="wt" type="hidden" value="">
                
          <input type="button" value=" 搜 索 " onclick="xmlhttpPost('/solr/select');">
                
          <input type="button" value=" get json " onclick="document.forms['f1'].wt.value='json';document.forms['f1'].submit();">
                
          <input type="button" value=" get xml " onclick="document.forms['f1'].wt.value='';document.forms['f1'].submit();">
            
          </form>
            
          <div style="background-color: #ccccff; height: 15px;"></div>
            
          <p>
              
          <div id="header"></div>
              
          <div id="response"></div>
              
          <table id="docs" class="tab" cellspacing="1">
                  
          <tr height="25" style="background-color: #cccccc; color: #0000ff;">
                      
          <td>作者</td>
                      
          <td>簡介</td>
                      
          <td>標(biāo)題</td>
                      
          <td>score</td>
                  
          </tr>
              
          </table>

          2.javascript部分
          function xmlhttpPost(strURL) {
              
          var xmlHttpReq = false;
              
          var self = this;
              
          if (window.XMLHttpRequest) { // Mozilla/Safari
                  self.xmlHttpReq = new XMLHttpRequest(); 
              }
              
          else if (window.ActiveXObject) { // IE
                  self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
              }
              
              
          var params = getstandardargs().concat(getquerystring());
              
          var strData = params.join('&');
              
              
          var header = document.getElementById("response");
              header.innerHTML 
          = strURL+'?'+strData;

              self.xmlHttpReq.open('get', strURL
          +'?'+strData+'&time='+new Date().getTime(), true);
              self.xmlHttpReq.setRequestHeader('Content
          -Type', 'application/x-www-form-urlencoded');
              self.xmlHttpReq.onreadystatechange 
          = function() {
                  
          if (self.xmlHttpReq.readyState == 4) {
                      updatepage(self.xmlHttpReq.responseText);
                  }
              }
              self.xmlHttpReq.send(
          null);
          }

          function getstandardargs() {
              
          var params = [
                  'wt
          =json'
                  , 'indent
          =on'
                  , 'hl
          =true'
                  , 'hl.fl
          ='
                  , 'fl
          =*,score'
                  , 'start
          =0'
                  , 'rows
          =10'
                  ];

              
          return params;
          }
          function getquerystring() {
            
          var form = document.forms['f1'];
            
          var query = form.q.value;
            qstr 
          = 'q=+ encodeURI(query);    //escape
            return qstr;
          }

          // this function does all the work of parsing the solr response and updating the page.
          function updatepage(str){
            
          //document.getElementById("response").innerHTML = str;
            var rsp = eval("("+str+")"); // use eval to parse Solr's JSON response
            parse(rsp);
          }

          function parse(j) {
              
          var header = document.getElementById("header");
              
          var rh = j.responseHeader;
              
          var header_str = " 搜索: \""+rh.params.q+"\", 花了: "+rh.QTime+"ms, 共顯示: "+j.response.numFound+"條記錄, 總共有: "+rh.params.rows;
              header.innerHTML 
          = header_str;
              
          var docs = j.response.docs;
              
          var tab = document.getElementById("docs");
              
          for(; tab.rows.length >1; ) {
                  tab.deleteRow(
          -1);
              }
              
          var tr;
              
          var td;
              
          for(var i=0; i<docs.length; i++) {
                  tr 
          = tab.insertRow(-1);
                  td 
          = tr.insertCell(-1);
                  td.innerHTML 
          = docs[i].author;
                  
                  td 
          = tr.insertCell(-1);
                  td.innerHTML 
          = docs[i].introduce;
                  
                  td 
          = tr.insertCell(-1);
                  td.innerHTML 
          = docs[i].title;
                  
                  td 
          = tr.insertCell(-1);
                  td.innerHTML 
          = docs[i].score;
              }
             }

          3.現(xiàn)在可以搜索了。
          http://localhost:8080/solr/json.jsp

          solr怎么部署到Tomcat里請看:http://www.aygfsteel.com/chenlb/archive/2008/03/25/188459.html

          posted @ 2008-03-28 17:33 流浪汗 閱讀(2092) | 評論 (0)編輯 收藏
              在Tomcat下部署solr自帶的例子

          下載:
          apache-solr-1.2.0.zip http://apache.mirror.phpchina.com/lucene/solr/1.2/apache-solr-1.2.0.zip
          apache-tomcat-5.5.26.zip  http://apache.mirror.phpchina.com/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip

          1.solr解壓到E:\solr。tomcat解壓到e:\tomcat。

          2.把E:\solr\dist\apache-solr-1.2.0.war放到E:\tomcat\webapps目錄下改名為solr.war。

          3.把E:\solr\example目錄中的solr文件夾復(fù)制到E:\tomcat\目錄下。

          4.在E:\tomcat\conf\Catalina\localhost目錄下創(chuàng)建一個solr.xml文件,內(nèi)容如下:
          <?xml version="1.0" encoding="UTF-8"?>

          <Context docBase="" debug="0" crossContext="true" >
             
          <Environment name="solr/home" type="java.lang.String" value="e:/tomcat/solr" override="true" />
          </Context>

          5.啟動Tomcat。可以打開http://localhost:8080/solr/admin

          也可以不用JNDI方式。第3步把它復(fù)制到E:\tomcat\bin目錄下,就不用第4步了。

          我部署時困了很久,啟動Tomcat后
          org.apache.catalina.core.StandardContext start
          嚴(yán)重: Error filterStart
          org.apache.catalina.core.StandardContext start
          嚴(yán)重: Context 
          [/solr] startup failed due to previous errors

          老是懷疑solr/home配置錯了。但啟動日志又有Loaded SolrConfig: solrconfig.xml。又換了solr版本,又換tomcat版本。還是出現(xiàn)上面的錯誤。只是郁悶。后來懷疑jdk了。JAVA_HOME改前幾天我安裝的,然后一片驚喜,可以啟動了。那JDK是機(jī)子本來就有的,懷疑就沒有安裝好,或版本太低了是:(build 1.5.0-b64),我安裝的是 (build 1.5.0_15-b04)。

          終于解決,就寫下來。高興ing... 吃飯。
          posted @ 2008-03-25 12:40 流浪汗 閱讀(4144) | 評論 (0)編輯 收藏
              cygwin 使用心得 轉(zhuǎn)載 魚漂 (一直漂)  http://www.eit.name/blog/read.php?171

          1.在cygwin里訪問Windows盤
          cd /cygdrive/c
          cd c:

          2.整合cygwin命令到Windows中
          假設(shè)cygwin安裝在d:/develop/cygwin,則將d:/develop/cygwin/bin添加到系統(tǒng)變量PATH中(最好加在windows前面,這樣的話,有些相同的命令的話,是先執(zhí)行cygwin的命令,而不是windows命令,比如find)

          就可以直接在cmd.exe下面執(zhí)行tar czvf xxx.tgz ./
          基本上所有的命令都可以用了,包括ls,more,less,find,grep等。

          3.使用TGZ備份
          將cygwin的BIN加入到PATH
          建一個BAT文件:
          @echo off
          d:
          cd d:\website\8thmanage
          tar czvf 8thmanage.tgz 8thmanage

          4.Windows使用SHELL腳本
          將cygwin的BIN加入到PATH
          在$CYGWIN的目錄/var/下面建一腳本t.sh,注意,t.sh里面的路徑,都是相對于$CYGWIN的,里面需要訪問C盤的,請用/cygdrive/c/
          在Windows下執(zhí)行:
          d:\cygwin\bin\bash d:\cygwin\var\t.sh
          (可以定期執(zhí)行)

          5.同步Windows系統(tǒng)用戶
          mkpasswd -l > /etc/passwd
          mkgroup -l > /etc/group
          如果有Domain的話,需要加上-d domainname

          6.安裝系統(tǒng)服務(wù)
          cygrunsrv

          7.cygwing下使用rsync
          a.安裝rsync組件
          b.進(jìn)入cygwin,配置服務(wù)器
          vi /etc/rsyncd.conf

          ...screts file=/etc/tom.ipaddr.pas

          配置文件,參考我寫的另外一篇rsync的文章,注意:密碼文件權(quán)限必須是0400
          chmod 0400 /etc/tom.ipaddr.pas
          c.啟動服務(wù)端
          rsync --daemon

          d.客戶端同步
          在客戶端的cygwin下面,運(yùn)行rsync同步,具體命令,請參考另外一篇rsync的文章。

          8.cygwin下使用SSHD
          a.需要安裝了cygrunsrc,openssh
          b.運(yùn)行ssh-host-config -y
          一路回車,直到出現(xiàn)CYGWIN=時,輸入tty ntsec,再回車,
          (或者,增加一系統(tǒng)環(huán)境變量CUGWIN=nesec tty)
          c.已經(jīng)安裝好SSHD服務(wù)到你的Windows服務(wù)中,可以直接在服務(wù)中啟動,關(guān)閉。
          (cygrunsrc -S sshd或者net start sshd)

          9.中文顯示
          vi ~/.bashrc
          # 讓ls和dir命令顯示中文和顏色
          alias ls='ls --show-control-chars --color'
          alias dir='dir -N --color'
          # 設(shè)置為中文環(huán)境,使提示成為中文
          export LANG="zh_CN.GBK"
          # 輸出為中文編碼
          export OUTPUT_CHARSET="GBK"

          ~/.inputrc為
          set completion-ignore-case on
          set meta-flag on
          set output-meta on
          set convert-meta off

          cygwin.bat腳本為:
          @echo off
          set MAKE_MODE=UNIX
          posted @ 2008-03-19 09:12 流浪汗 閱讀(3037) | 評論 (0)編輯 收藏
              用URLEncoder轉(zhuǎn)換。

          String filename = URLEncoder.encode("中文.zip""UTF-8");      
          response.addHeader(
          "Content-Disposition","attachment;filename="+filename); 
          posted @ 2008-03-16 14:29 流浪汗 閱讀(388) | 評論 (0)編輯 收藏
          僅列出標(biāo)題
          共16頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
          主站蜘蛛池模板: 昭苏县| 襄城县| 富平县| 宜都市| 英山县| 周宁县| 辉县市| 疏勒县| 阳谷县| 南木林县| 英山县| 庄河市| 合江县| 鹿泉市| 新晃| 安国市| 泰州市| 民县| 洪湖市| 商丘市| 岳阳县| 封丘县| 鞍山市| 游戏| 同江市| 房山区| 富顺县| 故城县| 汉寿县| 临洮县| 宁乡县| 克什克腾旗| 察雅县| 洪洞县| 平果县| 凌海市| 沾化县| 蒙山县| 西峡县| 鄂州市| 罗平县|