win2008安装iis7支持asp以及不显验证码的解决

0

分类 : 网络日志 | 发表时间 03-04-2008

用了几个可以替代asp的小工具,来调试zblog1.8的升级,发现不行,首先登陆后台就出错,不管是netbox还是babyweb,另外那个SimpleHttpSvr不晓得怎么用,估计也是在这个环境下,zblog需要的控件达不到要求,因此不能正常调试;本想在apache下面调试ChiliASP,但发现也比较麻烦,并且ChiliASP看似也被sun收购了,输入www.chilisoft.com转向的是有关Sun Java System Active Server Pages 4.0的页面,考虑了一下,算了,还是用win2008的iis吧!

早就听说iis7很厉害了,不仅在组件安装控制上,还是在安全性方面较之iis6和iis5有了很大的质的飞跃,并且扬言会对apache市场产生很大的打击;在win2008安装iis7较之在win2003中略为不同,以前是在添加/删除组件中来添加应用程序服务器,在win2008中安装iis7,刚在要打开服务器管理器,角色,添加角色(win2008中的很多应用都被看作是角色了),在弹出的窗口中,选择“web服务器iis”,下一步,详情中记着选择你要的服务,asp.net以及asp等(默认是没有选择asp的),有选择时会提醒添加某些组件,全部选是,然后下一步直接安装,会显示安装、正在激活等,直至最后,安装完成。安装完成以后,会在角色管理中,看到web服务器(iis),并且可看到角色状态以及角色服务,我的是呈现了17个服务,有箭头标志是否是已安装或未安装状态。

然后点击开始、所有程序,管理工具,就可以看到inter信息服务(iis)管理器,打开后看可以以你计算机命名的默认网站,打开目录至到“default web site”,右侧会有很多相关的分组项,右侧点击各分组项时会发现很多快捷功能,比如打开功能等,重要的“启用父路径”,就是在asp的右键打开功能里面启用的,设置默认文档等。在最右侧的操作中,可以打开基本设置,来定义网站的物理路径,并且可以测试连接以及设定特定的连接用户。在绑定位置可以设置绑定域名等。这里不再多说,有兴趣的可以多打开功能看下。另外,不知道是否与此有关,我在安装目录的权限安全里,把iis_users这个用户加上了。这样asp网站就可以正常运行了,至于如果要用到正规服务器,商业应用,那就要对整个服务器的安全权限、iis的安全权限来做特别针对win2008以及iis7的详细设置了。这个以后再专门讨论。

定义好网站目录后,登陆http://localhost/login.asp,打开正常,不像刚才有那些所谓的替代iis中asp的小工具时,打开此页面时就会提示错误,虽然打开正常,但还有一个问题,就是验证码一直不能正常显示,难道还是组件的问题?或者是以前的那个所谓的xp以及2003无法显示验证码的问题?依照着做了以后,还是验证码显示不出来;到zblog论坛去看了看,发现没有去掉验证码功能的方法,并且还有说如果去掉,会引起zblog很大的bug,安全方面吧,呵!到百度和gg上面搜索“iis7 验证码”,也没有相关的问题。奇怪了。突然看到一例因为“没有启用父路径”而引起的验证码问题,是不是这个原因呢?iis6默认安装中没有启用父路径,iis7可能也是默认安装后不启用父路径,于是就到网站管理中,打开中间界面的“asp”分组,把有关“启用父路径”那一项由“false”设置为“true”,然后点击最上层,应用即可。再次打开zblog的后台登陆界面,验证码终于正常显示出来了。至此成功。

新的操作系统以及新的管理组件,是需要有一个全新的学习过程,这也是我为什么这么早安装win2008的原因,虽然它整天显示激活剩余56天,让人担心不已,但在研究、探索的过程中获得新的管理经验,这是比什么都重要的。欢迎大家参与讨论。

httperr日志大量503错误的一些解决思路

0

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

还是昨天发现的那个问题,今天发现dz论坛又不能访问了,然后访问了一下其他应用程序池的站,访问正常,说明dz论坛所在的应用程序池,估计又死了。看来,昨天的解决方案,不妥。

登陆服务器,果然,该应用程序池,已经连着有三个了,前两个还没有正常关闭,第三个也已经二百多M了,吓人;马上结束掉这几个应用程序池,然后到iis管理里面,停止这个应用程序池,之后直接到httperr目录里面,查看iis错误日志,马上又发现了很多“虚拟股市”引起的日志错误,大篇的,很长;开启应用程序池,到后台关闭掉插件“虚拟股市”,然后观察了下应用程序池,发现比较平稳,论坛反应速度比较快,比较正常,cpu虽然还是有些高,但算正常。

一边观察服务器的状态,一边再次查看了下最近的错误日志,发现有很多503的错误,搜索一下网络吧;网上有人发贴说可能与应用程序池的进程回收设置有关,建议把应用程序池的回收属性页的所有回收选项都禁用,理由是如果没有发现内存泄漏,线程刮起等现象的话应该就不需要设置进程回收。

现在不确定503错误到底是不是和进程回收有关系,如果禁用进程回收设置会不会缓解这个问题,会不会引起更严重的错误。就是如果一个web应用程序用着用着就莫名其妙的出错了,而查不到原因,而重启IIS或者重启应用程序池就缓解了,这时候就设置一下达到一定条件进行进程回收,但只是暂时的解决方案,最终应该找到原因并修复应用程序。

IIS帮助里也明确说明了设置进程回收的场景,而且说重叠回收中不会断掉tcp链接,会自动把请求平滑过度到新进程中,也就是这个过程中不会引起服务不可用,也就是503错误。

