Recent Posts

 
11Feb

UBUNTU用ADSL拨号有问题啦!

在UBUNTU上用ADSL拨号,发现只能连上两分钟断了一分钟,如此循环.我能确认我配置没问题,但是我不能保证我人品或者长相没问题,还是电信公司他妈的有问题!,我很不情愿的骂了一句:”电信,我草你NN”.
垄断,都他妈的垄断吧!狗日的电信,狗日的腾讯,连LINUX平台的QQ 都不开发,协议也舍不得公布,你他妈的留着当古董啊?你当国人是傻X 啊,你以为我们国人都是只会在WIN下玩QQ都地主的白痴啊!
草你妈的腾讯!LUMAQQ又出问题了,据说EVA不错,有时间更换下试试!!
——————————————————————————————————-

在UBUNTU.ORG.CN上看到了一位仁兄的帖子,借此粘贴在这里!

腾讯太把自己当个东西了!做IT的,你不把用户当人,还想让用户把你当人吗?

虽然我不用windows操作系统了,虽然MS公司在某些方面的做法让人不爽,但我不得不说,在IM领域,MS的做法还是很大气的。简单分析一下:

windows操作系统虽然占据了很大的空间,但盖茨同学始终不敢对Linux为代表的开源OS掉以轻心,甚至有时候会放出一些让Linux fans们不爽的话来。MSN(就算叫Live messenger了也一样吧)在Gaim里为什么不出问题?为什么一个把Linux视为眼中钟、肉中刺的垄断公司都可以很大气地放开其IM的协议?而你腾讯个小混混公司就没这个度量?就因为你一直在扮演流氓公司的角色?所以你不怕?

在中国的IM领域,腾讯最大的竞争者当然是MSN了,而MSN的东家就是MS公司,MS公司的桌面就是windows。腾讯为什么一直选择支持windows的用户呢?我觉得这和MS公司的那种大气是不一样的!它是在故意忽视Linux user们!它偏执地认为中国大部分网民都是电脑或者网络白痴,都不会去用“只有黑客才用的Linux”,只会用“简单易用的windows”。不是Linux user搞不出来IM,也不是搞不出来比它QQ出色的IM,而是在中国有太多的人被LJ 腾讯的东西给毒害了。大家可以回想一下腾讯偷偷地对Linus User们下的黑手(当然,其实windows的用户们也在遭受它的苦,不是吗?)一个优秀的公司、一种优秀的文化、一款优秀的软件,是可以供不同平台运行的,比如Gaim、比如Firefox、比如Apache、比如php、比如好多好多……我很赞赏MSN in Gaim可以传文件,虽然速度慢了点。

腾讯的做法,如果我们继续这样容忍和迁就下去,大家可以想想后果了!!早上我也遇到了qq in Gaim被提醒密码错误,我当时根本就已经懒得去申诉之类的东西也,也没有去windows下试着登陆(我电脑上已经没有win了)。下午同学打开电脑时我才发现原来密码什么的都好好的,这才感觉是腾讯这LJ在搞鬼!!早就想弃掉QQ了,所以在blog里贴出了QQ丢失的公告。我想,以后我登陆QQ的次数将可以用手指头数得清了,甚至我干脆就不用它了!!

从今天起,从发出此帖时起,开始抵制腾讯QQ,抵制这个流氓公司,抵制这个眼中只有钱、没有一点点用户概念的东西!说得太多了,去吃晚饭,陪女朋友。这才是Linux User想要的生活:用Linux做完该做的事,就去享受生活!才懒得和这些LJ东西折腾,就像懒得再和windows下的病毒、木马、LM软件折腾一样!

但是为了和朋友联系,我不得不继续使用QQ!为了我能上网,我不得不使用电信(网通也一样)的服务!

对不起,孔夫子,我说脏话了,我错了,请您老原谅!我去面壁思过了!

10Feb

LINUX运行ASP

