apache实现asp的方法

0

分类 : 网站技术 | 发表时间 30-03-2008

昨天从月光博客那里看到了从IIS的ASP迁移到APACHE的PHP的方法,apache实现asp的方法,早前几年就研究过,也不断在测试过,就差下手编译了,但也一直没有调试成功,因为apache和mysql的平台建立比较方便,而asp代码的网站建设也非常方便,因此也一直想在这个平台下建立起来asp的拓展功能,看了月光的这个文章,感觉也是这几个方面,但具体实现方法,还是没有讲清楚。

先看一下这三种方法,月光博客中也有提及:

1、Chili soft ASP:

现已经被sun收购,并入了SunONE ASP中;能较完美支持microsoft ,ASP3.0VBScript/JScript 5.5, ADO, 和 ODBC;包括了ODBC 数据库驱动 for Oracle, Sybase, DB2, Informix, MySQL, Microsoft SQL Server, Microsoft Access, dBASE, 以及 PostgreSQL;最新版为Sun One Active Server Pages 4.0.1,售价495美元;SUN网站上提供试用版的下载(全功能,30天限制);相关网址:http://globalspecials.sun.com/dr/v2/Ec_Main.entry24?SP=10023&PN=1&V1=631635&xid=50285&search_id=17553837&doc_id=1&DSP=&CUR=840&PGRP=0&CACHE_ID=0

2、Instant ASP;Stryon 公司发布的独立于应用平台的Instant ASP (iASP), 它是一个轻便的动态服务器构架,用JAVA语言写成,因此需要JDK1.X以上的支持;能让开发者将Active Server Pages(ASP) 配置在任何一个支持Java的Web服务器或应用程序服务器之上;(但实际测试结果并不如意)相关网址:http://www.stryon.com.cn

3、Apache::ASP:Chamas Enterprises 公司提供的支持ASP的解决方案;是在perl的基础上对ASP的扩展,与microsoft 的ASP API兼容非常有限;

可以通过Sun Java System Active Server Pages提供支持
这里有一篇安装文档
http://publish.it168.com/2005/0610/20050610000801.shtml

查看的SUN ONE ASP 4.0.2有关安装说明, apache只能使用支持1.3.27 和2.0.43两个版本(如图4所示),因此无论是在windows还是linux/solaris平台安装的Apache最好是下载这两个版本。

我的推荐办法是开iis为非80端口,apache 使用mod_proxy重新定向:

我的做法:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.linwan.com
DocumentRoot "e:/site/linwancom"
</VirtualHost>

<VirtualHost *:80>
ServerName www.linwan.net
DocumentRoot "e:/site/linwannet"
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/
</VirtualHost>

以下是月光的那篇“从IIS的ASP迁移到APACHE的PHP的方法

目前在网站服务器软件市场中,开放源码的Apache服务器占据了60%的市场份额,而微软免费捆绑在操作系统当中的IIS排名第二,其市场份额为31%,从总体上看,目前的网站服务器软件市场已经被Apache和IIS瓜分。

  一般从性能上通常都认同Apache的性能优于IIS,虽然IIS的操作管理界面非常简单易用,但是从IIS平台迁移到Apache平台依然是大势所趋,今天我就介绍几种从IIS的ASP转换到Apache的PHP的方法。

  通过插件模拟运行ASP

  通过一些公司的产品,直接让IIS的ASP代码正常运行于Apache环境,目前主要的产品有:

  Apache::ASP  http://www.apache-asp.org/

  SUN ONE ASP  http://www.sun.com/software/chilisoft/

  iASP http://www.instantasp.co.uk/

  通过程序转换ASP到PHP

  ASP和PHP都是很易用的网页脚本语言,目前有一些第三方程序可以将ASP转换到PHP,例如免费的asp2php。

  asp2php 是一个把 ASP 转成 PHP 的转换程序,类似的转换程序还有Chilisoft、InstantASP 与 Free ASP,目前 asp2php 可以转换大部分的ASP程序,不过,转换过程中有一些Bug,需要手动进行源代码的调整。

  使用Windows环境调用COM

  如果使用Windows + Apache的环境,那么数据库可以依旧使用Access或SQL Server数据库,使用PHP创建ADODB的COM组件后可以直接使用其命令,调用方法和ASP中的完全一样,示例代码如下:

$conn=new com("adodb.connection");
$conn->open("driver=microsoft access driver (*.mdb);dbq=member.mdb");
$rs=$conn->execute("select * from tablename");
while(! $rs->eof) {
  $f = $rs->Fields("username");
  echo $f->value;
  $rs->MoveNext();
}
$rs->close();
$conn->execute("update tablename set username=’williamlong’ ");