所以我也比较倾向于关掉进程回收选项

为应用程序池 ‘DefaultAppPool’ 提供服务的进程关闭时间超过了限制。进程ID是,IIS6.0经常假死(里面的观点不要无理由地打开回收工作进程和使用工作进程池。一般理由通常是有不明原因的内存泄露、线程挂起等)
http://hi.baidu.com/nayinian/blog/item/468c900fce94dcecab6457f7.html

为应用程序池 ‘DefaultAppPool’ 提供服务的进程关闭时间超过了限制。进程ID是,IIS6.0经常假死,经常有这样的提示:

事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 1013
日期: 2004-7-26
事件: 16:01:51
用户: N/A
计算机: COM-NET
描述:
为应用程序池 ‘DefaultAppPool’ 提供服务的进程关闭时间超过了限制。进程 ID 是 ’2552′。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

相信这是由于不正确地设置了回收进程导致,建议关闭下列进程回收设置:
回收工作进程(分钟):1200
回收工作进程(请求数目):10000
启用CPU监视,最大CPU使用率:90%

这三种情况,恰恰我都设置了。依次所说,干脆把这有关回收的项目,全部关闭了,由服务器自已管理应用程序池的内存应用状况。

由于设定了进程自动回收,而当每达到10000次点击,或CPU超过100%,就会强行回收application,导致客户端会出现Sevice Unavailable的错误。(实际上10000次点击,访问量一般的网站,几分钟就够了。) 建议启用计数器日志来监视CPU利用率和asp.net的指标,可以帮助你定位每5~10分钟出现一次是否是上述原因导致。

另外,不要无理由地打开回收工作进程和使用工作进程池。一般理由通常是有不明原因的内存泄露、线程挂起等

回收工作进程相关说明(win2003安装iis在ie里键入下面的地址,里面介绍了启用进程回收的时机及重叠回收的概念)
mk:@MSITStore:C:\WINDOWS\Help\iismmc.chm::/htm/ca_recycwrkrprocess.htm

错误定义:503:“服务不可用”错误是一个非自定义的错误,该错误表示服务器当前无法处理该请求

原因:

1、管理员可能关闭应用程序池以执行维护。
2、当请求到达时应用程序池队列已满。
3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组
4、应用程序池启用了CPU监视,并且设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭
5、应用程序池的性能选项卡的请求队列限制所填的数值太小,默认为1000,可修改成一个更大的值,比如说4500.
6、web.config的system.web/httpRuntime节点的appRequestQueueLimit属性设置的值太低。

排查思路:

1、先检查C:\WINDOWS\system32\LogFiles\HTTPERR\httperr1.log,看里面有没有503错误,503错误是不会记录到C:\WINDOWS\system32\LogFiles\W3SVC1下的,如果503那一行有AppShutdown字样,肯能是由于CPU占用率太高导致自动关闭应用程序池。如果是AppOffline可能是由于应用程序标识出错引起的,如果是Disabled可能是由于管理员手工关闭应用程序池引起的。根据这些信息然后再采取响应措施。
2、根据原因5和原因6来设置更大的请求队列数目。
3、禁用所有应用程序池回收选项。
4、添加ASP.NET\Requests Current,ASP.NET\Requests Queued两个计数器,查看IIS的请求数和队列数。

更多内容,可至此查询:

相关链接:

TechNet V播:HTTP503故障排除(里面提到的可能性不打)
http://www.microsoft.com/china/technet/vcast/live/episode.aspx?newsID=class01_022
\\CXZ.amigo.bjmcc.net\input\503.wmv
IIS 状态代码(里面提到iis状态码及可能原因,其中包括503)
http://support.microsoft.com/kb/318380
如果 AppPoolQueueLength 值是否太低 " HTTP 503 服务不可用 " 错误消息(如果网站访问量比较大也许是这个原因)
http://support.microsoft.com/kb/816995/zh-cn
http://support.microsoft.com/kb/816995/en
FIX: ASP.NET 队列请求太多(该问题是asp.net 1.0的bug,已经有hotfix修复)
http://support.microsoft.com/kb/822148/zh-cn
http://support.microsoft.com/kb/822148/en
<httpRuntime appRequestQueueLimit> 元素(文中提到如何通过配置文件来设置应用程序请求的最大数目)

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpgenref/html/gngrfhttpruntimesection.asp

客户端请求收到“503:服务不可用”错误(阐述503定义、可能原因及问题排查)
http://technet2.microsoft.com/WindowsServer/zh-CHS/Library/
IIS 6.0入门及进阶webcast(有IIS排错系列)
https://www.microsoft.com/china/technet/webcasts/class/iis.mspx
大家是不是也常遇到服务器不可用啊?Service Unavailable(博客园的一群人讨论503的原因及应该采取的措施)
http://www.cnblogs.com/birdshome/archive/
为应用程序池 ‘DefaultAppPool’ 提供服务的进程关闭时间超过了限制。进程ID是,IIS6.0经常假死(里面的观点不要无理由地打开回收工作进程和使用工作进
程池。一般理由通常是有不明原因的内存泄露、线程挂起等)
http://hi.baidu.com/nayinian/blog/item/
回收工作进程相关说明(win2003安装iis在ie里键入下面的地址,里面介绍了启用进程回收的时机及重叠回收的概念)
mk:@MSITStore:C:\WINDOWS\Help\iismmc.chm::/htm/ca_recycwrkrprocess.htm

上述内容摘自:http://www.cnblogs.com/onlytiancai/archive/2007/06/03/769309.html