自从Micorsoft推出ASP技术后,由于ASP在创建动态交互式站点上的强大功能及其代码编写的简便性,使ASP在越来越多的 Internet/Intranet/Extranet网站上得到了极其广泛的应用,尤其是 涉及到数据库操作的网站应用系统更是倾向于采用ASP技术。但由于众所周知的原因,ASP只能工作于Microsoft的Windows NT平台+IIS Web Server服务器软件,在Windows9X +PWS也能使用,但那只能是调试或者学习用的,因而就决定了ASP应用的局限性。据有关资料显示,采用Windows操作 系统平台和服务器软件的网站在15%左右,也就是说有将近85%的网站将不能采用ASP技术。大多数商用的网站采用的是Unix、Linux、Soris和Netware等操作系统及相应的服务器,这说明ASP技术在应用上确实有很大的限制。

  难道ASP就不能运用于非Windows 平台吗?当然不是.目前为止我们至少有两种选择,Chilisoft4公司的chili ASP和 Halcycon公司的iASP(Instant ASP).Halcyonsoft公司提出“ASP Anytime,Anywhere”的口号,开发出iASP,使ASP不仅可以在采用Windows操作系统平台和服务器软件的网站上使用,还可以在采用其它操作系统如Unix、Linux、 Soris、Netware操作系统及相应服务器的网站上使用。iASP全面继承了ASP的优势,并与ASP完全兼容,因而ASP应用系统几乎可以直接移植到非Windows操作系统平台下的iASP环境中运行,使得ASP应用系统真正成为了一种跨平台的Internet、Intranet或 Extranet应用系统。

  iASP与ASP相比,不仅在支持操作系统平台上具有优势,在使用第三方组件构建ASP应用系统上同样具有明显的优势。iASP不仅支持流行的ActiveX组件,同样支持流行的Enterprise JavaBeans组件和CORBA兼容组件,从而使用ASP应用系统功能更为强大,应用更为广泛。除了MS Visual系列开发工具和Borland系列开发工具外,还可以用Java系列开发工具,让组件开发人员有更多的选择从而可以更为得心应手地开发有关组件。

  iASP有两种版本,一种适用于Windows操作系统平台和服务器软件,另一种适用于Unix、Linux、Soris、Netware操作系统及相应服务器软件。目前最新的版本为1.0.9,最近刚推出一个Linux上的FREE版,可以在 http: //www.halcycon.com 站点上免费下载,其功能与正式版本相比基本相同,想在网络特别Unix、Linux局域网络中使用ASP的网络开发人员不妨去下载一个试用一下,文件大小有9M多。
一、iASP软件环境要求

  iASP软件完全是用Java程序语言编制而成的,需要JDK1.1.X或以上版本的支持,因而需要系统上预先安装JDK1.1.X或以上版本。Linux平台下的JDK11.X可以在 http://xfer.nitric.com/pub/java-linux/ 下载,基于 Windows9X/NT平台的JDK1.1.X的下载地址为 ftp: //202.103.111.173/Download/DEVELOP/JAVA/jdk1_1_1-win32-x86.exe 。

  同时需要相应的Web Server软件,如IIS、Apache、Netscape、Xitami、Sambar等。

二、iASP安装程序支持的系统平台和服务器软件

  iASP软件是用JAVA程序语言编制而成的,原则上可运行在所有JAVA平台上。iASP可自动配置服务器软件,使之能使用iASP解释和转换ASP页面;iASP可以使用Halcycon软件公司开发的iASP Servlet接口与服务器进行连接和通信,也可以使用其它Servlet接口与服务器进行连接和通信。iASP支持以下平台及Web Server:

(一) Sun Solaris Sparc系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.9、1.3.11、1.3.12等九个常用版本进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件

  iASP可对FT3.0.X、EP3.5.X、EP3.6.X进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

3、Sun Web Server2.1服务器软件

  iASP可对Sun Web Server2.1服务器软件进行自动配置使之使用iASP解释ASP页面;并通过服务器软件的Servlet接口与之连接和通信。

4、Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和Apache JServ Servlet接口与之连接和通信。
(二)Sun Solaris Intel系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.9、1.3.11、1.3.12等九个版本进行自动配置使之
使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Sun Web Server2.1服务器软件

  iASP可对Sun Web Server2.1服务器软件进行自动配置使之使用iASP解释ASP页面;并通过服务器软件的Servlet接口与之连接和通信。

3、Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释ASP页面;并通过Zeus和Apache JServ Servlet接口与之连接和通信。

(三)Novell Netware系统平台

  Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件iASP可对FT3.0.X、 EP3.5.X进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Novell Servlet Gateway接口与之连接和通信。

(四)SCO Unixware系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.9、1.3.11、1.3.12等九个版本进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件

  iASP可对FT2.0.X进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。
(五)Linux Intel系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.9、1.3.11、1.3.12等九个版本进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释ASP页面;并通过Zeus和ApacheJServ Servlet接口与之连接和通信。

(六)Windows9X/NT系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.9、1.3.11、1.3.12等九个版本进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件

  iASP可对FT3.0.X、EP3.0.X、EP3.6.X进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

3、Internet Information Server服务器软件

  iASP可对Internet Information Server服务器软件进行自动配置使之使用iASP解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

4、Lotus Domino服务器软件

  iASP可对Lotus Domino服务器软件进行自动配置使之使用iASP解释ASP页面;并通过Lotus Domino服务器软件自有的Servlet接口与之连接和通信。

5、Java Web Server服务器软件

  iASP可对Java Web Server服务器软件进行自动配置使之使用iASP解释ASP页面;并通过Java Web Server服务器软件自有的Servlet接口与之连接和通信。
(七)HPUX系统平台

Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释ASP页面;并通过Zeus和Apache JServ Servlet接口与之连接和通信。

(八)SGI系统平台

Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释ASP页面;并通过Zeus和ApacheJServ Servlet接口与之连接和通信。

