想搭个服务器,但外面访问不到,是防火墙的原因,把端口设置一下就行。
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 流浪汗 阅读(4399) |
评论 (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 流浪汗 阅读(12537) |
评论 (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 流浪汗 阅读(1327) |
评论 (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 流浪汗 阅读(1378) |
评论 (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 流浪汗 阅读(557) |
评论 (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 流浪汗 阅读(1065) |
评论 (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.blogjava.net/chenlb/archive/2008/03/25/188459.html
posted @
2008-03-28 17:33 流浪汗 阅读(2072) |
评论 (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 流浪汗 阅读(4121) |
评论 (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 流浪汗 阅读(3023) |
评论 (0) |
编辑 收藏
用URLEncoder转换。
String filename = URLEncoder.encode("中文.zip", "UTF-8");
response.addHeader("Content-Disposition","attachment;filename="+filename);
posted @
2008-03-16 14:29 流浪汗 阅读(375) |
评论 (0) |
编辑 收藏