在IIS 6.0中,记录日志的功能已经改为由http.sys实现,http.sys在内核模式下运行。这一改进加快了日志写入速度,同时避免了多个工作进程争用同一日志文件。某些特殊的情况下,http.sys会遇到错误,这时它应该但却不能将日志信息写入Web网站的日志,例如,工作进程正在被回收,禁止http.sys处理用户请求,或者用户试图连接到服务器,但请求中只提供了IIS所需信息的一部分。如果出现这类情况,http.sys将把事件写入一个新的日志文件httperr.log。

  在排解故障、优化IIS 6.0的过程中,httperr.log日志文件是十分重要的。默认情况下,httperr.log文件保存在\system32\logfiles目录,但可以修改,修改方法是找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters注册子键,在它下面添加一个名为ErrorLoggingDir的字符串值,在ErrorLoggingDir中设置保存日志文件的完整路径。在httperr.log日志文件中可以找到的信息包括:所有的503(服务不可用)错误,空闲连接超时,解析URL时出现的各种错误,最后10个提交给失败的应用程序池的请求。

  IIS 6.0还拥有一种称为二进制日志的功能,启用这个功能后,IIS 6.0将把Web网站的所有日志信息写入一个二进制格式的日志文件,日志文件的扩展名是.ibl。要启用二进制日志功能,只要把配置文件的W3SVCC/CentralBinaryLoggingEnabled条目设置成ture(1)即可。对于ISP来说,这个功能应该非常有用。ISP的每台机器上可能有1000甚至更多的Web网站,如果每个Web网站每天生成一个日志文件,日志文件的总数很快会达到一个天文数字。微软最近发布的Log Parser 2.2工具能够读取二进制日志文件并生成报告,这个工具可以Log Parser 的最新版本(2.2 版)下载。Log Parser 2.2还能够读取前面介绍的httperr.log文件并生成报告。如果这个直接下载链接不行,就还是从上面这个链接开始下吧。http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=890cd06b-abf8-4c25-91b2-f8d975cf8c07&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2ff%2f1%2fff1819f9-f702-48a5-bbc7-c9656bc74de8%2fLogParser.msi

  从很久以前开始,IIS就允许指定本地服务器上保存日志文件的目录了。不过,虽然IIS 5.0和IIS 4.0的IIS管理器允许在指定日志文件路径的时候输入一个远程服务器的通用命名规范(UNC)的路径,但Web服务器实际上不会把日志保存到远程服务器。只有IIS 6.0才真正支持日志文件路径的UNC路径名。

Log Parser 确实是一种非常酷的小实用工具,它解决了一些非常棘手的脚本启动问题。我们仍然不知道分析 SQL Server 日志有什么用,但是我们知道 Log Parser 的最新版本(2.2 版)能做以下事情:

• 搜索事件日志,快速找到并报告所关注的事件。

• 搜索文件系统,快速找到并报告所关注的文件和文件夹。

• 搜索 Active Directory,快速找到并报告所关注的对象。

• 搜索各种各样的日志文件。例如,Log Parser 能够搜索使用 W3C 扩展日志文件格式的日志。使用此格式的日志包括:个人防火墙日志;Microsoft Internet Security and Acceleration (ISA) Server 日志;Windows Media Services 日志;Exchange 跟踪日志;简单邮件传输协议 (SMTP) 日志文件。

• 快速而轻松地搜索 Internet 信息服务 (IIS) 日志、Netmon 捕获文件、注册表等多种文件。

这些功能还占不到它的全部功能的一半呢。Log Parser 使用一种真正的 SQL 查询语言,这意味着您可以执行聚合查询。想知道您的事件日志中的各种事件 ID 类型的数量(三十七个事件 100、四十三个事件 101、十四个事件 102)吗?没问题,Log Parser 能够胜任这项工作。当然,它还可以胜任很多很多其他工作。您可以使用一个 SQL 命令(例如“ORDER BY”)来以您需要的任何方式对返回数据进行排序,也可以使用“TOP”来仅返回若干最“如何如何”的记录(例如,您的硬盘上的 10 个最大的文件)。您可以从命令提示符下运行 Log Parser 2.2,也可以将其作为一个可编写脚本的 COM 对象 (MSUtil.LogQuery) 进行调用。

更多详细的功能示例我就不多说了,我要去安装测试去了,有意的到这个阿sir这里慢慢欣赏吧:有了 Log(即 Log Parser)就万事大吉了http://hi.baidu.com/totaobao/blog/item/c922a3649e3750f1f636542c.html

log parser2.2的详细情况及如何动作等功能,也可关注微软专贴:http://www.microsoft.com/china/technet/community/columns/profwin/pw0505.mspx

IIS应用程序池假死、自动重启以及iis权限等解决办法

1

分类 : 网站技术 | 发表时间 11-12-2007

网络上有关iis的问题和相关解决方案,多不胜搜,但很多都比较零散,没有系统的解决方案;另外,有些解决方法,似是而非,不能找到其中的问题关键点,本人平时对于服务器的应用上也有点实践,因此,今天稍稍总结一点平时遇到地问题和解决方法,特别是对iis的特殊权限引起问题、iis应用程序池假死问题和比较罕见的iis重启命令和自动重启办法。其它相关问题,继续关注本博。

一、2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。

1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关系不是很大)

2:从IIS6.0开始CPU资源都在应用池里面限制了,不象以前的IIS.5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。

(1):你限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。
出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。

(2):内存限制 在IIS6.0应用池上面有虚拟内存和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。

3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。

4:就是ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至sqlserver数据库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等博客程序,都支持生成静态功能.

5:不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。

6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。

7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。

8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;
查看iis的应用程序池,状况提示为:未指定错误,同时应用程序池自动停止运行

用事件查看器查看系统错误日志,发现如下提示:
———————————–
应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 权限授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。

