Apache中文说明文档

去年拔网运动期间,因为工作需要,曾经想搞一个反向代理服务器,大家都推荐Nginx,因为缺乏资料,加上WINDOWS下口碑并不好最终没有搞成。后来偶然发现其实Apache就可以,于是有点“悔不该当初”的感觉。因为最近思考一个.htaccess 文件的问题,加上XMAPP的启蒙,于是对Apache有了那么一点接触。发现即使是有Nginx这个口碑极好的竞争者,Apache的地位也不可能在短期内被动摇。 继续阅读Apache中文说明文档

Xampp下apache多站点配置

以前很看不起LAMP的集成环境,无非就是打包而已。集成不透明,版本更新缓慢,而且并非纯绿色产品(比如织梦做的那个集成环境)。与其如此,我不如装个虚拟机跑测试环境了。

在集成环境里,名头大的莫过于Xampp。以前觉得不过如此,下了,用了,删了。直到某天无意发现,Xampp竟然可以做到不改注册表,不往系统添加任何附件,甚至可以做到U盘里,随用随启动,不要随时删除。而且集成环境竟然包含WEB\MAIL\FTP的多种应用,模块齐备。不由敬仰得一塌糊涂,于是定下Xampp作为工作测试环境了。  继续阅读Xampp下apache多站点配置

MSSQL数据库之间复制备份的方法

从云网帮助中复制过来的一篇说明,因为很实用,所以做个备份。在复制的过程中,为了保持最全面的完整性,有个关键步骤做了说明。动网的net系统就因为少了这个步骤,结果升级搞出了一段插曲。

以下提到的MSSQL指的是SQL SERVER 2000 继续阅读MSSQL数据库之间复制备份的方法

修复性能库与注册表不匹配问题

新装系统,可能是因为启用了更严格的windows、system32目录权限的关系,导致在准备备份系统前发现事件查看器的应用程序部分出现了这样的提示:

“ASP” 服务的性能库 “C:\WIN2003\system32\aspperf.dll” 的配置信息 同在注册表中保存的受信任性能库信息不匹 配。此库中的函数不会作为受信任函数处理。
“TermService” 服务的性能库 “C:\WIN2003\system32\perfts.dll” 的配置信息 同在注册表中保存的受信任性能库信息不匹 配。此库中的函数不会作为受信任函数处理。
“W3SVC” 服务的性能库 “C:\WIN2003\system32\inetsrv\w3ctrs.dll” 的配置信息 同在注册表中保存的受信任性能库信息不匹 配。此库中的函数不会作为受信任函数处理。

查了下,似乎会导致这些服务执行缓慢。虽然不明原因,但是解决方法就是用命令释放和重新加载他们。这样做我想是建立在对系统绝对信任下的“治表”措施,因为如果真的服务性能库是错误的,那么这个错误就被掩盖了,从而可能产生潜在的安全问题。

一个个输入命令太费事了,把以下文字编辑成BAT文件执行一下就可以。其中有两项要看系统安装时的选择而定。

unlodctr w3svc
unlodctr msftpsvc
unlodctr asp
unlodctr inetinfo
lodctr w3ctrs.ini
lodctr ftpctrs.ini
lodctr axperf.ini
lodctr infoctrs.ini

由“.NET不同版本不可共存”理解应用程序池

IIS6里引入了应用程序池概念。但是……多个应用程序池有什么意义呢?就用默认的应用程序池网站运行得不也挺好么?况且,建立的新应用程序池要在哪里才能调用呢?

首先声明,我不懂具体的官方说法,以下来自于我的主观猜想,至少我这么理解在实际工作中是没有问题的。也许,这就是技工和工程师的区别吧!

现在越来越觉得IIS不是一个简单的东西。上次是因为URL转向,这次是因为应用程序池。其实“应用程序池”的“池”概念换成“线程”就好理解了,一个应用程序池就是一个专门处理网站应用程序的线程。一般的情况下,就我们用的这些网站应用程序拜托给一个默认线程处理就够了,即使有多个网站也没关系,一个默认应用程序池强大到足够应付他们,以至于你会怀疑这个世界上是否有存在多个处理线程的必要。