三、用iASP构建ASP应用系统环境

  假设系统中已经正常安装和配置了TCP/IP等网络协议。

  下面以RedHat Linux 6.0和Apache 1.3.9服务器软件为例,讨论如何安装和配置iASP,以建立一个ASP开发和应用环境。

(一)、安装Apache 1.3.3服务器软件

1、安装Apache 1.3.3服务器软件

  如果手头没有Apache 1.3.X服务器软件,可以到 http://apache.nextpath.com/dist/apache_1.3.9.tar.gz 下载一个。

2、启动Apache 1.3.9服务器软件

  可以用命令httpd来启动Apache 1.3.9服务器软件。启动Apache 1.3.9服务器软件后可以用 Netscape Communicator浏览器以 http://127.0.0.1 的方式或者 http://localhost 来访问 Apache 1.3.9服务器软件提供的WWW服务。默认的页面为index.html,通常位于“/home/httpd/html”目录中(该目录是Apache的WEB发布目录,相当于IIS或PWS系统中的c:inetpubwwwroot),页面的主题为“It Worked”,表明 Apache已能正常工作,可以进行iASP的配置工作了。
(二)、安装JDK1.1.12

  iASP的运行要依赖JDK1.1.X或以上版本,要求系统中必须安装JDK。

1、确定C运行库的类型

  Liunx/Unix版本的JDK一般有libc5和glibc两个版本,以适应不同Liunx/Unix系统中的C运行库版本。用命令 “ls -l /lib/libc.so.*”可以列出C运行库文件,若“*”处的字符为“5”则表示C运行库类型为libc5,为“6”则表示C运行库类型为glibc。 笔者所用的RedHat Linux 5.1的C运行库类型为glibc。

2、安装JDK1.1.12

  在 http://xfer.nitric.com/pub/java-linux/ 处下载JDK1.1.12的glibc版本,并将其改名jdk112.gz。将jdk117.gz复制到/usr/local目录下,进入/usr/local目录,用“tar - xvzf jdk112.gz”命令将文件解压即完成JDK1.1.12的安装,安装目录为/usr/local/jdk112。

(三)、安装iASP
  在 http://www.halcyonsoft.com/asp/iasp_108_linux.tar 处下载了Linux版本的iASP,并复制到/usr/local。

  用命令“tar -xvzf iasp_lnx.gz”将文件解压,可产生install.sh和iasp.tar两个文件。进入/usr/local目录,运行./install.sh,按照安装程序提示完成iASP的安装。

  在安装过程中,需要指定JDK的BIN目录(/usr/local/jdk117_v1a/bin)和iASP安装目录 (/usr/local)。在安装过程完成后,会选择是否开始对Web服务器进行配置,配置过程在下面讨论,选择“N”结束安装。此时iASP被安装在目录/usr/local/iasp下,有五个文件的作用值得注意。

connector.sh:启动iASP自动配置向导
start-server.sh:启动iASP代理服务器
stop-server.sh:关闭iASP代理服务器
start-admin.sh :启动iASP远程管理服务器
stop-admin.sh :关闭iASP远程管理服务器

(四)、配置iASP

1、关闭Web服务器
  在进行iASP配置前,应首先关闭Web服务器软件。

2、配置iASP
  iASP配置向导程序可为Apache服务器软件、Netscape Enterprise服务器软件、Internet Information Service服务器软件进行自动配置,而Zeus、Sun Web Server服务器软件则不需要配置。

  在/usr/local/iasp下,运行./connector.sh启动iASP配置向导程序。选择“Y”开始配置;选择服务器软件及版本号(Apache 1.3.9)、Apache配置文件httpd.conf所在目录(/etc/httpd/conf),其它可保持不变(按回车键采用默认设置)。在提示是否进行另一个服务器的配置时,选择“N”,完成配置。

(五)、测试iASP

1、启动iASP服务器

  iASP服务器是一个Connector Proxy代理服务器软件,用于与服务器软件进行通信。进入XWindows,打开一个 nxterm窗口,在目录/usr/local/iasp下运行./start-server.sh,启动iASP Connector Proxy代理服务器程序。

2、测试iASP

 启动Apache 1.3.9服务器软件。在浏览器栏内输入: http://localhost/iasp 或者 http: //127.0.0.1/iasp 即可以看到iASP附带的例子以及iAS的一些文档,还是比较详细的。例子比较全面,有General,Form, File,Server,ADO,Email等,你可以点击看一下实际的效果。对于外界来说你是感觉不到它和在IIS是有什么区别的。
  至此Linux平台下的iASP开发和应用环境都建立起来了,你可以尽情地发挥你的聪明才智去了。