解决方法,给NETWORK SERVICE 加上访问iis服务的权限,具体方法如下:

点击“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项,
选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORK SERVICE ”,给该帐号赋予“本地启动”和“本地激活”的权限,重新启动IIS之后再访问同一站点,则一切正常。

9:重启IIS中的特定应用程序池命令和自动重启的方法

在操作系统是Windows server 2003 SP1+的情况下,可以用以下命令部分重启IIS应用程序池:

cscript.exe c:\windows\system32\iisapp.vbs /a "DefaultAppPool"

其中/a 代表alternatively,"DefaultAppPool"代表应用程序池的实例名。如果要设置自动重启这个应用程序池,可以尝试放在批处理中,用计划任务调用此批处理即可。很多人觉得计划任务不安全,都要禁掉,事实上,计划任务的不安全是建立在其它方面不安全的前提上的,如果由于其它方面的不安全,被放入执行程序,计划任务执行,这和计划任务没有直接关系。当然,关掉,是会减少一些安全隐患,这是不错。

IIS监控–自动重启脚本工具

0

分类 : 技术文摘 | 发表时间 18-03-2007

功能:可以在IIS意外终止时自动重启IIS,无须登陆系统,无人职守
条件:
1.服务器安装过Windows Script 5.6,可以正常运行.vbs脚本。
2.确保系统服务Windows Management Instrumentation 正常启动。

将以下代码复制为 fu.vbs,放至系统盘WINNT/System32/下,注意重命名时要和“cscript //h:cscript&&cscript fu.vbs” 中的fu.vbs保持一至,否则计划任务启动时报找不到文件的错误。
然后做计划任务,让其在系统启动时运行监控
vbs代码:

程序代码

strFullName = WScript.FullName
strWshHost = Right(strFullName, 11)
‘WScript.Echo "Default script host: " & strWshHost
If strWshHost = "WScript.exe" Then
Set objShell = CreateObject("WScript.Shell")
objShell.Run _
"%comspec% /k ""cscript //h:cscript&&cscript fu.vbs""", _
MAXIMIZE_WINDOW
If Err.Number <> 0 Then
WScript.Echo "Error 0x" & hex(Err.Number) & " occurred. " & _
Err.Description & ". " & VbCrLf & _
"Could not temporarily change the default script host to Cscript."
Err.Clear
WScript.Quit
End If
WScript.Quit
End If
‘—-上面这段代码是强制到cscript命令行,一般要在cmd命令行下输入cscript *.vbs,如果直接执行vbs会用wscript打开,这样只会弹个对话框,我不喜欢,有不想每次都cscript,所以要写点额外的代码,双击后会调用一个wscript执行csript,然后再消灭自己,幸好微软的网站上提供了这个代码—————————— ——
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel= impersonate, (Security)}!\\" & strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("Select * from __instancecreationevent where TargetInstance isa’Win32_NTLogEvent’ and TargetInstance.EventCode = ’7031′ ")
Wscript.Echo "开始监视iis于 "&now
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo "重新启动iis "&now
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%COMSPEC% /c IISRESET.EXE",,1
‘——核心程序

whichfile=("iisresetlog.htm")
set fso=createobject("Scripting.FileSystemObject")
if Not fso.FileExists(whichfile) then
iomode=2 : create=true
‘Set MyFile = fso.CreateTextFile(whichfile,True)
else
iomode=8 : create=false
‘Set MyFile = fso.CreateTextFile(whichfile)
end if
set MyFile = fso.OpenTextFile(whichfile,iomode,create)
‘MyFile.writeLine("事件发生于 "&now&" 重启iis成功"&vbctrf)
if create=true then
MyFile.WriteLine ""
MyFile.WriteLine ""
MyFile.WriteLine ""
MyFile.WriteLine ""
MyFile.WriteLine ""
MyFile.WriteLine ""
end if
MyFile.WriteLine " iis重启时间: <font color=red>" &now& "</font>"
‘MyFile.WriteLine " 是否成功: 是 <>"
MyFile.WriteLine "<br>"
MyFile.WriteLine " "
MyFile.Close
set fso=nothing
Loop
‘—–用fso记录iis 重启日志。

注意:TargetInstance.EventCode = ’7031′ 这段代码控制了在什么情况下重启IIS,7031是系统的事件 ID代号,即当系统日志出现7031这样的事件时重启IIS。
下面是系统7031事件描述:IIS Admin Service 服务意外地终止,这种情况已经出现了 1 次。以下的修正操作将在 1 毫秒内运行: 运行配置的故障恢复程序。
同样的道理,可以根据不同的事件ID触发此脚本,修改objShell.Run "%COMSPEC% /c IISRESET.EXE",,1 这一行代码,可以执行任何win32所支持的程序,即可以根据任意事件触发执行任意的程序,那样用途更广了。

另:
%comspec%打开一个命令行窗口。%comspec% 是一个指向当前命令行外壳的环境变量。通过使用 %comspec%,您不必担心命令行外壳是 cmd.exe 还是 command.exe;%comspec% 会自动选择正确的一个。

/k 在调用 Dir 命令后,确保窗口始终保持打开。这就是 /k 参数的用处。如果我们想要确保命令窗口会在 Dir 命令调用完成后被自动关闭,应该将 /k (keep) 修改为 /c (close)。

安全基础之IIS6 的 PHP 最佳配置方法

0

分类 : 技术文摘 | 发表时间 03-01-2007

虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP、ASP、ASP.NET、JSP、Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 IIS 6 最好。网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。