但是多个应用程序池的设计可以解决一些特殊的需要。比如:一个网站应用程序拼命占用资源,你需要单独限制他的资源占用数量;有多个程序,当他们发生错误时的处理机制你想要设置成不同的处理方法:留言板如果占用CPU资源超过30%就终止他,新闻系统则不做这个限制;在一台服务器上同时存在.net 1.1和2.0的时候,你需要把他们放在不同的应用程序池中,否则他们“有你没我”。

当管理员的应用层次提升,产生了这些特殊的需要,就需要一个解决方案,否则就有人说MS的东西如何如何烂了。

每一个不同的应用程序池,就是一个独立的网站应用程序执行环境,他们相互独立,以保障网站稳定运行,即使遭遇程序死循环等故障,也不至于把所有应用程序全部搞瘫痪。网站以目录为单位,可以在应用程序设置中“创建”一个应用程序,指定他们分别加入不同的应用程序池,在运行的层面将不同资源需要的程序隔离开来。比如服务器上所有的咨询程序都进入咨询应用程序池,所有的内容管理程序都进入默认池,所有疯狂占用资源的程序都进入限制应用程序池,锁定最高资源占用率,附加清理回收规则。

理解了应用程序池这个处理机制后会发现,它可以解答一些难以处理的问题,比如.net程序只占用不释放内存,导致内存不足的问题;虚拟主机管理如何限制多用户之间的资源分配问题;如何让一个网站只能运行.NET,不能运行ASP的问题。

还有一个相当模糊的概念今天也可以澄清了,那就是程序的用户角色问题。以往分配程序的读写权限,往往就是直接给任意用户,或者用户组设定权限。理解了程序池概念,你可以为一个程序池单独新建一个账户,然后为这个账户单独设定系统用户权限,实现网站用户间的彻底隔离,提高系统安全系数。

对于至强这样的服务器,也许在程序池中增加WEB园的数量,实现多线程下的多线程处理,还会对系统效率有不少的提高呐!

没想到,搞个动易SF,把这么多以前模糊的概念搞明白了,又解除几个便秘问题,爽。

“Sentinel 服务启动失败”的排除

莫名其妙跑出这么个服务错误。仔细看日志,说是依附的并口服务不能启动。我的机器根本没有并口,在出现这个故障前也没有安装什么东西,倒是好像有杀到过一个病毒。

分析下大致有两个原因。一是我装的某个软件突然需要读取加密狗;二是某个病毒留下的痕迹。到底是什么原因,我现在仍然不能确定,病毒残留的可能性比较大。

开始想硬添加一个打印端口满足他的启动条件,然后再用冰刃查出这个服务所用的文件。谁知道折腾来折腾去,又整出一个并口服务不能启动的错误。

现在是两个服务错误了。一个是并口不能启动,一个是Sentinel不能启动,因为找不到并口服务,并且找不到启动文件”。

并口的问题有人提供了解决办法:

找到一个红叉的记录:由于下列错误,Parallel port driver 服务启动失败: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。” 不知道怎么解决,搜索一下,搞定。转文如下:  有人说找到系统服务把这项关了就可以,但我怀疑他们没有亲自实践过,因为系统服务中根本找不到对应的服务。这个错误出现的原因可能是并口已经在bios 中关闭了,但是系统或者某个软件中还会有个虚拟的并口。解决这个问题,只需要在注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Parport中,将“start=3”改为“start=0”就可以了。

究竟改成0是什么意思,我现在仍然不明白,反正问题解决了。反正计算机没有并口,应该没什么隐患。

关于Sentinel这个问题的信息千变万化,多数认为是因为一个叫彩虹公司出产的软件导致的问题。在无奈之下,我启动REGEDIT希望在里面能搜索出和Sentinel有关的信息。在查找出的第二条信息中,我发现了一个“启动”中的Sentinel项目的键值是Sentinel.sys文件,而这个文件并不存在。几乎可以肯定是他。删除整个目录。重启,没有再报错。

究竟他是什么?你能告诉我吗?