让ASP应用系统成为跨平台的应用系统

  自从Microsoft推出ASP技术后,由于ASP在创建动态交互式站点上的强大功能及其代码编写的简便性,使ASP在很多 Internet/Intranet/Extranet网站上得到了极其广泛的应用,尤其是涉及到数据库操作的网站应用系统更是倾向于采用ASP技术。但由于众所周知的原因,ASP只能工作于MS自己的操作系统平台和服务器软件之下,即只能在WindowsNT+IIS系列或Windows9X+PWS系列中使用,因而就决定了ASP应用的局限性。据有关资料显示,采用Windows操作系统平台和服务器软件的网站在15%左右,也就是说有将近85%的网站将不能采用ASP技术。实际上,很多网站采用的是Unix、Linux、Soris和Netware等操作系统及相应的服务器,这说明ASP技术在应用上确实有很大的限制。

  最近,一家名为“Halcycon”的软件公司,不仅看到了ASP应用系统的优势和局限性,而且提出了“ASP Anytime, Anywhere”的口号,并开发了一个称为iASP(Instant ASP)的ASP脚本解释引擎软件,使ASP不仅可以在采用Windows操作系统平台和服务器软件的网站上使用,还可以在采用其它操作系统如Unix、Linux、Soris、Netware操作系统及相应服务器的网站上使用。 iASP全面继承了ASP的优势,并与ASP完全兼容,因而ASP应用系统几乎可以直接移植到非Windows操作系统平台下的iASP环境中运行,使得 ASP应用系统真正成为了一种跨平台的Internet、Intranet或Extranet应用系统。

  iASP与ASP相比,不仅在支持操作系统平台上具有优势,在使用第三方组件构建ASP应用系统上同样具有明显的优势。iASP不仅支持流行的ActiveX组件,同样支持流行的Enterprise Java Beans组件和CORBA兼容组件,从而使用ASP应用系统功能更为强大,应用更为广泛。除了MS Visual系列开发工具和Borland系列开发工具外,还可以用Java系列开发工具,让组件开发人员有更多的选择从而可以更为得心应手地开发有关组件。

  iASP有两种版本,一种适用于Windows操作系统平台和服务器软件,另一种适用于Unix、Linux、Soris、Netware操作系统及相应服务器软件。iASP目前的版本为1.0,其开发版本可以在“Halcycon”的软件公司网站上免费下载,其功能与正式版本相比基本相同,区别在于开发版本只支持两个并发连接,因而只能用于ASP学习和开发或用在比较小的Intranet局域网系统中,想在网络特别Unix、Linux局域网络中使用ASP的网络开发人员不妨去下载一个试用一下,文件大小有6M多。

让ASP应用系统成为跨平台的应用系统

(五)Linux Intel系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和 Apache JServ Servlet接口与之连接和通信。

(六)Windows9X/NT系统平台

1、Apache服务器软件

  iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件

  iASP可对FT3.0.X、EP3.0.X、EP3.6.X进行自动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

3、Internet Information Server服务器软件

  iASP可对Internet Information Server服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。

4、Lotus Domino服务器软件

  iASP可对Lotus Domino服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Lotus Domino服务器软件自有的Servlet接口与之连接和通信。

5、Java Web Server服务器软件

  iASP可对Java Web Server服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Java Web Server服务器软件自有的Servlet接口与之连接和通信。

(七)HPUX系统平台

Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和 Apache JServ Servlet接口与之连接和通信。

(八)SGI系统平台

Zeus服务器软件

  iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和Apache JServ Servlet接口与之连接和通信。

让ASP应用系统成为跨平台的应用系统 

三、用iASP构建ASP应用系统环境

  假设系统中已经正常安装和配置了TCP/IP等网络协议。

  下面以RedHat Linux 5.1和Apache 1.3.3服务器软件为例,讨论如何安装和配置iASP,以建立一个ASP开发和应用环境。

(一)、安装Apache 1.3.3服务器软件

1、卸载Apache 1.2.6服务器软件

  如果当前使用的是RedHat Linux 5.1自带的Apache服务器软件,则其版本号为1.2.6-4(用命令httpd -v可以查看Apache服务器软件的版本号),不在iASP自动配置程序支持的服务器范
围之内,因而需要将其卸载,以便重新安装Apache 1.3.X服务器软件。

  在“控制面板”的Package Management(包管理)中打开Network(网络)中的Daemons(服务程序),选择“apache1.2.6-4”,单击Uninstall(卸载)可将其卸载。

2、安装Apache 1.3.3服务器软件

  如果手头没有Apache 1.3.X服务器软件,可以到http://apache.nextpath.com/dist/apache_1.3.6.tar.gz下载一个。

  笔者手头有一个Xteam Linux 1.0的光盘,其中有Apache 1.3.3服务器软件的发行版本,位于光盘的\xteam\ pack目录下,文件名称为apache-1.3.3-1.i386.rpm。用命令 rpm - i /mnt/cdrom/xteam/pack/apache-1.3.3-1.i386.rpm可完成安装。