这里所说的升级,是指从某个 php4 版本升级到另一个 php4 版本,或者从某个 php5 版本升级到另一个 php5 版本,而不是指从 php4 升级到 php5。

准备:

1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。

2、下载 windows 版的 PHP 二进制压缩包。

安装:

解压缩 PHP 二进制压缩包到 C:\php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,如果系统盘是 D: 盘,则解压缩到 D:\php 目录下,以此类推,下同)。

然后打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:

C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;

将 php.ini-dist 或 php.ini-recommended 复制到 C:\Windows 目录下,并改名为 php.ini,一般正式发布网站的服务器用 php.ini-dist,而作为调试用的服务器用 php.ini-recommended 更好。当然一般情况下,这个 php.ini 还是需要根据实际情况来修改的。

下面来介绍一下几个必要的修改选项:

extension_dir = "C:\php\extensions"

这个是 PHP 扩展所放置的目录,请确保跟你实际安装的目录相同。

extension=php_mbstring.dll
;extension=php_big_int.dll
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
extension=php_pgsql.dll
;extension=php_printer.dll
extension=php_shmop.dll
;extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll

上面这些,开头没有加分号的是打开的扩展,加了分号的是没有打开的扩展。上面的设置包含了在 Windows 2003 上默认安装情况下可以打开所有扩展(这里列出的是 php 4 的)。

session.save_path = c:\sessions

这 个是 session 文件默认保存的目录,这个目录必须是一个存在的目录,不然默认的 session 功能会无效。我这里设置的是一个 ramdisk 上的一个目录。将 session.save_path 设置在 ramdisk 上可以加快 session 处理的速度。如果你没有安装 ramdisk,你可以把它指定到其他盘的任何一个目录下,如 C:\sessions 目录、C:\Windows\Temp 目录等。

好了,基本工作做完,现在该配置 IIS 了。

打开“ Internet 信息服务(IIS)管理器”,在“ Web 服务扩展”里,选择“添加一个新的 Web 服务扩展”,扩展名可填写“PHP ISAPI 扩展”,要求的文件选择:C:\php\sapi\php4isapi.dll(如果安装的是 PHP5,则此处是 C:\php\sapi\php5isapi.dll,下同),并设置扩展状态为允许。

打开“网站”->“属性”->“ISAPI 筛选器”->“添加”,筛选器名称可填写“PHP”,可执行文件仍然选择 C:\php\sapi\php4isapi.dll。

打 开“网站”->“属性”->“主目录”->“应用程序设置”->“配置”->“应用程序扩展”-> “添加”,可执行文件还是选择 C:\php\sapi\php4isapi.dll。扩展名填写“.php”,动作限制为“HEAD,GET,POST”。

打开“网站”->“属性”->“文档”->“启用默认内容文档”->“添加”,可以将 index.php 添加为默认内容文档。

然后选择“服务器机器名”->“所有任务”->“重新启动 IIS”来重启 IIS。

测试

在默认网站发布目录下,建立一个测试页面:

下载:phptest.php

<?php
phpinfo();
?>

如果打开这个页面能够看到 php 安装配置信息,就算是安装成功了。

如果想要更优化的执行 php 程序,可以安装 ZendOptimizer-2.6.0-Windows-i386.exe ,这个东西安装非常简单,这里就不介绍了。

升级

现在升级就非常简单了。只需要将新版本的 PHP 二进制压缩包下载下来,将原来的 C:\php 目录删除,将新版本解压缩到 C:\php 目录中,然后重新启动一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 目录中复制任何文件。

iASP(让linux支持asp的好东东)

0

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

http://www.linuxeden.com/download/data/soft/1083.html

我曾经发布过一个让apache支持asp的东西,但是那是perl的一个扩展,是类asp,并不兼容ms的asp,所以意义不大

我 很不甘心,今日我在浏览我的光盘时偶尔发现一个东东,就是这个,竟然完美的 支持了 ms的asp将asp真正意义上移植到了unix/linux上,我获取了最新版本2.11,经过半个小时的努力我终于在我的linux上完美的 运行了一个动网asp论坛。而且速度还很快。
Instant ASP Developer Edition 2.1.1

Instant ASP产品是微软ASP 环境的代替和功能扩展,它解决了ASP平台的局限问题,从而使ASP能够跨平台运行。该产品的口号是:“ASP Anytime, Anywhere”。它能够在Unix/Linux、Windows9x/NT workstation/NT Server、Novell Netware上运行,支持的 WEB SERVER 包括:Apache (Windows & UNIX)、 MS Internet Information Server (IIS)、Sun Web Server、Java Web Server、 Netscape FastTrack、Netscape Enterprise Server、IBM WebSphere、Zeus。 使用IASP 的前提是您的系统上必须已经安装了JDK 1.1以上版本。这个版本适用于全部的UNIX系统。

本地下载   远程下载 

虚拟主机IIS的一些防范入侵方法

0

