<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    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.看下狀態
    [root@localhost ~]# /etc/init.d/iptables status
    posted @ 2008-05-01 14:14 流浪汗 閱讀(4414) | 評論 (0)編輯 收藏
            在VMware安裝一個CentOS的Sever版,終端里的內容不可滾動,不方便。在win下遠程登錄不錯(win下有個Xshell)。默認安裝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的主機,內網。
    [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增強配置
    [root@localhost ~]# vi /etc/ssh/sshd_config  ← 用vi打開SSH的配置文件

    #Protocol 2,1 ← 找到此行將行頭“#”刪除,再將行末的“,1”刪除,只允許SSH2方式的連接
     
    Protocol 
    2 ← 修改后變為此狀態,僅使用SSH2

    #ServerKeyBits 768 ← 找到這一行,將行首的“#”去掉,并將768改為1024
     
    ServerKeyBits 
    1024 ← 修改后變為此狀態,將ServerKey強度改為1024比特

    #PermitRootLogin yes  ← 找到這一行,將行首的“#”去掉,并將yes改為no
     
    PermitRootLogin no  ← 修改后變為此狀態,不允許用root進行登錄

    #PasswordAuthentication yes ← 找到這一行,將yes改為no
     
    PasswordAuthentication no ← 修改后變為此狀態,不允許密碼方式的登錄

    #PermitEmptyPasswords no  ← 找到此行將行頭的“#”刪除,不允許空密碼登錄
     
    PermitEmptyPasswords no  ← 修改后變為此狀態,禁止空密碼進行登錄

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

    想學習在linux下建一個服務平臺。
    安裝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是服務目錄、server.errorlog是錯誤日志目錄,自己更改。

    4.運行

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


    呵呵,現在可以運行了。

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

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

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

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

    劉孫康張李王趙錢齊

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

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

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

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

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

    CJK擴展A [3400-4DBF] 6592碼位 實際6582字

    CJK擴展B [20000-2A6DF] 42720碼位 實際42711字

    CJK擴展C [2A700-2BA7F] 4224碼位 實際4219字

    CJK兼容擴展 [2F800-2FA1F] 544碼位 實際542字

    CJK部首擴展 [2E80-2EFF] 128碼位 實際116字

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

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

    CJK兼容 [F900-FAFF] 512個碼位 實際474字
    posted @ 2008-04-21 17:23 流浪汗 閱讀(1389) | 評論 (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 開始到日志的毫秒數
    d 日志的時間
    p 日志級別
    l 包括類全名.方法還有在第幾行,這樣在eclipse的Console里點可以直接轉到源碼
    m 日志的內容
    n 換行
    c 類全名
    M 日志所在的方法名
    L 日志所在的行號
    t 可能是線程啟動的方法名
    F 文件名,包括后綴
    posted @ 2008-04-11 12:01 流浪汗 閱讀(563) | 評論 (0)編輯 收藏
    jdk14的logging還有點麻煩,要覆蓋jre/lib/logging.properties的配置,還要在啟動時加-Djava.util.logging.config.file=mylogging.properties





    java 1.4
    日志紀錄在java.util.logging.Level類中定義了下列日志級別常數
    Ø          SERVER表示一個嚴重失敗。常常將有一個伴隨的Throwable
    Ø          CONFIG為應用配置期間所生成的消息而設計的。
    Ø          INFO中等優先級。表示一個構件正在做什么(例如,監視一項任務的  運行進度),但不是用來幫助調試該構件。
    Ø          FINE跟蹤信息。該級別和較低優先級的級別應該用來幫助調試某些類,但不應該用來總體的說明該應用的工作方式。
    Ø          FINER詳細的跟蹤信息。
    Ø          FINEST非常詳細的跟蹤信息。
    Log4jorg.apache.log4j.Level類中定義了下列日志級別常數
    Ø          FATAL表示一個嚴重失敗。導致application的中斷。
    Ø          ERROR表示一個錯誤事件。可以允許Application可以繼續運行。
    Ø          WARN表示一個有潛在的危險。
    Ø          INFO表示一個構件正在做重要運行情況,信息比較粗糙。
    Ø          DEBUG表示一個構件詳細的運行情況,用于調試Application
    Ø          ALL表示紀錄所有級別的日志信息。
    Common-logging的日志級別分為6種,從低到高分別為tracedebuginfowarnerrorfatal
    Ø          FATAL表示一個嚴重失敗。導致application的中斷。
    Ø          ERROR表示一個錯誤事件。可以允許Application可以繼續運行。
    Ø          WARN表示一個有潛在的危險。
    Ø          INFO表示一個構件正在做重要運行情況,信息比較粗糙。
    Ø          DEBUG表示一個構件詳細的運行情況,用于調試Application
    Ø          TRACE非常詳細的跟蹤信息,僅僅用于紀錄該日志而已。






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

    1.json.jsp關鍵的html內容
      <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>標題</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.現在可以搜索了。
    http://localhost:8080/solr/json.jsp

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

    posted @ 2008-03-28 17:33 流浪汗 閱讀(2087) | 評論 (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文件夾復制到E:\tomcat\目錄下。

    4.在E:\tomcat\conf\Catalina\localhost目錄下創建一個solr.xml文件,內容如下:
    <?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步把它復制到E:\tomcat\bin目錄下,就不用第4步了。

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

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

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

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

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

    就可以直接在cmd.exe下面執行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下執行:
    d:\cygwin\bin\bash d:\cygwin\var\t.sh
    (可以定期執行)

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

    6.安裝系統服務
    cygrunsrv

    7.cygwing下使用rsync
    a.安裝rsync組件
    b.進入cygwin,配置服務器
    vi /etc/rsyncd.conf

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

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

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

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

    9.中文顯示
    vi ~/.bashrc
    # 讓ls和dir命令顯示中文和顏色
    alias ls='ls --show-control-chars --color'
    alias dir='dir -N --color'
    # 設置為中文環境,使提示成為中文
    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 流浪汗 閱讀(3032) | 評論 (0)編輯 收藏
        用URLEncoder轉換。

    String filename = URLEncoder.encode("中文.zip""UTF-8");      
    response.addHeader(
    "Content-Disposition","attachment;filename="+filename); 
    posted @ 2008-03-16 14:29 流浪汗 閱讀(384) | 評論 (0)編輯 收藏
    僅列出標題
    共16頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 女人裸身j部免费视频无遮挡| 99久久免费国产精品特黄| 国产v精品成人免费视频400条| 中文字幕在线观看亚洲日韩| 亚洲成av人片不卡无码久久| 午夜网站在线观看免费完整高清观看| va亚洲va日韩不卡在线观看| 日韩视频在线观看免费| 亚洲视频在线观看免费| 久久中文字幕免费视频| 在线综合亚洲欧洲综合网站| 国产成人A亚洲精V品无码| 亚洲天堂免费在线| 国产精品一区二区三区免费| 亚洲国产午夜精品理论片| 午夜性色一区二区三区免费不卡视频| 日韩色日韩视频亚洲网站| 九月婷婷亚洲综合在线| h视频在线免费看| 亚洲免费在线观看| 亚洲AV无码一区二区三区电影 | 免费视频成人片在线观看| 亚洲日韩区在线电影| 免费v片视频在线观看视频| 91短视频免费在线观看| 中文字幕免费在线看线人动作大片| 日本亚洲免费无线码 | 亚洲AV无码乱码在线观看代蜜桃| 野花高清在线观看免费3中文| 中文在线观看免费网站| 亚洲熟女精品中文字幕| 亚洲视屏在线观看| 成人永久福利免费观看| 成在线人视频免费视频| 欧美激情综合亚洲一二区| 亚洲乱码无限2021芒果| 亚洲Av永久无码精品三区在线| 亚洲精品黄色视频在线观看免费资源| 日韩免费视频一区二区| 国产无遮挡色视频免费观看性色| 亚洲成年人免费网站|