3、启动Apache 1.3.3服务器软件

  可以用命令httpd来启动Apache 1.3.3服务器软件。启动Apache 1.3.3服务器软件后可以用 Netscape Communicator浏览器以http://YourComputerName的方式如http://localhost来访问 Apache 1.3.3服务器软件提供的WWW服务。默认的页面为index.html,通常位于“/home/httpd/html”目录中(该目录是Apache的WEB发布目录,相当于IIS或PWS系统中的c:\inetpub\wwwroot),页面的主题为“It Worked”,表明 Apache已能正常工作,可以进行iASP的配置工作了。

(二)、安装JDK1.1.X

  iASP的运行要依赖JDK1.1.X或以上版本,要求系统中必须安装JDK。

1、确定C运行库的类型

  Liunx/Unix版本的JDK一般有libc5和glibc两个版本,以适应不同Liunx/Unix系统中的C运行库版本。用命令 “ls -l /lib/libc.so.*”可以列出C运行库文件,若“*”处的字符为“5”则表示C运行库类型为libc5,为“6”则表示C运行库类型为glibc。笔者所用的RedHat Linux 5.1的C运行库类型为glibc。

2、安装JDK1.1.X

  笔者在http://xfer.nitric.com/pub/java-linux/处下载JDK1.1.7的glibc版本,并将其改名 jdk117.gz。将jdk117.gz复制到/usr/local目录下,进入/usr/local目录,用“tar - xvzf jdk117.gz”命令将文件解压即完成JDK1.1.7的安装,安装目录为/usr/local/jdk117_v1a。

(三)、安装iASP

  笔者在http://www.halcyonsoft.com/asp/iasp_fcs.tar.gz处下载了Linux/Unix版本的iASP,并改名为iasp_lnx.gz,并复制到/usr/local。

  用命令“tar -xvzf iasp_lnx.gz”将文件解压,可产生install.sh和iasp.tar两个文件。进入/usr/local目录,运行./install.sh,按照安装程序提示完成iASP的安装。

  在安装过程中,需要指定JDK的BIN目录(/usr/local/jdk117_v1a/bin)和iASP安装目录(/usr/local)。在安装过程完成后,会选择是否开始对Web服务器进行配置,配置过程在下面讨论,选择“N”结束安装。此时iASP被安装在目录/usr/local/iasp下,有五个文件的作用值得注意。

  connector.sh:启动iASP自动配置向导 start-server.sh:启动iASP代理服务器stop- server.sh:关闭iASP代理服务器 start-admin.sh :启动iASP远程管理服务器stop-admin.sh :关闭iASP 远程管理服务器。

让ASP应用系统成为跨平台的应用系统

(四)、配置iASP

1、关闭Web服务器

  在进行iASP配置前,应首先关闭Web服务器软件。可以用任何方式关闭Apache 1.3.3服务器软件。

2、配置iASP

  iASP配置向导程序可为Apache服务器软件、Netscape Enterprise服务器软件、Internet Information Service服务器软件进行自动配置,而Zeus、Sun Web Server服务器软件则不需要配置。

  在/usr/local/iasp下,运行./connector.sh启动iASP配置向导程序。选择“Y”开始配置;

  选择服务器软件及版本号(8:Apache 1.3.3)、Apache配置文件httpd.conf所在目录(/etc/httpd/conf),其它可保持不变(按回车键采用默认设置)。在提示是否进行另一个服务器的配置时,选择“N”,完成配置。

(五)、测试iASP

1、启动iASP服务器

  iASP服务器是一个Connector Proxy代理服务器软件,用于与服务器软件进行通信。

  进入XWindows,打开一个nxterm窗口,在目录/usr/local/iasp下运行./start-server.sh,启动iASP Connector Proxy代理服务器程序。

2、测试iASP

  启动Apache 1.3.3服务器软件。将一个ASP页面文件拷到Apache页面发布目录“/home/httpd/html”目录中,并用Netscape Communicator浏览器进行访问,如可用“http://localhost/test.asp”访问ASP文件 test.asp,其内容如下:

< html>

< head>

< title>Test iASP< /title>< /p>

< /head>

< body>

< %

Response.Write "< BR>< h1>Congradulations!< BR>Instant ASP has worked for you!< /h1>”

% >

< /body>

< /html>

  至此,Apache 1.3.3服务器软件已经可以用iASP解释引擎解释和执行ASP页面了。现在该你来自由发挥聪明才智了。

10Feb

linux下安装apache+php