分类 : 技术文摘 | 发表时间 14-10-2006

  1.如何让asp脚本以system权限运行?

  修改你asp脚本所对应的虚拟目录,把"应用程序保护"修改为"低"….

  2.如何防止asp木马?

  基于FileSystemObject组件的asp木马

  cacls %systemroot%\system32\scrrun.dll /e /d guests //禁止guests使用

  regsvr32 scrrun.dll /u /s //删除

  基于shell.application组件的asp木马

  cacls %systemroot%\system32\shell32.dll /e /d guests //禁止guests使用

  regsvr32 shell32.dll /u /s //删除

  3.如何加密asp文件?

  从微软免费下载到sce10chs.exe 直接运行即可完成安装过程。

  安装完毕后,将生成screnc.exe文件,这是一个运行在DOS PROMAPT的命令工具。

  运行screnc – l vbscript source.asp destination.asp

  生成包含密文ASP脚本的新文件destination.asp

  用记事本打开看凡是""之内的,不管是否注解,都变成不可阅读的密文了

  但无法加密中文。

  4.如何从IISLockdown中提取urlscan?

  iislockd.exe /q /c /t:c:\urlscan

  5.如何防止Content-Location标头暴露了web服务器的内部IP地址?

  执行

  cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/UseHostName True

  最后需要重新启动iis

  6.如何解决HTTP500内部错误?

  iis http500内部错误大部分原因

  主要是由于iwam账号的密码不同步造成的。

  我们只要同步iwam_myserver账号在com+应用程序中的密码即可解决问题。

  执行

  cscript c:\inetpub\adminscripts\synciwam.vbs -v

  7.如何增强iis防御SYN Flood的能力?

  Windows Registry Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

  启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后

  安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值

  设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。

  "SynAttackProtect"=dword:00000002

  同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态

  的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。

  "TcpMaxHalfOpen"=dword:00000064

  判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。

  "TcpMaxHalfOpenRetried"=dword:00000050

  设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。

  项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。

  微软站点安全推荐为2。

  "TcpMaxConnectResponseRetransmissions"=dword:00000001

  设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。

  "TcpMaxDataRetransmissions"=dword:00000003

  设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。

  "TCPMaxPortsExhausted"=dword:00000005

  禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的

  源路由包,微软站点安全推荐为2。

  "DisableIPSourceRouting"=dword:0000002

  限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。

  "TcpTimedWaitDelay"=dword:0000001e

  8.如何避免*mdb文件被下载?

  安装ms发布的urlscan工具,可以从根本上解决这个问题。

  同时它也是一个强大的安全工具,你可以从ms的网站上获取更为详细的信息。

  9.如何让iis的最小ntfs权限运行?

  依次做下面的工作:

  a.选取整个硬盘:

  ystem:完全控制

  administrator:完全控制

  (允许将来自父系的可继承性权限传播给对象)

  .\program files\common files:

  everyone:读取及运行

  列出文件目录

  读取

  (允许将来自父系的可继承性权限传播给对象)

  c.\inetpub\wwwroot:

  iusr_machine:读取及运行

  列出文件目录

  读取

  (允许将来自父系的可继承性权限传播给对象)

  e.\winnt\system32:

  选择除inetsrv和centsrv以外的所有目录,

  去除“允许将来自父系的可继承性权限传播给对象”选框,复制。

  f.\winnt:

  选择除了downloaded program files、help、iis temporary compressed files、

  offline web pages、system32、tasks、temp、web以外的所有目录

  去除“允许将来自父系的可继承性权限传播给对象”选框,复制。

  g.\winnt:

  everyone:读取及运行

  列出文件目录

  读取(允许将来自父系的可继承性权限传播给对象)

  h.\winnt\temp:(允许访问数据库并显示在asp页面上)

  everyone:修改

  (允许将来自父系的可继承性权限传播给对象)

  10.如何隐藏iis版本?

  一个黑客可以可以轻易的telnet到你的web端口,发送get命令来获取很多信息

  iis存放IIS BANNER的所对应的dll文件如下:

  WEB:C:\WINNT\SYSTEM32\INETSRV\W3SVC.DLL

  FTP:C:\WINNT\SYSTEM32\INETSRV\FTPSVC2.DLL

  SMTP:C:\WINNT\SYSTEM32\INETSRV\SMTPSVC.DLL

  你可以用16进制编辑器去修改那些dll文件的关键字,比如iis的Microsoft-IIS/5.0

  具体过程如下:

  1.停掉iis iisreset /stop

  2.删除%SYSTEMROOT%\system32\dllcache目录下的同名文件

  3.修改

合租服务器大解密

0

分类 : 业界动态 | 发表时间 15-06-2006

