想搭個服務器,但外面訪問不到,是防火墻的原因,把端口設置一下就行。
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:非常詳細的跟蹤信息。
Log4j在org.apache.log4j.Level
類中定義了下列日志級別常數
Ø FATAL:表示一個嚴重失敗。導致application的中斷。
Ø ERROR:表示一個錯誤事件。可以允許Application可以繼續運行。
Ø WARN:表示一個有潛在的危險。
Ø INFO:表示一個構件正在做重要運行情況,信息比較粗糙。
Ø DEBUG:表示一個構件詳細的運行情況,用于調試Application。
Ø ALL:表示紀錄所有級別的日志信息。
Common-logging的日志級別分為6種,從低到高分別為trace,debug,info,warn,error,fatal。
Ø 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) |
編輯 收藏