1.apache

  在如下页面下载apache的for linux 的源码包  

  http://www.apache.org/dist/httpd/;

  存至/home/xx目录,xx是自建文件夹,我建了一个wj的文件夹。

  命令列表: 

  cd /home/wj

  tar -zxvf httpd-2.0.54.tar.gz

  mv httpd-2.0.54 apache

  cd apache

  ./configure –prefix=/usr/local/apache2 –enable-module=so

  make

  make install 

  安装apache至/usr/local/apache 并配置apache支持dso方式

  2.php

  在如下页面下载php的for linux 的源码包 

  http://www.php.net/downloads.php;

  存至/home/wj目录

  命令列表:  

  cd /home/wj
  tar -zxvf php-5.0.4.tar.gz

  mv php-5.0.4 php

  cd php

  ./configure –prefix=/usr/local/php5 –with-apxs2=/usr/local/apache2/bin/apxs –with-config-file-path=/usr/local/lib –enable-track-vars –with-xml –with-MySQL

  make

  make install

  其中apache和mysql是根据你安装的目录名变,我的是 =/usr/local/apache2/bin/apxs 和MySQL

  cp php.ini-dist /usr/local/lib/php.ini  

  以dso方式安装php至/usr/local/php 设置配置文件目录为/usr/local/lib 开启mysql,xml支持

    3.配置  

  vi /usr/local/apache/conf/httpd.conf

  对apache做如下配置

  #将ServerAdmin q3boy@younet.com一行改为您的邮箱地址 

  #DocumentRoot “/home/httpd/html/” 此处为html文件主目录  

  # 同上  

  #Options FollowSymLinks MultiViews 为安全起见,去掉”Indexes”   

  #

  # DirectoryIndex default.php default.phtml default.php3 default.html default.htm

  #

  #设置apache的默认文件名次序  

  #AddType application/x-httpd-php .php .phtml .php3 .inc

  #AddType application/x-httpd-php-source .phps

  #设置php文件后缀  

  存盘退出   

  vi /usr/local/lib/php.ini

  #register-golbals = On

  存盘退出

  4.启动服务

  /usr/local/apache/bin/apachectl start  
  
  5.测试  

然后写个php测试页info.php:内容如下
〈?php
phpinfo();
?>
正常的话,应该能看到php的信息了,恭喜你的Apche+Mysql+PHP安装成功。
6、apache自动启动- -
下面用自启动apache为例;
自启动脚本:
/usr/local/apache/bin/apachectl start
文件位于/etc/rc.d/init.d下,名为apached,注意要可执行.
#chmod +x /etc/rc.d/init.d/apached //设置文件的属性为可执行
#ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache //建立软连接,快捷方式
#ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache

30Jan

Windows 文件过滤驱动经验总结

看了 ChuKuangRen 的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是
建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少?
只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。发自己心得的人无非是两种
目的,一是引发一些讨论,好纠正自己错误的认识,以便从中获取更多的知识使自己进步
的更快。二是做一份备忘,当自己遗忘的时候能够马上找到相关资料。我这里也总结了近
几年做文件过滤驱动时所积累下来的一些小小经验,这分笔记也是看了 ChuKuangRen 的
教程后,临时想到的一小部分而已,是想到哪写到哪,不是很全,如果以后再回想起什么
也会不断补充。因其工作原因,近段时间在 SOLARIS 驱动与 Linux 内核方面投入的精
力比较多,Windows 下的文件过滤驱动一直也没有怎么去碰,所以最后还是那句老话
FIXME。

1、获得文件全路径以及判断时机

除在所有 IRP_MJ_XXX 之前自己从头创建 IRP 发送到下层设备查询全路径外,
不要尝试在 IRP_MJ_create 以外的地方获得全路径,因为只有在 IRP_MJ_create
中才会使用 ObcreateObject() 来建立一个有效的 FILE_OBJECT。而在 IRP_READ
IRP_WRITE 中它们是直接操作 FCB (File Control Block)的。

2、从头建立 IRP 发送关注点

无论你建立什么样的 IRP,是 IRP_MJ_create 也好还是 IRP_MJ_DIRECTORY_CONTROL
也罢,最要提醒的就是一些标志。不同的标志会代来不同的结果,有些结果是直接
返回失败。这里指的标志不光是 IRP->Flags,还要考虑 IO_STACK_LOCATION->Flags
还有其它等等。尤其是你要达到一些特殊目的,这时候更需要注意,如 IRP_MN_QUERY_DIRECTORY,
不同的标志结果有很大的不同。

3、从头建立 IRP 获取全路径注意点

自己从头建立一个 IRP_MJ_QUERY_INFORMATION 的 IRP 获取全路径时需要注意,
不仅在 IRP_MJ_create 要做区别处理,在 IRP_MJ_CLOSE 也要做同样的处理,
否则如果目标是 NTFS 文件系统的话可能产生 deadlock。如果是 NTFS 那么在
IRP_MJ_CLEANUP 的时候也需要对 FO_STREAM_FILE 类型的文件做同样处理。

4、获得本地/远程访问用户名(域名/SID)

方法只有在 IRP_MJ_create 中才可用,那是因为 IO_SECURITY_CONTEXT 只有
在 IO_STACK_LOCATION->Parameters.create.SecurityContext 才会有效。
这样你才有可能从 IO_SECURITY_CONTEXT->SecurityContext->AccessState->
SubjectSecurityContext.XXXToken 中获得访问 TOKEN,从而进一步得到用户名
或 SID。记得 IFS 中有一个库,它的 LIB 导出一个函数可以让你在获得以上
信息后得到用户名与域名。但如果你想兼容 NT4 的话,只能自己分析来得出本
地和远程的 SID。