作者:aileenguan
来源:绿光互联(http://www.phpidc.net)

搞合租也算是有些时间了,经历了一些,也有一些经验和感触,愿意拿出来跟朋友们分享。请注意,在这里,只是用经验,用事实,用监测说话,而且是在大量机器基础上得出的结论。

1.首先要解释一个带宽的问题。
有人号称服务器100Mb带宽,却不肯提共享两个字。事实上,独占一条100Mb带宽每个月的费用都得在千元左右,这样,仅仅是带宽一年都得上万的费用。所以一般的IDC是不会让你独占这个带宽,正常来讲,这个100M带宽要分配给15台左右的机器,黑心的服务器商可能分配给更多的机器。而且,一般会给每一个机器设置带宽上限为10M上下。所以,记住,不会有100M独占的机器给你用,所谓的100M基本都是共享,分配到一个服务器上的也就是10M上下

这里不得不提到一个带宽单位的问题,要注意KB不等于Kb MB也不等于Mb B代表着byte,而b则是bit 1B=8b 所以由此类推,其实10Mb的带宽在你机器上的理论上的速度上限只有1.25MB 而事实上,除去部分头文件信息,这个数量就更少了。

那么,有人会提出疑问了,这样一个带宽,让服务器上那么多的用户使用,够吗?答案是肯定的,只要你不提供下载,就web访问而言,这是很足够了。本人现在几台服务器上均安装了iis流量的监测工具,虽然小有限制,但是在访问量高的时候,同时的带宽也就能限制在1MB/s左右。带宽是够的。

2.内存的问题
应该说参与合租的站点都不会太大,因为本人是在PHPWind论坛基础上号召起来的,所以参与的用户多数都是要自己做论坛的,一开始,考虑的配置是P4 3.0 (64位) 1G DDR400内存,这样子。但是很快发现,就算按照原本的20个人的用户,这个内存也很快被耗尽,此前就听人说论坛是资源大户,就现在来看,mysql吃内存太厉害,在2003+IIS6+Mysql平台上,常常mysql就要占去服务器高达四五百兆的内存,这就占用了服务器物理内存的50%。再加上iis占用,还有其他一些服务,基本上内存很容易告罄。所以后来的机器,内存只好自己掏钱一律扩容了,因为没有办法。我觉得最佳的配置应该是2G内存,1G是绝对不够的。再多无益,服务器的资源这样搭配是比较好的。

3.CPU的问题
与内存持续走高正好相反的是,对iis的应用程序池适当限制,可以控制CPU即使在峰值的时候也不会太高,现在当前时间是19:47 算是访问量开始变高的时候,我监测几台服务器的CPU使用率,均在40%徘徊。如果访问量在大一点,也就百分之六七十。曾经有一个自认为资深的朋友对这个服务器配置嗤之以鼻,认为根本不能用。但是他却忽略了两点:第一、倘若流量达到一定程度,是没有必要还跟人合租服务器的。其二、服务器的配置如果提高,相应的租赁的用户所要承担的费用则也要提高。但是不得不说的是,在这个配置的CPU,在备份mysql数据的时候,常常要占用相当高的CPU,我曾经在自己的机器上备份mysql数据,如果数据量过大,我个人的机器都几乎处于当机状态。(个人电脑P4 2.4G 1G内存)。所以,必须承认,这个配置的服务器,在论坛数据备份的时候,常常会出现问题。解决的办法就是用单独的应用程序池来做一个phpmyadmin站点,不限CPU使用,来解决问题。好在其一,倘若你的论坛数据库好几百兆,而你又是合租服务器,那么你没有必要天天去备份,如果那样,两三天之后,你的服务器空间就让备份文件占据完了。

4.服务器对用户流量等限制的问题
开始的时候,也想让大家用的爽,用得自在,所以也不愿意做任何限制,不限制iis,不限制cpu,不限之内存等等,但是后来才发现,就好像这个天底下的任何地方一样,不自觉的人总是太多,而且有的人程序出问题之后可能影响到其他人。所以到最后只是得到一个这样的结论对服务器不做任何限制是一个天大的谎言,那是不可能的。所以最理想的方法是建立独立的应用程序池,然后每一个用户占用一个应用程序池,在进行对CPU份额、内存使用、带宽占用的限制。服务器上20个用户,我一般限制每一个人最高8%的CPU,如果你去计算8%*20=160%,那无疑你是愚蠢的。一个服务器上的站点总是有大有小,而且,也基本不可能在同一瞬间都达到各自的峰值。所以有些小用户可能cpu永远也就1% 2%

5.服务器空间的小,5G = 10G = 20G
空间大可以说是合租服务器最大的亮点,但事实上,这个亮点也有值得商榷的地方,标榜的网络空间大也是服务器合租最大的幌子。常常有人问我单租不单租1G的空间。我都是一口拒绝,其实,磁盘空间只是一个幌子而已,因为可以说没有几个人用得了那么大的空间,给你1G的空间,但是你的cpu和内存份额仍然是一样,这有什么意义呢?其实可以说你跟5G的用户享受了一样的待遇。真正决定服务器合租价格的是分配给你的CPU和内存,而不是空间大小 所以如果你问我1G怎么卖,我会告诉你 Never. 但是如果你说空间可以不可以多给你几G,我会告诉你,No problem. 同样的CPU,同样的内存,如果我要1G单卖,1G300吧。但是我已知的成本固定,那么这就意味着我需要更多的用户才能拿回成本,那么,是否意味着你所使用的CPU份额就要更低呢?可以说零售小额空间,是某种程度上对合租用户权益的侵害。

6.电信网通双线以及相关问题
很多用户希望有一个双线机房,这样就能保证南北方访问的速度都很快,众所周知,当今中国ISP天下,南方电信北方网通,间或又有移动、铁通等也能够提供ISP接入服务。网络之间的互访互连速度慢,这是举国尽知的事实。如果是电信机房,是不敢打包票说网通的用户访问也能够如同电信用户一样快的,而作为网通机房,电信的用户去访问,那速度也是要比网通自己的用户去访问打一个折扣。应该说对于相关业务的具体内涵,本人也就是略知一二,曾和一个专门搞IDC的朋友谈,说及双线机房,他告诉我:双线机房都是个人搞的小机房,真正的骨干级机房,是不可能搞双线的,如果那样,还存在什么互联互通的问题?思索一二,也觉得有些道理。然后便访网上的主流IDC,确实难觅双线机房的踪迹。

7.合租服务器价格
一台普通的服务器租赁的一年的费用一般在1万元左右,便宜的可能在八九千,再低我就要对他的服务质量——譬如机器的性能,网络服务的质量产生怀疑了。因为这个价格是很容易计算出来的。服务器托管一年的费用一般在四千左右,如果一台机器一年送产权,莫非一台机器只价值2000元?一个P4 3.0 64位CPU的价钱大家都可以查得到。一般来说都是第二年送产权。很多合租者所看重的则是这个产权。而用户则是看中的便宜,空间大。组织有信誉的、值得信赖的合租,双方受益,反之则都彼此头疼不已。想要让服务器稳定的运行,并不是一件太简单的事情,经验的积累和自身的技术同样重要,两者不可或缺。

AntiAttackFireWall(AAFW)源代码发布暨开源公告

0

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

文章作者:Fr. Qaker [E.S.T]
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)

备注:AXLFilter研究中