原创文章如转载,请注明:转载自月光博客 [ http://www.williamlong.info/ ]

本文链接地址:http://www.williamlong.info/archives/1288.html

有这方面兴趣的可以留言讨论下。

WordPress简明使用指南

0

分类 : 技术文摘 | 发表时间 13-06-2006

作者: 黄晶(Alex Huang) 网址: alexhuang.org



从2005年9月到现在,我用Wordpress也有些时日了。现将自己使用中的一些体会分简介、安装、编辑、管理、主题、插件、设置、代码修改等几个部分逐一概述如下。也算是为对Wordpress有兴趣的同志提供一些方便和借鉴吧。
注意:我使用的版本是成熟、稳定的1.5.2,而不是最近才发布的、小问题多多的2.0。
1. 简介
WordPress是全球最棒的免费个人内容(Blog)发布平台之一,其下载量即将突破1000000(详细数据请参考Wordpress Download Counter)。它用经典的PHP+MySQL搭建而成,两者都是开源的软件,其中PHP用于编写相应的操作代码、生成页面,MySQL数据库则用于保存用户发布和编辑的内容。
WordPress并不大,最新的稳定版本1.5.2的zip压缩包仅360KB左右,你如果用快点的宽带上网的,几秒钟就可以下载完毕。相应地,软件的开发人员也少,主要的程序员仅两名,即来自美国达拉斯(Dallas)的Ryan Boren ,和来自德州奥斯汀的小帅哥Matthew Mullenweg(一般都称他为Matt)。前者是网络硬件巨头 – 思科公司(Cisco Systems) – 的一名工程师,以开发免费软件为乐。后者则主要为知名IT媒体CNet Networks工作,并有自己的咨询公司(Mobius Limited),时常还做一些中介业务。开发Wordpress,其实只是他们的业余爱好而已。
“麻雀虽小,但五脏俱全”,Wordpress就是这样的小麻雀。有了它,你就可以:

是全球最棒的免费个人内容(Blog)发布平台之一,其下载量即将突破1000000(详细数据请参考)。它用经典的PHP+MySQL搭建而成,两者都是开源的软件,其中用于编写相应的操作代码、生成页面,数据库则用于保存用户发布和编辑的内容。Wordpress并不大,最新的稳定版本1.5.2的zip压缩包仅360KB左右,你如果用快点的宽带上网的,几秒钟就可以下载完毕。相应地,软件的开发人员也少,主要的程序员仅两名,即来自美国达拉斯(Dallas)的 ,和来自德州奥斯汀的小帅哥(一般都称他为Matt)。前者是网络硬件巨头 – 思科公司() – 的一名工程师,以开发免费软件为乐。后者则主要为知名IT媒体工作,并有自己的咨询公司(),时常还做一些中介业务。开发Wordpress,其实只是他们的业余爱好而已。“麻雀虽小,但五脏俱全”,Wordpress就是这样的小麻雀。有了它,你就可以:

1.进行文章发布、分类、归档。
2.支持文章、评论、分类等多种形式的RSS输出。
3.提供链接的添加、归类功能。
4.支持评论的管理,防垃圾功能。
5.支持对风格(CSS)和程序本身(PHP)的直接编辑、修改。
6.在Blog系统外,方便的添加所需页面。
7.通过对各种参数进行设置,使你的Blog更具个性化。
8.生成静态html页面(需要mod_rewrite支持)。
9.通过选择不同主题,方便地改变页面的显示效果。
10.通过添加插件,可提供多种特殊的功能。
11.支持Trackback和pingback。
12.支持针对某些其它blog软件、平台的导入功能。
13.支持多用户。
这些功能,已经能够满足个人用户绝大多数的需求,并且,对于中小企业来说,它也是建立内容或资讯发布平台的得力工具。
个人认为,与其它的Blog发布软件相比,Wordpress的主要优势在于:

安装最简单。
Web标准支持非常好。
使用比较简单。
主题与插件丰富。因此可以方便地打造自己喜欢的Blog显示效果和功能,让它在简单的同时,变得更加美观、强大。
功能设置比较合适、合理,不像有些软件那样多而无用。
代码修改比较方便、容易。
也正是上述这些原因,我最终选择了Wordpress。
2. 安装
WordPress的安装非常的简单,如果一切顺利的话,只需要几分钟就可以搞定。当然,妥善的前期准备工作在这里是必要的前提。
为了放置你的Wordpress文件,你必须得先找到一台合适的主机。至于它是你自己搭建的,还是去服务商那里租用的,这并不重要。(这里只介绍后一种情况)
前面的简介中已经说过,Wordpress是用PHP+MySQL实现的,因此,它的安装对主机有一个基本的的要求,即主机必须支持高于4.1版本的PHP和高于3.23.23版本的MySQL。另外,主机的Apache(地球上最流行的Web服务器,类似于微软的IIS – Internet Information Services)最好还要支持mod_rewrite功能,这样就可以生成各种指定形式的Permalink(一个静态html形式的页面地址),便于搜索引擎的查找和用户的使用。否则,页面链接的形式就只能是我Blog这样的,如http://alexhuang.org/?p=1。当然,这并不影响它的正常使用。
如果你对permalink没有太多的要求,那么,使用的由edong网提供的K300型虚拟主机将 是不错的选择。以我目前的使用情况来看,还是比较满意的。这个空间容量共为300M,其中数据库为100M(WordPress只在数据中存放文本化的 XHTML代码,因此,完全够用了)。PHP版本为4.3.11,MySQL版本为3.23.28,都符合Wordpress的要求。每年的费用为300 元,相比其它服务商,算是比较实惠的价格了。速度还行,稳定性也比较不错。
购买主机以后,你就可以登录管理页面,然后通过设置MySQL数据库的面板,定义一个自己的数据库,它的名字以及你的用户名和密码都由你自己决定。这三个东东非常的重要,请你一定要记下来。
接下来,就可以到这里下载最新版本的Wordpress程序包,进行正式的安装了。
首先,用解压缩软件如WinRAR将程序包解压。
然后,找到解压后目录中的wp-config-sample.php文件,用文本编辑软件如notepad打开它。
接下来是最关键的步骤了,即填写你的MySQL数据库信息,这些信息由你自己在虚拟主机服务商提供的设置面板中定义。在wp-config-sample.php文件的头部,你会发现类似如下的代码:

define(’DB_NAME’, ‘wordpress’); // 把wordpress用你的MySQL数据库名字代替
define(’DB_USER’, ‘username’); // 用你的MySQL数据库用户名代替username
define(’DB_PASSWORD’, ‘password’); // password即你的MySQL数据库密码
define(’DB_HOST’, ‘localhost’); // 一般来说,这一行就不需要修改了
按照我中文所说的要求,填写相关的信息即可。以“另存为”的方式将wp-config-sample.php文件改名为wp-config.php保存。
文件修改完毕后,用FTP软件如Filezilla将 整个解压目录上传至你虚拟主机上的Wordpress目录,上传时所需的相关资料如主机IP地址、用户名、密码等服务商会提供给你,至于FTP客户端的使 用,这里暂不细讲。Wordpress目录由你自己决定,可以是根目录,也可以是你自己定义的新目录,它将决定你的Blog将以什么样的地址进行访问。我 放在根目录下,就可以用http://alexhuang.org/访问我的Blog,如果放到如/blog/目录下,那么,访问这个Blog就要输入http://alexhuang.org/blog/才行(当然,可以在后台进行设置改变这一限制)。
安 装工作的最后一步,就是获取你的Wordpress用户名和密码了。在地址栏中输入install.php文件的URL,它位于你的Wordpress目 录下的wp-admin子目录中,因此一般的形式为http://wordpress目录/wp-admin/install.php。这个安装文件会生 成一个用户名和密码给你,通过它们,你就可以进入Wordpress的管理面板进行相关的操作了,并且,拥有的是最高权限。这个密码非常的重要,请你一定 要记牢,当然,你也可以在登录后将密码修改为你自己喜欢的字符串。 />补充:
当然,还有第三种方式可以让你更为方便地使用Wordpress,那就是找一个以Wordpress为基础平台的Blog服务商,你注册后就可以立即感受使用Wordpress的乐趣了。我还是推荐几个这样的服务商给大家吧:
· wordpress.com (wordpress团队自己弄的)
· wordpress.com.cn (好象是国内做的,我试过还行)
· blogsome.com (我以前最喜欢用的)






3. 一般使用
前面,我花了一定的篇幅对Wordpress的来历、用途,以及安装进行了一个简要的介绍。接下来,我则会对它的使用进行较为详细的说明了,这些内容将是本系列文章的重点。
WordPress分前端和后台,为了获得一个初步的印象,你可以点这里先看看其官方网站提供的截图。前端是所有用户都能看到的,也即你的Blog最终的外在表现形式,如我的Blog此刻呈现在你面前的样子。后台则仅对管理员和有一定权限的注册用户开放,Wordpress的管理全部都是在后台进行的。
在 地址栏输入”你的域名/wp-admin/”或”你的域名/wp-admin/index.php”,如http://alexhuang.org/wp -admin/或http://alexhuang.org/wp-admin/index.php,填好你的用户名和密码,即可进入行你的 WordPress后台管理界面的主页面。当然,你还可以输入更为具体的地址,直接进入行后台管理界面中的相应功能模块。如”你的域名/wp- admin/post.php”(直接写文章),”你的域名/wp-admin/themes.php”(直接管理主题),”你的域名/wp- admin/link-manager.php”(直接管理链接)等。另外,如果你是管理员或注册用户的话,也可以在前端的页面中点击”Site Admin”(用户名和密码已被系统记住时)或”Login”(你已退出登录或用户名和密码还未被系统记住时)进入后台管理界面。Wordpress后台 管理界面主页面的大致模样请点这里查看。
进入Wordpress后台管理界面的主页面后,你会在最上方看到一个主菜单,通过它们,你就可以完成对Wordpress的主要管理工作了。由于这一部分的内容较多,所以,我决定再将该部分的内容根据与Wordpress后台管理主界面相似的分类细分为七个部分,即:

1. 写文章(Write)
2. 内容管理(Manage)
3. 链接管理(Links)
4. 主题功能(Presentation)
5. 插件功能(Plugins)
6. 用户管理(Users)
7. 设置(Options)
在接下来的文章中,我将依次对它们逐一地进行介绍。
建议:
Tiger Style Administration是一个非常不错的Wordpress后台管理界面转换插件,它可以将你初始的后台管理界面改造成苹果电脑所使用的操作系统的风格,非常的漂亮,喜欢的朋友可以试试。








3.1 写文章(Write)
首先,你可以点这里对Wordpress的文章编辑页面形成一个初步的印象。
撰 写文章的页面主要有四个区域。最上面是选择Wordpress后台管理面板中其它功能页面的菜单,中间左边是编辑区域,用于文章的编写,它的右边是内容分 类选择区域,可以用它为当前编写的文章选择相应的分类,最下方是则为了当前文章选择参数和增加用户自定义内容的地方。如果你选择了”Advanced Controls”(高级编辑页面)的话,在它的下方还会看到当前编辑的文章在前端(Front-End)的最终显示效果,它与外部用户能看到的效果保持 一致。
四个区域中,选择菜单前面已有提到。内容分类选择也很简单,你自己可以依情况而定,需要提一下的就是,分类可以选择一个,也可 以选择多个。它的下方还有三个选项,包括”Allow Comments”(是否允许评论)、”Allow Pings”(是否允许本文去Ping它指向的文章)、”Password”(为本文设定一个密码,只有拥有这个密码的人者可以进行编辑)
编辑区域和用户自定义区域的使用相对要复杂一些,因此,要多做一点介绍。
编辑区域的最上方”Title”处,用于填写你的文章标题。
再 往下,会根据你选择是”Simple Controls”(一般编辑页面)还是”Advanced Controls”(高级编辑页面)而有所不同。它的设置我们会在后面的内容中讲到。由于高级编辑页面包含了一般编辑页面中所有的选项和功能,因此,我们 这里的介绍以它为准。
在”Title”的下方,就是”Excerpt”(摘要)区域,这里用于编写针对你文章的摘要。用于读者在以摘 要的模式订阅和浏览文章的时候,显示相关的内容。针对他们的设置将在后面介绍。当然,你也可以不写摘要,这不会对文章造成什么影响。事实上, WordPress自带了个摘要抽取功能,它会在必要的时候执行,只是其内容可能没有自己撰写的准确而已。
再往下走,就是文章编辑页面最重要的地方了,”Post”即文章内容编辑区域,它的大小可以进行设定,留到以后再讲。这里关键讲一下”Quick Tags”(便捷标签),它对你的文章编写是比较有帮助的。
WordPress每一篇文章的内容是由标准的XHTML语言构成,这些标签对应的就是相应的标签功能。它们分别是:

B – 粗体字
i – 斜体字
link – 添加链接
B-Quote – 引用文字
del – 文本加删除线
ins – 文本加下划线
img – 添加图片
ul – 定义有标记的列表
ol – 定义有序号的列表
li – 定义列表项
code – 设置文本为代码风格
more – 添加注释
look up – 在文章内进行查找
Close Tags – 关闭打开的标签(好象不起作用?)
当 然,这些标签的功能还比较有限,因此,为了实现更多的功能,如插入Flash对象等,你最好还得进一步地学习一相XHTML语言的相关知识。不过,对于一 般内容的编写而已,它也已经够用了。需要特别提一下的是,文章的最终显示效果主要还是由主题下的核心样式表(一般叫style.css)来进行控制。
编辑区域的下方,是进行参数选择和设置自定义内容的地方。这些选项有:

Post Status: 文章的当前状态。可以是”Published”(已发布)、”Draft”(草稿)、”Private”(私人日记,选择这种状态,那么该篇文章就只有作者自己能看到)
Send Trackbacks To: 通过它,你可以在发布该篇文章的同时向指定的地址发去一个通告。比如,在你引用了某人Blog中的文章时,你希望告知他,就可以利用这个功能。
Post Slug: 当你使用Permalinks功能的时候(前面提到过,需要Apache的mod_rewrite,反正edong网是 不支持,所以我也没体验过),Wordpress将为你的每一篇文章生成一个类似”你的域名/year/month/day/文章标题/”这样的静态 HTML地址(当然,怎么生成permalinks,你自己还可以定义)。当你想用自己设定的内容来代替permalinks最后的一段字符时,就需要指 定一个Post Slug,这样,Wordpress生成的permalinks的形式就成了”你的域名/year/month/day/post-slug/”。因此, 可以看到,Post Slug主要作用就是可以为每篇文章形成一个更合理、更具个性的静态链接地址。Slug这个字串符最好使用英文或阿拉伯数字的组合,对中文支持怕是不大好 的。
Post author: 文章作者,谁登录编辑此文,谁就是默认的作者。在有多个注册用户的情况,可选相应的作者。
Edit Time: 默认情况下,以系统的当前时间为发贴时间。但你也可以根据自己的情况需要进行修改,比如说把时间提前,这样,该篇文章就插入到你指定的时间所在文章集合中对应的位置。
Custom Field(s): 用户自定义区域。这一块的内容相对比较复杂,它会根据你的加入的插件而有所改变。它包括两个部分,即”Key”(自定义
区域名字)和”Value” (值)。默认情况下只有”enclosure”,可以定义你的文章中加入了哪些资源(如音乐)。当然,Wordpress允许用户自己加入新的内容,如我 每篇文章下的Technorati区域,就是在这里进行定义的。其具体的使用方法后面加讲。
初 次文章编辑完成后,点”Publish”按钮就可发布,点”Save”则只进行保存。当重新编辑时,点”Save”则可实现文章内容的更新。默认情况下, WordPress会为每一文章生成一个唯一的、按顺排列的ID,你可以用”你的域名/?p=[文章ID]”这样的形式支持访问它,如这当前这篇文章就 是”http://alexhuang.org/?p=169”
3.2 内容管理(Manage)
点击主菜单上的”Manage”即可进入内容管理页面,当然,也可在地址栏输入”你的域名/wp-admin/edit.php”直接访问该页面。
管 理页面的还下辖多个子页面,点页面上方的相应链接即可进入。默认情况下,有”Posts”(文章)、”Pages”(独立页面)、” Categorires”(内容分类)、”Comments”(评论)、”Awaiting Moderation”(等待审核的评论)、”Files”(系统文件)等六项。另外,如果你安装了某些插件,可能同时也会在这里增加针对管理它们的相应 选项。
3.2.1 文章管理(Posts)
打开内容管理页面,默认显示的就 是文章管理页面。为了方便地找到你希望编辑的文章,在页面的上方增加了一个文章搜索(Search Post)功能,以及显示指定月份文章(Browse Month)的选项。因为随着你写作的时间越来越长,文章可能会变得比较多,这样就不容易找到你想编辑的文章,而这两项功能,就是为了给用户提供更多的便 利而专门设置的。
再往下,Wordpress会按你的要求,显示详细的文章信息列表,每一篇文章占一行。这些信息从左至右包括:
唯一编号(ID)、最后更新时间(When)、标题(Title)、文章所属分类(Categories)、文章评论数(Comments)、作者(Author)。在每一行的最右边,有三个针对该文章的操作按钮,即:

查看(View) – 直接回到前端(Front-End),显示该篇文章的最终显示结果。
编辑(Edit) – 进入文章编辑页面,它和前面所讲的撰写文章的页面几乎一样,只是文章不再是从零开始进行撰写,而是在已有的基础上进行修改。因此,这里就不再深入介绍了,看我前面的文章即可。
删除(Delete) – 删除该篇文章。
如果指定要列示的文章比较多,一页不够显示(默认一页显示15篇文章的信息)。那么,文章管理页面的最加方还会出现一个名为”更多前面的文章”(Previous Entries)的链接,让你查看更多文章的信息。
3.2.2 独立页面管理(Pages)
点内容管理页面最上方的Pages项,即可进行独立页面管理界面。独立页面的撰写和管理与文章的撰写和管理十分的相似,因此,就里就不再赘述了,相信大家都能举一反三。
3.2.3 内容分类管理(Categories)
内容分类是为了更好的组织文章的一种方式,它不仅可以让作者更容易地管理的自己的文章,还可以让读者更方便的阅读自己喜欢的内容。
WordPress 提供了方便的分类功能。在内容分类管理页面中,有一个”加入一个新的分类”(Add New Category)区域,在这里填上分类的名字(Name),选择好上级分类(Category Parent),再填写好分类的说明(Description,选填项目),然后,点”增加一个分类”(Add Category)按钮,就可以完成内容分类的添加工作了,非常的简单。添加好分类后,你就能够在撰写文章的页面中,方便地使用它们了。
在内容分类管理页面中,分类的信息用与文章管理页面中的文章信息相似的方式显示。一个分类占一行,从左到右分别是:

分类唯一标识(ID)
分类名称(Name)
分类说明(Description)
分类下辖文章数(# Posts)
编 辑按钮(Edit) – 点击它,会进入下分类编辑页面,与”加入一个新的分类”区域中的内容相似,只是多了一个Category Slug选项,你可以在这里填入一个字符串,其具体作用不详,应该是用在permalinks功能中,用于生成该分类的子目录。最终生成类似”你的域名/ [category slug]/[post slug]”这样的静态HTML页面。
删除按钮(Delete)
3.2.4 评论管理(Comments)
评论是读者在看了你的文章后作出的反馈(当然也有垃圾评论,如广告),是Blog作者与读者进行交互的重要手段。
评论管理页面的最上方,有一个搜索区域,在这里可以方便地找到你希望直接进行管理的评论。
在 它的下面,有两个选项,用于要求Wordpress以指定的方式列出评论管理页,其中”View Mode”以向下一个个显示评论及操作选项的方式列出评论,而”Mass Edit Mode”则与文章管理页面相似,以一个表格来显示相应的评论,每个评论占据一行的位置。
根据你使用评论列示方式的不同,系统显示出的信息和针对它们的操作都是也会略有区别。关于评论的信息大致有:

评论者(Name)
评论者电邮(E-Mail)
评论者IP地址(IP)
评论内容的摘要(Comment Excerpt)
评论的时间(”View Mode”下才显示)
而相应的操作则包括:

编辑评论(Edit Comment)
删除评论(Delete Comment)
编辑被评论的文章(Edit Post,”View Mode”下才支持)
显示被评论的文章(View Post,”View Mode”下才支持)
到前端查看评论(View按钮,”Mass Edit Mode”下才支持)
删除多篇文章(点每个评论前的复选框,再按最下方的”Delete Checked Comments”,在”Mass Edit Mode”下才支持)
在”View Mode”下点”Edit Comment”,在”Mass Edit Mode”下点”Edit”按钮,都可以立即进入评论编辑页面,在这个页面中,你可以修改:

评论者的名字(Name)
评论者的电邮地址(E-Mail)
评论者留下的唯一资源标识(URI)
评论内容本身(Comment)
评论的状态(Comment Status), 包括”Approved”(允许该条评论发布)、”Moderated”(等待审核,不会被显示)、”Spam”(垃圾评论,不会被显示)
评论的时间(Edit Time)
删除该评论(Delete Comment)
操作完毕后,点”Edit Comment”按钮,即可完成对该条评论的修改。
3.2.5 等待审核的评论(Awaiting Moderation)
这是Wordpress为了防止垃圾评论、广告的骚扰而提供的功能。它的设置要在”Options”模块中完成,如你可以规定评论中的链接超过五个,则该 评论被暂定为垃圾评论(具体的设置后面再讲)。当发现的相应的垃圾评论时,Wordpress不会让该评论直接显示在前端的页面中,而是把它放到的这里来 进行管理。这些评论必须要通过了你的允许,才会被显示出来,当然,你也可以方便地编辑或删除它们。其操作与评论管理类似。
3.2.6 系统文件管理(Files)
系统文件这里指的是Wordpress的核心文件,包括程序本身、主题、插件等用到的PHP程序文件、CSS样式定义文件及其它一些可编辑的文件。在系统 文件管理页面中,你可以对Wordpress进行最底层的操作,如果你不了解XHTML、CSS、PHP、Javascript语言,建议你就不要到这里 来了。
如果你认为自己有能力对这些文件进行修改、编辑,那也不用我再介绍这个页面里的内容了,因为你应该看得懂的。毕竟,就只有两个按钮:

Update File – 更新你当前编辑的文件
Edit File – 选择你要编辑的文件,直接输入它们的URL地址即可。如果你不清楚它们的地址在哪儿,可以打开你的FTP客户端查看。




3.3 链接管理(Links)
点后台管理面板上的”Links

windows下搭建cvs服务器

0

分类 : 技术文摘 | 发表时间 13-06-2006

通常搭建CVS服务器都是在Linux/Unix平台上,但是在Windows平台上,凭借数目庞大的Open Source软件,我们也同样可以搭建一个适用于项目组的CVS服务器,并且还可以为其添加源代码跟踪功能。

一、需要的软件
1、CVSNT
CVSNT是目前在Windows平台上构建CVS服务器最方便的工具,操作简单,以Windows服务程序的形式运行。目前CVSNT已被移植到其它平台如Linux上。
选用版本:2.0.58d。
选用这个版本而不是最新的2.5.x的原因是2.5.x改变了History文件的格式,影响了我们后面介绍的CVSTracNT的运行。当然,如果你不使用CVSTracNT,选用2.5.x也没有问题,其操作与2.0.58d基本相同,也十分的简单。
下载地址:http://www.cvsnt.org

2、CVSTracNT
CVSTracNT是一个基于Web的CVS源代码跟踪工具。使用CVSTracNT,你可以跟踪源代码的变更,提交任务单,创建里程碑,并通过Web的方式查看、比较源代码文件。对于CVS系统本身来说,是一个非常有益的补充。
选用版本:1.1.5 Build20050703多国语言版。
这个版本由cnpack项目组的成员进行了汉化,并添加了许多实用的工具。具体的内容可以参考其中文网站。
下载地址:http://www.cnvcl.org

3、ViewCVS
ViewCVS是一个用Python语言编写的CVS Web界面。有了它,你可以通过浏览器查阅源代码,进行版本比较。相对于CVSTracNT自带的Web界面来说,ViewCVS更加有亲和力,功能也比较完善。大名鼎鼎的SourceForge的Web界面就是使用ViewCVS搭建的。
还有另外一个CVS的Web界面CVSWeb,用Perl语言开发。
选用版本:1.0 dev r6。
最新的版本,没什么好说的。
下载地址:http://russ.hn.org/viewcvs/

4、Python
让ViewCVS运行起来,必不可少的就是Python。
选用版本:2.4.1。其它2.4.x版本应该也可以,但注意和ViewCVS的版本要搭配。
下载地址:http://www.python.org

5、PyWin32
Python语言的Win32扩展。
选用版本:2.04 for Py 2.4。
下载地址:http://pywin32.sourceforge.net

6、Apache HTTP Server
ViewCVS可以在IIS和Apache服务器上运行,考虑再三,最后选择的Apache。虽然配置起来有些麻烦(其实也不麻烦),但考虑到Apache是开源项目,不会有法律问题,呵呵。
选用版本:2.0.54。
下载地址:http://apache.justdn.org/

7、MySQL
ViewCVS提供了查询功能,使用的是MySQL数据库。
选用版本:3.23.42-nt。
不要使用4.x版本的MySQL,与ViewCVS兼容不太好。

二、安装
1、安装CVSNT
直接运行CVSNT安装包。安装结束后,打开Service Control Panel,配置你的CVS仓库。点击Repositories选项页,添加你的仓库地址就可以了,不需要重新启动CVS服务器。

2、安装CVSTracNT
直接运行CVSTracNT安装包。感谢CNPack的程序员,如果按照CVSTracNT网页上的安装介绍,一定会郁闷死。安装结束后运行CVSTrac配置程序,程序启动后会自动搜索CVS仓库,将其添加到CVSTrac数据库。选中数据库,点击浏览按钮,你的浏览器应该打开并显示CVSTrac的页面了。
CVSTracNT的使用及配置参考http://www.cnpack.org上的介绍。

3、安装Python及PyWin32
运行安装包即可。

4、安装Apache HTTP Server
运行安装包即可。如果在安装过程中没有选择让Apache自动运行,那么可以通过开始菜单运行Apache。

5、安装MySQL
运行安装包即可。

6、安装ViewCVS
最麻烦的地方到了。
首先,将ViewCVS解压缩到一个目录中,然后在该目录的命令行中,运行python viewcvs-install。安装结束后,编辑viewcvs.conf文件,修改cvs_roots项为你的CVS仓库路径,修改default_root项为默认的CVS仓库,还可以修改邮件地址项。
然后拷贝web\cvs\viewcvs.cgi到你的Apache cgi-bin目录中。
运行Apache,在浏览器中输入http://localhost/cgi-bin/viewcvs.cgi,看看你的ViewCVS是不是运行顺利?
现在我们要为ViewCVS添加查询功能了。
运行MySQL的管理程序mysql,进入MySQL命令行模式,添加一个用户viewcvs,并赋予其读写的权力。退出。在命令行下运行python cvsbdadmin CREATE,根据提示输入数据库名,用户名和密码,数据库自动创建。
编辑viewcvs.conf文件,修改cvsdb块下的enabled选项值为1,去除后面各项前的注释符,修改各项的值为前面设置的值。
拷贝web\cgi\query.cgi到Apache cgi-bin目录下。
在浏览器中运行http://localhost/cgi-bin/query.cgi,看看结果……
失败了,系统提示Python错误。根据错误信息查到,错误处在dbi.py文件中。在dbi.py中有这样一行:datetime.tuple()。查阅Python文档,发现datetime对象没有tuple方法,只有timetuple方法,更改之后,运行正常。

三、总结
以上的搭配方案适用于中小项目组,因为CVSNT本身在应对大项目时有一些效率问题。如果你想用CVS管理上万个源文件,那么用Linux平台搭建CVS服务器是更合适的选择。
无论如何,CVSTracNT都是你不该错过的好东西,当项目逐渐膨胀起来后,让CVSTracNT来管理一些机械的事情是一个好选择。
ViewCVS并不是必要的,但是比之CVSTracNT自带的Web界面,ViewCVS要更舒服一些,某些功能也更清晰(比如版本比较)。让你的上级通过ViewCVS来浏览你的工作情况也许是个好选择,你不需要在Trac中为他保留一个会扰乱正常工作程序的位置。
总得来说ViewCVS的查询功能并不是太方便,使用起来比较繁琐,结论是不用也罢。安装MySQL等等的繁琐工作也就不需要了。
我最遗憾的是,因为时间的关系,并没有建立SSL连接方式。从安全的角度来说,SSL也许是必不可少的,除非你的访问者都值得信任。
最后还要说的是,CVS虽然比较流行,但并不是源代码管理的唯一选择。在你作出决定之前,不妨先看看这篇文章:http://better-scm.berlios.de/comparison/comparison.html。

IIS下论坛静态化分析

0

分类 : 技术文摘 | 发表时间 25-04-2006

这两天研究Discuz 4.1,并成功地将原来一个Discuz 2.5的论坛升级到了最新版本,个人感觉这个论坛实在不错。

  我的Discuz 4.1是在Apache+Php+Mysql下运行的,并开启了Url Rewrite,之后我发现整个论坛的大部分页面都可以使用html的静态地址方式来访问,感觉真不错,Apache实在太强大了,难怪现在用Apache的站点那么多。

  IIS下能否也实现这种静态化功能呢,我知道Helicon开发了一个叫ISAPI_Rewrite的ISAPI程序,可以在IIS下实现Url Rewrite功能,不过我自己还没有尝试过,过两天按照下面的操作测试一下看看效果如何。另外,下文Discuz提供的ZIP文件里的Rewrite.dll实际上就是Helicon的ISAPI_Rewrite程序,我对Discuz做为软件开发商居然也盗版同行的软件感到遗憾。

  参考文章:Discuz!4.1.0 IIS Rewrite配置方法(转自DISCUZ会员区)

  Discuz! URL静态化功能受到论坛所在服务器环境的制约,在开启此功能之前,请根据你的Web服务器环境,选择相应的环境配置方法,以下提供的iis6下的服务器配置..其它服务器(如apache,zeus)你可以根据原理自行配置。

  1、下载IIS Rewrite模块:http://download.discuz.net/4.1.0/discuz_iis_rewrite.zip;

  2、将压缩包解压到任意目录,(如:C:\Rewrite)。然后打开“控制面板”-“管理工具”-“IIS信息服务管理器”-“网站”-“您的站点”-“属性”。在“ISAPI筛选器”项点击“添加”,筛选器名称填入Rewrite,可执行文件为C:\Rewrite\Rewrite.dll;

  3、重新启动IIS就可以生效了。

  通过上述配置后,您就可以在Discuz!4.1.0后台中根据需要开启影响的静态功能了。

  无:不启用URL静态化功能。

  Discuz!Archiver静态化:当论坛启用Archiver功能时,Archiver内的所有链接均采用*.html形式。

  普通页面静态化:对论坛常用页面(如forumdisplay.php、viewthread.php、viewpro.php等)进行URL静态化转换。

  Archiver和普通页面均静态化:对Archiver以及论坛常用页面(如forumdisplay.php、viewthread.php、viewpro.php等)进行URL静态化转换。

  使用注意事项:

  您可以通过系统设置中Discuz!选项来控制URL静态化的打开或关闭及其工作状态,本功能对服务器环境有特殊要求,独立主机用户需要对Web服务器增加相应的Rewrite规则,因此需要服务器权限才可使用;对于虚拟主机用户,您需要向您的空间服务商进行咨询:空间是否支持Rewrite以及是否支持对站点目录中.htaccess的文件解析,只有满足这两条件,URL静态化功能才会生效。打开URL静态化后,论坛一些常用链接会变成类似discuz/forum-1-1.html形式,如果您的服务器环境不支持或者尚未配置好,访问这些链接会出现“网页无法显示”的错误信息,论坛将无法正常访问。发生无法访问的现象时,请您进入管理后台,关闭URL静态化功能,论坛即可恢复正常状态。

  本文提供的压缩包中还有一个httpd.ini文件,该文件是rewrite规则的配置文件。内容如下(无需修改):

[ISAPI_Rewrite]
# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)$ $1/archiver/index\.php\?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay\.php\?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$$1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro\.php\?$2=$3

为什么要采用java这个平台

0

分类 : 编码知识 | 发表时间 17-04-2006

从开发项目的类别角度看java平台基于B/S结构的系统,在这个方向上的竞争是激烈的,有专注于此的LAMP(Linux + Apache + Mysql + Php);也有刚刚兴起的Rails(Ruby Frameworks)甚至是号称快速开发的ASP.NET;当然了java在这个领域里的MVC框架数都数不完,比如Struts . Webwork等,然而即便是如此,选择java作为开发的理由也是不充分的,因为在这个梯队里java顶多排名最后。

基于C/S结构的系统,在这个方面java显然没有考虑周到,面对VB 、DELPHI、vc这些个如狼似虎的快速开发IDE,JAVA实在是显得异常的淡薄,即使你找到了一个可以匹敌这些个ide的工具,面对第三方的组件又会成为一大障碍,所以java在这个方面又一次的输了。

从java所强调的特性角度看java平台

java的重点是业务逻辑!(我以前也是如此坚信不移)可是谁有能够说别的语言不注重业务逻辑呢,业务逻辑只是一个抽象的概念,java只是依靠ejb提出了业务组件而已,其他的语言在实现业务逻辑的时候也可以包装成POJO的形式,看来这个观点也是失败的。

java强调的是跨平台的优势!这可以理解为初级的、商业的、忽悠人的词汇,面对众多动态语言如Python,在若干平台上的表现,java又如何来强调自己这方面的优势呢?失败

java支持分布式应用的项目!可笑的言论,分布式根本不是值得炫耀的资本,在java之前的c/s项目中何尝不是分布式的应用呢?失败

既然没有了这些个优势,我们看看java到底还剩下些什么?对了其实就是应用服务器!然而看过J2EE WITHOUT EJB的读者肯定知道Spring所希望达到的目的,也就是脱离应用服务器概念上的J2EE体系实现,既然在作者的眼里APPLICATION SERVER只不过是一个忽悠人的词汇,那么任何项目都选择java作为开发的依据显然就是自找苦吃,

那么什么情况下改选择java作为开发的平台呢?

<1> 如果你真的遇到了大型的系统开发任务,恭喜你,你终于可以看到分布式对象、集群的优势了。

<2> 客户是一个java的忠实fans或者是sun、ibm的金牌合作伙伴之类的,选择java是不得已的,但记住并不能证明java是最好的实现方式<3> 如果你只想关心业务逻辑的实现,对于事务、缓存、查找等服务的实现没有兴趣的话,倒是不妨考虑采用ejb的形式,当然前提是你不愿意在寻找合适的替代品的情况下。

<4> 如果项目迫切的寻找某种框架的支持,选择java就是对的,你有众多优秀的、免费的、可扩展的、天才的框架可以选择,更多的时候你是出于尴尬的境地,因为任何一个都让你心动、而这样的选择往往是最痛苦、和快乐的。

正确的选择<1>条件: 如果项目仅仅只是一个小型的网站系统选择: LAMP、Rails

<2>条件: 项目规模中等并且项目的时间比较紧,项目可以架构在windows的系统之上,选择: .Net / Delphi

<3>条件: 大型的系统,有支持分布式对象、集群的要求;或者SUN / IBM的金牌合作伙伴 ; 想要寻找某种优秀的框架来解决问题选择: java是不二的选择,可是我想问一下,在现实中你能遇到这样的项目吗?

所以,从实际的角度出发,我们面对的99%可能都是一些符合条件1,2的系统,而选择java实在是得不偿失的。最后以一段Code Complete中的话来作为结束语

每个程序员都有很多的工具,但并不存在任何一个能够适用于所有工作的工具,因地制宜的选择正确工具是成为能有效编程的程序员的关键。

Redhat+Apache+Mysql+ PHP配置

0

分类 : 技术文摘 | 发表时间 16-04-2006

Ps:不知道有哪位移植通达oa至linux成功的,这个方案可以先打个基础,有成功的,给打个招呼


Linux系统的安装我就不讲了,这是基本功,其实这篇文章在类似Redhat的其他linux也应该通用,大家只要掌握我提供的方法就行。记得安装Redhat9。0的时候不要安装系统默认的apache,mysql和php以及相关的软件。已经安装的请用rpm -e * 删除已经安装的包。
1.安装Mysql3.23.58
其实老实说直接安装Mysql官方网站提供的rpm包也是一个比较可行的办法,他的官方网站的rpm包的提供基本跟tar包发行是同步的,这点我比较喜欢,至少安装rpm包的在后面的调试中不会出现mysql库文件找不到的情况。但这里还是有必要讲一下自定义安装的步骤,毕竟网友自定义安装的还说挺多的。
软件获取:http://www.mysql.com/downloads/index.html
安装步骤:
tar zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58
./configure –prefix=/usr/local/mysql –sysconfdir=/etc –localstatedir=/var/lib/mysql
make
make install
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
安装完以后要初始化数据库,当然你是升级的话不用做这步;
/usr/local/mysql/bin/mysql_install_db

如果系统没有mysql这个用户的话,最好做以下这步:
useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c “MySQL Server” -u 27 mysql
然后我启动mysql
/usr/local/mysql/bin/safe_mysqld &
ok,先看看mysql能否正常工作
mysql -uroot mysql
一般情况下都是不能正常链接数据库,错误提示一般为:
ERROR 2002: Can”t connect to local MySQL server through socket ”/var/lib/mysql/mysql.sock” (2)
其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在
/var/lib/mysql/*.err 你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了。我们只要
chown -R mysql:mysql /var/lib/mysql 就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。
如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a
做完上面的步骤,然后把你编译目录的一个脚本COPY过去
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig –add mysqld
用ntsysv设置使mysql每次启动都能自动运行。
好了,至此mysql安装完毕,你可以这样起动你的mysql服务
/etc/rc.d/init.d/mysqld start
下面这步比较关键,
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
大家可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但我还是喜欢把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。
2.安装Apache1.3.29。我没有选择安装Apache2.0是我对他还是不放心,因为网上最新公布的apache的漏洞基本上是针对2.0,当然大家可以自己选择安装相应的版本。我这里讲的都是采用DSO动态编译的方法编译Apache.
至于有关apache的编译方法,可以参考我以前的文章《apache的静态/动态编译在apache+php+mysql的应用》 http://www.5ilinux.com/apache01.html
软件获取:http://httpd.apache.org/
tar zvxf apache_1.3.29.tar.gz
cd apache_1.3.29
修改src/include/httpd.h 增大最大线程数
#define HARD_SERVER_LIMIT 256
改成
#define HARD_SERVER_LIMIT 2560
保存退出编译apache
./configure –prefix=/usr/local/apache –enable-module=so –enable-module=rewrite –enable-shared=max –htdocsdir=/var/www &&
make &&
make install
#这里我们通过enable-module参数告诉设置脚本,我们需要启动so和rewrite模块,so模块是用来提DSO支持的apache核心模块,而rewrite模块则是用意实现地址重写的模块,由于rewrite模块需要DBM支持,如果在初次安装时没有编译进apache,以后需要用到时需要重新编译整个apache才可以实现。为此除非你可以确定以后不会用到rewrite模块,否则还是建议你在第一次编译的时候把rewrite模块编译好。
enable-shared=max 这个参数的作用时编译apache时,把除了so以外的所有apache的标准模块都编译成DSO模块。而不是编译进apache核心内。
好了安装apache很简单的哦,启动apache看看
/usr/local/apache/bin/apachectl start
然后用ie看http://你的服务器地址。应该能看到熟悉的apache羽毛标志。
3.安装PHP4.3.4
软件获取:http://www.php.net/downloads.php
tar zvxf php-4.3.4.tar.gz
cd php-4.3.4
./configure \
–prefix=/usr/local/php \
–with-mysql=/usr/local/mysql \
–enable-force-cgi-redirect \
–with-freetype-dir=/usr \
–with-png-dir=/usr \
–with-gd –enable-gd-native-ttf \
–with-ttf \
–with-gdbm \
–with-gettext \
–with-iconv \
–with-jpeg-dir=/usr \
–with-png \
–with-zlib \
–with-xml \
–enable-calendar \
–with-apxs=/usr/local/apache/bin/apxs
make
make install
#我这里由于服务器需要用到GD库,所以加了一些支持GD的编译参数,GD直接用了redhat自带的GD库,大家没有安装的话可以从安装盘安装,注意除了安装GD以外,还要安装libjpeg,libpng等库文件。另外–with-mysql=/usr/local/mysql指向你安装mysql的路径。–with-apxs指向apache的apxs文件的路径。
vi /usr/local/apache/conf/httpd.conf
查找
在此范围添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
然CPOPY PHP的配置文件
cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
修改php.ini文件
register_globals = On

ok!重新启动一下apache服务器
/usr/local/apache/bin/apachectl restart
然后写个php测试页info.php:内容如下
phpinfo();
?>
正常的话,应该能看到php的信息了,恭喜你的Apche+Mysql+PHP安装成功。

JSP开发环境的配置心得

0

分类 : 娱乐休闲 | 发表时间 05-04-2006

前文介绍了几种主流脚本语言开发技术的对比,本文则介绍JSP开发环境的搭建和配置的一些小小心得体会。

  做为一名从微软开发者转向JAVA开发者的一员,这里介绍的都是一些初级的开发环境配置,也属于个人的经验介绍。其实也有人可能想转向.NET平台,但根据我的使用,感觉.NET里的C#和JAVA语法极为相似,开发的成本也基本相同,但由于业界普遍认为JAVA平台是成熟的、开放的,并且支持跨平台,而.NET还没有成熟,不开放源代码,也不支持跨平台,因此转到JAVA平台个人认为是不错的选择。

  首先讲一下环境配置,注意我配置的环境是在Windows2000 Server下的,不是Linux下的,配置的大致流程和操作系统无关,仅仅是在具体的安装上有差别。而配置成功与否,与操作系统无关。

  软件安装分为以下几个部分:

  1、 Java环境安装:

  这里使用的是J2SE 1.4.2,这个可以到sun公司的网站去下载:http://java.sun.com/j2se/1.4.2/download.html 。

  为什么不用其他的版本呢?我也不清楚,不过公司里配置的标准版本就是这个版本,大概是因为兼容性的原因吧。

  下载完成后,即可安装J2SE-SDK到E:\jsk目录下。

  配置环境变量如下:

  JAVA_HOME = E:\jdk

  PATH = %JAVA_HOME%\bin;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;

  CLASSPATH = %JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;

  2、 Web Server环境安装:

  Web Server选择流行的Apache Tomcat 5.0.28,到 http://tomcat.apache.org/ 处下载,建议使用非安装的压缩版,有一点需要注意,Apache Tomcat不支持EJB,因此如果要进行EJB开发,那么就不要选择Apache Tomcat。

  解压tomcat到E:\Tomcat目录下。

  配置环境变量如下:

  TOMCAT_HOME = E:\Tomcat

  3、 IDE环境安装:

  Eclipse是目前最佳的IDE开发环境,我们公司目前统一配置的是Eclipse 3.11中文版,可以去 http://www.eclipse.org/downloads/ 下载。这个版本和后面提到的一些插件的兼容性较好。

  解压eclipse-SDK-3.1.1-win32.zip到E:\Eclipse即可使用英文原版。

  中文的安装需要先到官方网站点“3.1.1_Language_Packs”,下载NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip 和NLpack1-eclipse-SDK-3.1.1a-win32.zip两个文件。

  然后将NLpack1-eclipse-SDK-3.1.1a-win32.zip解压后生成的eclipse文件夹下的features文件夹和plugins文件夹里的内容复制粘贴到E:\Eclipse文件夹下;以同样的方法解压 NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip,将eclipse文件夹下的features文件夹里的内容也复制粘贴到E:\Eclipse文件夹下。粘贴时有同名文件的话,就让它覆盖掉原文件。

  到E:\Eclipse文件夹里,把configuration文件夹下除了config.ini 以外的的东西都删掉,最后运行eclipse.exe,就可以看到中文版的eclipse3.1.1了,汉化后一个很大的好处就是帮助全是中文的,这对我们这些新手有不少帮助。

  4、 TomcatPlugin插件安装:

  下载安装Sysdeo Tomcat插件,用来管理Tomcat服务器,提供断点调试功能,并且能自动建立Tomcat环境,修改其配置文件,是一个不错的Tomcat开发插件。

  英文原版下载地址:http://www.sysdeo.com/sysdeo/eclipse/tomcatplugin

  中文版下载地址:http://download.gro.clinux.org/beansoft/tomcatPluginV31.zip

  安装方法:

  (1).解压tomcatPluginV31.zip

  (2).将解压目录下文件夹com.sysdeo.eclipse.tomcat_3.1复制到eclipse安装目录中的plugins目录中,即E:\eclipse\plugins

  (3).启动Eclipse,启动后你将看到你的菜单上多了一个下拉项Tomcat,点击 窗口->首选项,在左边树中点击tomcat,设置tomcat version为version 5.x,设置tomcat根目录为E:\tomcat,在左边树中点击tomcat->JVM setting,设置JRE为j2sdk1.4.2。

  4、 Lomboz插件安装:

  Lomboz插件是用来编辑JSP/HTML/XML等,是一个不错的JSP编辑器,还可以支持EJB。我用的版本是Lomboz V3.1。

  下载地址: http://www.objectlearn.com ,建议下载那个Lomboz and prerequisites as one package版本。

  Lomboz的安装方法:

  (1).解压lomboz-emf-gef-jem-3.1RC2.zip

  (2).将解压目录下文件夹复制到eclipse安装目录中。

  至此,一个JAVA开发环境即搭建完毕。

  这时候就可以开始工作了。启动Eclipse,点新建-项目-JAVA-Tomcat Project,即可新建一个Tomcat下的JSP开发环境。TomcatPlugin插件会自动建立若干目录。

  此时建立的目录有:

  WEB-INF/src JavaBean的源文件是放在WEB-INF目录下,系统会自动将其编译到WEB-INF/classes目录下。

  WEB-INF/classes 编译后的类文件会被放在这个目录下。

  work 执行JSP时,编译成的servlet源文件会放在此处。

  好了,现在一切都就绪了,我们就可以进行JSP开发了。

Perl、PHP、ASP、JSP技术比较

0

分类 : 娱乐休闲 | 发表时间 05-04-2006

本文将对目前最常用的四种动态网页语言Perl(Practical Extraction and Report Language)、PHP(Hypertext Preprocessor)、ASP(Active Server Pages)、JSP(JavaServer Pages)进行一些技术性的比较。

  Perl

  Perl(Practical Extraction and Report Language)是一种很古老的脚本语言。最初的Web应用大多是用Perl编写的,Perl很像C语言,使用非常灵活,对于文件操作和处理具有和C语言一样的方便快捷。

  也正是因为Perl的灵活性和“过度”的冗余语法,也因此导致许多Perl程序的代码令人难以阅读和维护,因此使用的人在逐渐减少,并且目前有被Python替代的可能。

  另外Perl对于CPU的消耗似乎较高,效率似乎有一些不足。

  Perl开发的成功案例:

  Movable Type — 世界上使用最多的Blog系统之一,功能强大的足以和一个CMS系统相比拟。

  Awstats — 非常经典的日志系统,速度极快,功能也非常强大。

  结论:Perl在部分应用中能发挥很大优势,但其维护性差使得其普及变得很困难。

  PHP

  PHP(Hypertext Preprocessor)是一种嵌入HTML页面中的脚本语言。它大量地借用C和Perl语言的语法, 并结合PHP自己的特性,使Web开发者能够快速地写出动态产生页面。

  PHP是完全免费的开源产品,不用花钱,Apache和MYSQL也是用样免费开源,在国外非常流行,PHP和MYSQL搭配使用,可以非常快速的搭建一套不错的动态网站系统,因此国外大多数主机系统都配有免费的APACHE+PHP+MYSQL。通常认为这种搭配的执行效率比IIS+ASP+ACCESS要高,而后者的使用还必须另外交钱给微软。

  PHP的语法和Perl很相似,但是PHP所包含的函数却远远多于Perl,PHP没有命名空间,编程时候必须努力避免模块的名称冲突。一个开源的语言虽然需要简单的语法和丰富的函数,但PHP内部结构的天生缺陷导致了PHP不适合于编写比小型业余网站更大的网站。

  PHP开发的成功案例:

  MediaWiki — 著名的维基百科(Wiki)程序,如此庞大的条目居然只用PHP+MYSQL就能够支持,真是不可思议。

  WordPress — 著名的Blog系统,功能上丝毫不输于Movable Type,不少用户都纷纷从Movable Type转移到了WordPress。

  结论:PHP因为结构上的缺陷,使的其只适合编写小型的网站系统。

  ASP

   ASP(Active Server Pages)微软的Windows IIS系统自带的脚本语言,利用它可以执行动态的Web服务应用程序。ASP的语法非常类似Visual BASIC,学过VB的人可以很快上手,ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。

  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

  ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。

  不过,正因为ASP很简单,所以单纯使用ASP所能完成的功能也是有限的,好在COM(Component Object Model)技术拯救了ASP,微软提供了COM/DCOM技术,极大拓宽了ASP的应用范围,使得ASP几乎具有无限可扩充性。

  结论:ASP简单而易于维护,是小型网站应用的最佳选择,通过DCOM和MTS技术,ASP甚至还可以完成中等规模的企业应用。

  JSP

  JSP(JavaServer Pages)是Sun公司推出的一种动态网页技术。JSP技术是以Java语言作为脚本语言的,熟悉JAVA语言的人可以很快上手。

  JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。

  JSP在技术结构上有着其他脚本语言所没有的优势:JSP可以通过JavaBean等技术实现内容的产生和显示相分离,并且JSP可以使用JavaBeans或者EJB(Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理,进而完成企业级的分布式的大型应用。

  因此,不少国外的大型企业系统和商务系统都使用JSP技术,作为采用Java技术家族的一部分,JSP技术也能够支持高度复杂的基于Web的应用。

  结论:对于脚本语言来讲,JSP还是拥有相当大的优势的,虽然其配置和部署相对其他脚本语言来说要复杂一些,但对于跨平台的中大型网站系统来讲,基于JAVA技术的JSP(结合JavaBean和EJB)几乎成为唯一的选择。

Java学习从入门到精通

0

分类 : 系统安全 | 发表时间 23-03-2006

Java Learning Path (一)、工具篇

一、 JDK (Java Development Kit)

JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

1、 JDK的下载和安装
JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html ;,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:http://java.sun.com/j2se/1.4.2/download.html。

下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。这样JDK就安装好了。

2、 JDK的命令工具
JDK的最重要命令行工具:
java: 启动JVM执行class
javac: Java编译器
jar: Java打包工具
javadoc: Java文档生成器
这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。

二、 JDK Documentation

Documentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。

三、 应用服务器(App Server)

App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:

1、 Tomcat
Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:

Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:http://jakarta.apache.org/tomcat/ ;,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/ ;。

下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:

JAVA_HOME=C:\j2sdk1.4.2
CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录

这样就安装好了,启动Tomcat运行CATALINA_HOME\bin\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。

Tomcat提供了两个Web界面的管理工具,URL分别是:
http://localhost:8080/admin/index.jsp ;
http://localhost:8080/manager/html ;
在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\conf\tomcat-users.xml这个文件,加入如下几行:





这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。

2、 BEA Weblogic
Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,Weblogic的在线文档:http://edocs.bea.com/ ;。

3、 IBM Webshpere
Websphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ;,Websphere的下载连接:http://www7b.software.ibm.com/wsdd/downloads/WASsupport.html ;。

4、 Jboss
Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:http://www.jdon.com/idea.html ;

四、 Java应用的运行环境

Java的应用可以简单分为以下几个方面:

1、 Java的桌面应用
桌面应用一般仅仅需要JRE的支持就足够了。

2、 Java Web应用
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
Browser层:浏览器显示用户页面
Web层:运行Servlet/JSP
DB层:后端数据库,向Java程序提供数据访问服务

3、 Java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
Browser层:浏览器显示用户页面
Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
Web层:运行Servlet/JSP
EJB层:运行EJB,完成业务逻辑运算
DB层:后端数据库,向Java程序提供数据访问服务

4、 Java嵌入式应用
Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。

Java Learning Path(二)、书籍篇

学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。

在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。

对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。

对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《
Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

在所有的Java书籍当中,其实最最有用的,并不是O’reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。

对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O’reilly的《Java Server Pages 》这本书来学习Web 编程。

EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。

但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。

如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。

在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。

Java Learning Path(三)过程篇

每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。

学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。

第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。

第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。

第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;

这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O’reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。

对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That’all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。

第五步,通过

htaccess文件使用大全

0

分类 : 美文美景 | 发表时间 17-03-2006

Apache系统中的.htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

  子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。

  .htaccess必须以ASCII模式上传,最好将其权限设置为644。

  错误文档的定位

  常用的客户端请求错误返回代码:
  401 Authorization Required
  403 Forbidden
  404 Not Found
  405 Method Not Allowed
  408 Request Timed Out
  411 Content Length Required
  412 Precondition Failed
  413 Request Entity Too Long
  414 Request URI Too Long
  415 Unsupported Media Type

  常见的服务器错误返回代码:
  500 Internal Server Error

  用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:

  ErrorDocument 404 /errors/notfound.html
  ErrorDocument 500 /errors/internalerror.html

  一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:

  ErrorDocument 错误代码 /目录名/文件名.扩展名

  如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:

  ErrorDocument 401 “你没有权限访问该页面,请放弃!”

  文档访问的密码保护

  要利用.htaccess对某个目录下的文档设定访问用户和对应的密码,首先要做的是生成一个.htpasswd的文本文档,例如:

  zheng:y4E7Ep8e7EYV

  这里密码经过加密,用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下,建议放在www根目录文档之外,这样更为安全些。

  有了授权用户文档,可以在.htaccess中加入如下指令了:

  AuthUserFile .htpasswd的服务器目录
  AuthGroupFile /dev/null (需要授权访问的目录)
  AuthName EnterPassword
  AuthType Basic (授权类型)

  require user wsabstract (允许访问的用户,如果希望表中所有用户都允许,可以使用 require valid-user)

  注,括号部分为学习时候自己添加的注释

  拒绝来自某个IP的访问

  如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。

  例如:

  order allow,deny
  deny from 210.10.56.32
  deny from 219.5.45.
  allow from all

  第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.5.45.0~219.2.45.255

  想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。

  保护.htaccess文档

  在使用.htaccess来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:

  order allow,deny
  deny from all

  URL转向

  我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:

  Redirect /旧目录/旧文档名 新文档的地址

  或者整个目录的转向:

  Redirect 旧目录 新目录

  改变缺省的首页文件

  一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件名,比如在pmwiki中是pmwiki.php。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:

  DirectoryIndex 新的缺省文件名

  也可以列出多个,顺序表明它们之间的优先级别,例如:

  DirectoryIndex filename.html index.cgi index.pl default.htm

  防止盗链

  如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。

  所需要的指令如下:

  RewriteEngine on
  RewriteCond %{ HTTP_REFERER } !^$
  RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
  RewriteRule .(gif&line;jpg)$ – [F]

  如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代替:

  RewriteEngine on
  RewriteCond %{ HTTP_REFERER } !^$
  RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
  RewriteRule .(gif&line;jpg)$ http://www.mydomain.com/替代图片文件名 [R,L]

无觅相关文章插件,快速提升流量