5、文件与目录的判断

正确的方法在楚狂人的文档里已经说过了,再补充一句。如果你的文件过滤驱动
要兼容所有文件系统,那么不要十分相信从 FileObject->FsContext 里取得的数据。
正确的方法还是在你传递下去 IRP_MJ_create 后从最下层文件系统延设备栈返回到
你这里后再获得。

6、加/解密中判断点

只判断 IRP_PAGING_IO,IRP_SYNCHRONOUS_PAGING_IO,IRP_NOCACHE 是
没错的。如果有问题,相信是自己的问题。关于有人提到在 FILE_OBJECT->Flags
中的 FO_NO_INTERMEDIATE_BUFFERING 是否需要判断,对此问题的回答是只要
你判断了 IRP_NOCACHE 就不用再判断 FILE_OBJECT 中的,因为它最终会
设置 IRP->Flags 为 IRP_NOCACHE。关于你看到的诸如 IRP_DEFER_IO_COMPLETION
等 IRP 不要去管它,因为它只是一个过程。最终读写还是如上所介绍。至于
以上这些 IRP 哪个是由 CC MGR 发送的,哪些是由 I/O MGR 发送和在什么
时候发送的,这个已经有很多讨论了,相信可以找到。

7、举例说明关于 IRP 传递与完成注意事项

只看 Walter Oney 的那本 《Programming the Microsoft Windows driver model》
里介绍的流程,自己没有实际的体会还是不够的,那里只介绍了基础概念,让自己
有了知识。知道如何用,在什么情况下用,用哪种方法,能够用的稳定这叫有了技术。
我们从另一个角度出发,把问题分为两段来看,这样利于总结。一个 IRP 在过滤驱
动中,把它分为需要安装 CompleteRoutine 的与无需安装 CompleteRoutine 的。
那么在不需要安装 CompleteRoutine 的有以下几类情况。

(1) 拿到这个 IRP 后什么都不做,直接调用 IoCompleteRequest() 来返回。
(2) 拿到这个 IRP 后什么都不做,直接传递到底层设备,使用
IoSkipCurrentIrpStackLocation() 后调用 IoCallDriver() 传递。
(3) 使用 IoBuildSynchronousFsdRequest() 或 IoBuildDeviceIoControlRequest()
来建立 IRP 的。

以上几种根据需要直接使用即可,除了一些参数与标志需要注意外,没有什么系统
机制相关的东西需要注意了。那么再来看需要安装 CompleteRoutine 的情况。我们
把这种情况再细分为两种,一是在 CompleteRoutine 中返回标志为
STATUS_MORE_PROCESSING_REQUIRED 的情况。二是返回处这个外的标志,需要使用函数
IoMarkIrpPending() 的情况。在 CompleteRoutine 中绝大多数就这么两种情况,
你需要使用其中的一种情况。那么为什么需要安装 CompleteRoutine 呢?那是因为
我们对其 IRP 从上层驱动,经过我们驱动,在经过底层设备栈返回到我们这一层驱
动时需要得到其中内容作为参考依据的,还有对其中内容需要进行修改的。再有一种
情况是没有经过上层驱动,而 IRP 的产生是在我们驱动直接下发到底层驱动,而经
过设备栈后返回到我们这一层,且我们不在希望它继续向上返回的,因为这个 IRP
本身就不是从上层来的。综上所述,先来看下 IoMarkIrpPending() 的情况。

(1) 在 CompleteRoutine 中判断 Irp->PendingReturned 并使用 IoMarkIrpPending()
然后返回。这种方法在没有使用 KeSetEvent() 的情况下,且不是自建 IRP 发送
到底层驱动返回时使用。也就是说有可能我所做的工作都是在 CompleteRoutine
中进行的。比如加/解密时,我在这里对下层驱动返回数据的判断并修改。修改
后因为没有使用 STATUS_MORE_PROCESSING_REQUIRED 标志,它会延设备堆一直向
上返回并到用户得到数据为止。这里一定要注意,在这种情况下 CompleteRoutine
返回后,不要在碰这个 IRP。也就是说如果这个时候你使用了 IoCompleteRequest()
的话会出现一个 MULTIPLE_IRP_COMPLIETE_REQUEST 的 BSOD 错误。

(2) 在 CompleteRoutine 中直接返回 STATUS_MORE_PROCESSING_REQUIRED 标志。这种
情况在使用了 KeSetEvent() 的函数下出现。这里又有两个小小的分之。