本软件开源目的
防御CC类型攻击,共享ISAPI编程思路,追求共享精神。

开源花絮
AAFW在2005年12月底就已经完成,现在需要的就是一些功能的补充和界面的优化,所以还是具有一定学习意义的。
原来发布过CC的源代码,但是发生了一些很不开心的事。这次要发布代码,很多朋友因此建议我不要开源。但是,代码放在手里,放着也是浪费,也不符合自己的共享精神。当初,我自己成长的时候也是读别人的代码提高自身的过程,乘凉不忘栽树人。虽然有不少小人,就让他去吧,真理永远变不了,小人得逞只是一时,大家技术的共同提高,共享精神的保持才是最重要的。

AntiAttackFireWall(AAFW)介绍
AA防火墙是一款IIS ISAPI防火墙,利用ISAPI FILTER进行系统保护,利用ISAPI EXTENTION进行管理。
目前代码已经实现了,有效防止盗链,有效防止CC攻击,有效控制文件下载,有效IP连接限制等功能,而且很多功能都考虑到了扩充问题,所以很容易的修改代码进行功能添加。
特别提下,里面的Base64的编码功能是我从网络上复制的一段代码改编来的。
IP管理用的是二叉树进行内存查找,正常情况下,十万次IP记录(十万数量级)的查找能在0.01秒内完成,建议修改的时候将数据进行hash算法。
原创SQL注入保护代码混合在Decode里面,过滤了()<>‘;= 因为<>=是判断符号,没有这三个符号,基本无法进行条件语句的构造,用()限制了decalre这样的使用和sql语句的套用,用’;杜绝了SQL语句的分隔,应该说,这样的过滤是相对比较安全,而且有效的。
程序本身有访问者按IP管理,所以很方便进行下载限制。
盗链问题,用的是IP判断,看访问者是否访问过本站,用以判断,而不是refer判断,建议加上refer判断增加精确性,接下来会专门研究这个问题。
防止CC攻击用的就是原来我给出的asp防御的思路,采用IIS ASP的随机生成Session的方法,而且session值绑定在访问者的IP记录下。
控制文件下载,也是基于IP的,建议参考后台管理的登录代码,运用Base64的解码,可以很方便的开发会员区这样专业级别的登录控制,甚至可以考虑使用数据库存储用户,比ASP的管理有效的多,而且安全。

顺带感叹
近日的迅雷事件,我在这里支持天空,鄙视华军和迅雷。
迅雷的软件,思路,效率令人佩服,确实是个好东西。但是,大家听说过杀鸡取卵的故事么,迅雷现在就是,他自己建立了门户,提供软件搜索,软件从其他软件下载站下载。看上去挺不错的。潜在问题发生了,一个软件,很多地方同时提供,但是在迅雷中显示的站点只有一个,那么以后各家下载的站估计都要给迅雷送钱,这样才能让自己的站点多显示几次,多一些广告收入阿。下载的时候,管你是谁,只要有这个文件,迅雷就能下,流量上去了。这样做来,用户感觉不错,速度快,但是下载站呢?流量上去了,广告下来了,收入比支出少了,而且广告成倍的少,流量成倍的加,后果是什么?还记得baidu的mp3搜索吧,现在音乐站还有多少?还记得baidu的竞价广告吧,不给钱,你的页面别显示了,你的软件我照样用,不服?叫天天不应,叫地地不灵。说实话,迅雷作软件,佩服,做门户,卑鄙。杀鸡取卵,不改大家以后都没软件下,不信看吧。迅雷可是说了哦,我们不提供软件下载的,嘿嘿。
再说一个潜在威胁,迅雷就使加强版的CC,不信就看,千万用户一起用,每人5个连接,迅雷说今天,天空和我闹,大家一起去挤它的软件下载吧,天空崩溃了。明天,华军这个小人又出尔反尔了,大家去挤它吧。别和我说什么它很有商业道德,baidu多大的一个网站,不照样出来一个8848攻击事件,这次迅雷的做法,嘿嘿,好像更猛。
华军,嘿嘿,就是一个炒作家,先领头出来说,迅雷卑鄙阿,坏阿,然后,不知道得到什么好处,嘿嘿,第一个叛变了,不信大家去华军网上看看,这样的领头羊,嘿嘿,就是披着狼皮,自己炒作自己,能活到最后,但是第一个出卖用户的肯定是它。
天空,赞一个,支持一个,顶住,你要倒了,我们以后软件下载没了,一定要坚持住,让迅雷改。谢谢。

推荐网站
VIF:一个商业版本的IIS防火墙,界面比我的好看多了,功能呢,说实话是同类产品,但是有后续性,不断更新重,大家支持一个http://vif.foosun.cn

邪恶八进制:我的根据地,欢迎大家来指导 http://forum.eviloctal.com/ ,
我的软件首发地色釉-信手绾红尘:美文欣赏http://blog.sina.com.cn/u/1236648217强烈推荐里面的诱惑,嘿嘿http://blog.sina.com.cn/u/49b5c1190100043h

NDS论坛:喜欢玩NDS的朋友可以去看看http://www.ndsman.com/bbs,好像遇到了和天空一样的问题,被某个叫NDSBBS的网站盗链加恶意中伤。

浩联电子:http://www.591hl.com家乡的一个公司,感谢一个长期支持我的朋友 [m*],估计他不想在这里出名,嘻嘻

近日计划
集中精力研究AXLFilter,用IIS ISAPI FILTER彻底解决盗链问题,然后发布源代码,希望相关下载站与我联系测试盗链效果和防迅雷下载,概念代码将在第一时间发布。

我的联系方式:bigboyq[at]eviloctal[dot]com
点击下载

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

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