1) 出现于上层发送到我这里,当我这里使用 IoCallDriver() 后,底层返回数
据经过我这一层时,我想让它暂时停止继续向上传递,让这个 IRP 稍微歇息
一会,等我对这个 IRP 返回的数据操作完成后(一般是没有在 CompleteRoutine
中对返回数据进行操作情况下,也就是说等到完成例程返回后再进行操作),由
我来调用 IoCompleteRequest() 让它延着设备栈继续返回。这里要注意,我们
是想让它返回的,所以调用了 IoCompleteRequest()。这个可不同于下面所讲的
自己从头分配 IRP 时在 CompleteRoutine 中已经调用 IoFreeIrp() 释放了当前
IRP 的情况。比如我在做一个改变文件大小,向文件头写入加密标志的驱动时,
在上层发来了 IRP_MJ_QUERY_INFORMATION 查询文件,我想在这个时候获得文件
信息进行判断,然后根据我的判断结果再移动文件指针。注意:上面是两步,第
一步是先获得文件大小,那么在这个时候我就需要用到上述办法,先让这个 IRP
传递下去,得到我想要的东西后在进行对比。等待适当时机完成这个 IRP,让数
据继续传递,直到用户收到为止。第二步我会结合下面小节来讲。

2) 出现于自己从头建立 IRP,当使用 IoAllocate() 或 IoBuildAsynchronousFsdRequest()
创建 IRP 调用 IoCallDriver() 后,底层返回数据到我这一层时,我不想让这
个 IRP 继续向上延设备栈传递。因为这个 IRP 就是在我这层次建立的,上层本
就不知道有这么一个 IRP。那么到这里我就要在 CompleteRoutine 中使用 IoFreeIrp()
来释放掉这个 IRP,并不让它继续传递。这里一定要注意,在 CompleteRoutine
函数返回后,这个 IRP 已经释放了,如果这个时候在有任何关于这个 IRP 的操作
那么后果是灾难性的,必定导致 BSOD 错误。前面 1) 小节给出的例子只完成了第
一步这里继续讲第二步,第一步我重用这个 IRP 得到了文件大小,那么这个时候虽
然知道大小,但我还是无法知道这个文件是否被我加过密。这时,我就需要在这里
自己从头建立一个 IRP_MJ_READ 的 IRP 来读取文件来判断是否我加密过了的文件,
如果是,则要减少相应的大小,然后继续返回。注意:这里的返回是指让第一步的
IRP 返回。而不是我们自己创建的。我们创建的都已经在 CompleteRoutine 中销
毁了。

8、关于完成 IRP 的动作简介

当一个底层驱动调用了 IoCompleteRequest() 函数时,基本上所有设备栈相关 IRP 处理工
作都是在它那里完成的。包括 IRP->Flags 的一些标志的判断,对 APC 的处理,抛出
MULTIPLE_IRP_COMPLETE_REQUESTS 错误等。当它延设备栈一直调用驱动所安装的 CompleteRoutine
时,如果发现 STATUS_MORE_PROCESSING_REQUIRED 这个标志,则会停止向上继续回滚。这也是
为什么在 CompleteRoutine 中使用这个标志即可暂停 IRP 的原因。

9、关于 ObQueryNameString 的使用

这个函数的使用,在有些环境下会有问题。它的上层函数是 ZwQueryObject()。在某些
情况下会导致系统挂起,或者直接 BSOD。它是从 对象管理器中的 ObpRootDirectoryObject
开始遍历,通过 OBJECT_HEADER_TO_NAME_INFO 获得对象名称。今天问了下 PolyMeta
好象是在处理 PIPE 时会挂启,这个问题出现在 2000 系统。在 XP 上好象补丁了。

10、关于重入问题

其实这个问题在很久前的 IFS FAQ 里已经介绍的很清楚,包括处理方法以及每种方法
可能带来的问题。IFS FAQ 里的 Q34 一共介绍了四种方法,包括自己从头建立 IRP
发送,使用 ShadowDevice,使用特征字符串,根据线程 ID,在 XP 下使用IocreateFileSpecifyDeviceObjectHint() 函数。并且把以上几种在不同环境
下使用要处理的问题也做了简单的介绍。且在 Q33 里介绍了在 CIFS 碰到的 FILE_COMPLETE_IF_OPLOCKED 问题的解决方法。

27Jan

帮朋友写的招聘信息

(1)1个设计师
1. 学历不限;
2. 良好的敬业精神,学习能力和沟通能力;
3. 两年以上大型网站架构经验;
4. 有很强电子商务安全意识;
5. 有大型网站架构能力,
6. 沟通能力强,刻苦、敬业、有上进心,有良好的团队合作精神,富有编写项目预研、规划、投标等文档的编写经验。

(2)1个专门美工
1. 学历不限;
2. 良好的敬业精神,学习能力和沟通能力;
3 从事两年以上网站美工工作;
4。 有独自网站界面设计,并富有创意;

(3) 3个程序员?
1. 学历不限;
2. 良好的敬业精神,学习能力和沟通能力;
3. 熟悉HTML、JavaScript、XML等相关WEB技术,
4. 熟悉web2.0技术 ;
5. 有很强的电子商务意识
6. 精通JSP开发语言或者PHP开发语言;
7. 精通MYSQL或Order数据库开发及应用;
8. 了解SSL加密技术,并能够进行相关的应用;
9. 有大型网站开发者优先考虑;