【转】RPM/编译/自动安装MRTG
【转】服务器优化—Sysctl, Apache, MySQL篇
人们常说,服务器的负载能力,很大程度上取决于系统管理员的配置和优化能力。这个是对的,相同的硬件、不同的软件配置,会造成截然不同的效果。下面我将给大家介绍一下如何优化 sysctrl, Apache 以及 MySQL 。请注意,所有配置均为取决于个人,请根据自己的实际情况做调整。 (阅读全文…)
ASP.NET中文显示之两种解决方法
开始写ASP+程序时候碰到的第一个比较大的问题就是中文显示问题,运行后发现ASP+从数据库中读取出来的中文全部变成了?????????????,有点类似jsp中的这个频率出现最高的中文显示问题了,查了资料发现有两种方法可以轻松解决中文问题。
方法一:
在翻阅了微软NGWS文档后发现在文档的常见问题部分有提到要添加一个config.web文件到
web目录下,试了一下,中文显示果然OK了。
方法如下:
建立一个文件config.web,内容如下,放在WEB目录下
<configuration>
<globalization
requestencoding=”utf-8″
responseencoding=”utf-8″
/>
</configuration>
后来在网上看到论坛中有人发帖子说将utf-8换成gb2312好像也可以,作者没有试过,大家可以一试。
方法二:
后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这
个问题的文章,方法为添加<%@ CODEPAGE = “936″ %>到每一页的开头,有点类似于jsp中的
<%@ page contentType=”text/html;charset=gb2312″%>
赶紧测试了一下,果然OK!!!
例子如下面所示:
<%@ CODEPAGE = “936″ %>
<%@ Import Namespace=”System.Data” %>
<%@ Import Namespace=”System.Data.ADO” %>
<%@ Import Namespace=”System.Globalization” %>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
</head>
DHTML 各种 HTML 对象常用属性
标签属性 属性 描述
ALIGN align 设置或获取表格排列。
ALLOWTRANSPARENCY allowTransparency 设置或获取对象是否可为透明。
APPLICATION APPLICATION 表明对象的内容是否为 HTML 应用程序(HTA),以便免除浏览器安全模式。
ATOMICSELECTION 指定元素及其内容是否可以一不可见单位统一选择。
BEGIN begin 设置或获取时间线在该元素上播放前的延迟时间。
BORDER border 设置或获取框架间的空间,包括 3D 边框。
canHaveChildren 获取表明对象是否可以包含子对象的值。
canHaveHTML 获取表明对象是否可以包含丰富的 HTML 标签的值。
CLASS className 设置或获取对象的类。
contentWindow 获取指定的 frame 或 iframe 的 window 对象。
DATAFLD dataFld 设置或获取由 dataSrc 属性指定的绑定到指定对象的给定数据源的字段。
DATASRC dataSrc 设置或获取用于数据绑定的数据源。
disabled 获取表明用户是否可与该对象交互的值。
END end 设置或获取表明元素结束时间的值,或者元素设置为重复的简单持续终止时间。
firstChild 获取对象的 childNodes 集合的第一个子对象的引用。
FRAMEBORDER frameBorder 设置或获取是否显示框架的边框。
hasMedia 获取一个表明元素是否为 HTML+TIME 媒体元素的 Boolean 值。
HEIGHT height 设置或获取对象的高度。
HIDEFOCUS hideFocus 设置或获取表明对象是否显式标明焦点的值。
HSPACE hspace 设置或获取对象的水平边距。
ID id 获取标识对象的字符串。
innerText 设置或获取位于对象起始和结束标签内的文本。
isContentEditable 获取表明用户是否可编辑对象内容的值。
isDisabled 获取表明用户是否可与该对象交互的值。
isMultiLine 获取表明对象的内容是包含一行还是多行的值。
isTextEdit 获取是否可使用该对象创建一个 TextRange 对象。
LANG lang 设置或获取要使用的语言。
LANGUAGE language 设置或获取当前脚本编写用的语言。
lastChild 获取该对象 childNodes 集合中最后一个子对象的引用。
longDesc 设置或获取对象长描述的统一资源标识符(URI)。
MARGINHEIGHT marginHeight 设置或获取显示框架中文本之前的上下边距高度。
MARGINWIDTH marginWidth 设置或获取显示框架中文本之前的左右边距宽度。NAME name 设置或获取框架的名称。
nextSibling 获取对此对象的下一个兄弟对象的引用。
nodeName 获取特定结点类型的名称。
nodeType 获取所需结点的类型。
nodeValue 设置或获取结点的值。
offsetHeight 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。
offsetLeft 获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置。
offsetParent 获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用。
offsetTop 获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置。
offsetWidth 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度。
onOffBehavior 获取表明指定的 Microsoft® DirectAnimation® 行为是否正在运行的对象。
outerHTML 设置或获取对象及其内容的 HTML 形式。
outerText 设置或获取对象的文本。
ownerDocument 设置或获取结点关联的 document 对象。
parentElement 获取对象层次中的父对象。
parentNode 获取文档层次中的父对象。
parentTextEdit 获取文档层次中可用于创建包含原始对象的 TextRange 的容器对象。
previousSibling 获取对此对象的上一个兄弟对象的引用。
readyState 获取对象的当前状态。
readyState 获取表明对象当前状态的值。
recordNumber 获取数据集中生成对象的原始记录。
scopeName 获取为该元素定义的命名空间。
SCROLLING scrolling 设置或获取框架是否可被滚动。
SECURITY SECURITY 获取表明 frame 或 iframe 的源文件是否应用了特定的安全限制的值。
sourceIndex 获取对象在源序中的依次位置,即对象出现在 document 的 all 集合中的顺序。
SRC src 设置或获取要由对象装入的 URL。
STYLE 为该设置元素设置内嵌样式。
SYNCMASTER syncMaster 设置或获取时间容器是否必须在此元素上同步回放。
SYSTEMBITRATE 获取系统中大约可用带宽的 bps。
SYSTEMCAPTION 表明是否要显示文本来代替演示的的音频部分。
SYSTEMLANGUAGE 表明是否在用户计算机上的选项设置中选中了给定语言。
SYSTEMOVERDUBORSUBTITLE 指定针对那些正在观看演示但对被播放的音频所使用的语言并不熟悉的用户来说是否要渲染配音或字幕。
TABINDEX tabIndex 设置或获取定义对象的 Tab 顺序的索引。
tagName 获取对象的标签名称。
tagUrn 设置或获取在命名空间声明中指定的统一资源名称(URN)。
TIMECONTAINER timeContainer 设置或获取与元素关联的时间线类型。
TITLE title 设置或获取对象的咨询信息(工具提示)。
uniqueID 获取为对象自动生成的唯一标识符。
UNSELECTABLE 指定该元素不可被选中。
VSPACE vspace 设置或获取对象的垂直边距。
WIDTH width 设置或获取对象的宽度。
网站首页head区代码规范
head区是指首页HTML代码的<head>和</head>之间的内容。
1.公司版权注释
<!— The site is designed by Maketown,Inc 06/2000 —>
2.网页显示字符集
简体中文:<META HTTP-EQUIV=”Content-Type” CONTENT=”text/html; charset=gb2312″>
繁体中文:<META HTTP-EQUIV=”Content-Type” CONTENT=”text/html; charset=BIG5″>
英 语:<META HTTP-EQUIV=”Content-Type” CONTENT=”text/html; charset=iso-8859-1″>
3.网页制作者信息
<META name=”author” content=”webmaster@maketown.com”>
4.网站简介
<META NAME=”DESCRIPTION” CONTENT=”xxxxxxxxxxxxxxxxxxxxxxxxxx”>
5.搜索关键字
<META NAME=”keywords” CONTENT=”xxxx,xxxx,xxx,xxxxx,xxxx,”>
6.网页的css规范
<LINK href=”style/style.css” mce_href=”style/style.css” rel=”stylesheet” type=”text/css”>
(参见目录及命名规范)
7.网页标题
<title>xxxxxxxxxxxxxxxxxx</title>
.可以选择加入的标签
1.设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。
<META HTTP-EQUIV=”expires” CONTENT=”Wed, 26 Feb 1997 08:21:57 GMT”>
2.禁止浏览器从本地机的缓存中调阅页面内容。
<META HTTP-EQUIV=”Pragma” CONTENT=”no-cache”>
3.用来防止别人在框架里调用你的页面。
<META HTTP-EQUIV=”Window-target” CONTENT=”_top”>
4.自动跳转。
<META HTTP-EQUIV=”Refresh” CONTENT=”5;URL=http://www.yahoo.com”>
5指时间停留5秒。
5.网页搜索机器人向导.用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
<META NAME=”robots” CONTENT=”none”>
CONTENT的参数有all,none,index,noindex,follow,nofollow。默认是all。
6.收藏夹图标
<link rel = “Shortcut Icon” href=”favicon.ico” mce_href=”favicon.ico”>
所有的javascript的调用尽量采取外部调用.
<SCRIPT LANGUAGE=”JavaScript” src=”script/xxxxx.js” mce_src=”script/xxxxx.js”></SCRIPT>
附<body>标签:
<body>标签不属于head区,这里强调一下,为了保证浏览器的兼容性,必须设置页面背景<body bgcolor=”#FFFFFF”>
DIY:Windows Update
大部分对计算机比较熟悉的朋友都知道,通常安装好Windows 操作系统后要做的第一件事就是上Windows Update网站去给Windows 安装补丁程序,否则各种漏洞对系统就是一个很大的威胁。不过遗憾的是很多人还没有这样的意识,疏忽了给系统打补丁。这也间接造成了病毒的横行,例如去年的”蠕虫王”和前几天的”冲击波”,这两个病毒都是利用了微软软件的漏洞编写和传播的,遗憾的是在这些病毒广泛流传之前,相应软件的补丁程序早就已经由微软发布出来并提供了免费下载,只要用户能经常性地访问Windows Update网站打补丁,就不会感染这些病毒,可是很多人都疏忽了这一点。好在经过这两次教训,更多的人知道”打补丁”的重要性,可是问题又来了。
微软的升级服务器都架设在国外,有时候由于网络的原因造成了国内用户连接服务器的速度非常慢,这些时候光下载补丁就要一个多小时的时间,效率非常低。另一方面,对于有上百台电脑的企业,每台电脑都连接到微软的服务器去下载上百兆字节的补丁程序,这对企业的网络带宽也是一个不小的负担,况且由于大家都到微软的服务器下载补丁,管理员就无法对补丁程序的内容进行控制,如果某个补丁正好跟企业内部广泛使用的某个软件有冲突的话,还可能造成更大的麻烦。现在,问题解决了,那就是使用微软的SUS(Software Update Service,软件更新服务)服务。
先决条件
SUS有自己的服务器端和客户端。
对于服务器端,有如下的要求:
硬件:700MHz主频以上的CPU,512MB以上内存,6GB以上的硬盘空间
软件:Windows 2000 Server SP2 以上的操作系统,Windows Server 2003,IIS 5以上版本,IE 5.5以上版本
可见SUS对硬件的要求比较高,不过这里有一点是要说明的,微软推荐的这种硬件配置可以同时为15000台计算机提供升级服务,因此如果你的网络没有这么大规模,硬件的条件可以适当放宽。另一方面,对于6GB的硬盘空间,这是用来保存所有语种的补丁文件的,如果你的网络中只有简体中文版或者英文版操作系统的计算机,那你可以通过设置而不下载其他语种的补丁文件,以节约硬盘空间。
对于客户端,同样有一些要求:
首先,SUS服务只能为Windows 2000 SP2/XP/2003提供升级服务,这就意味着Windows NT和Windows 9x以及Windows 2000 SP1都无法通过这个服务升级。
对于Windows 2000 SP2和Windows XP,首先还需要安装一个SUS的客户端程序;对于Windows 2000 SP3及以上版本,Windows XP SP1 及以上版本和Windows Server 2003,都不需要安装客户端,直接就可以在组策略中进行设置。
工作原理
对于服务器端,可以理解为微软升级服务器的一个本地镜像。服务器端可以自动或者手动跟微软的升级服务器同步,下载所有的补丁程序,然后发布在企业内部的网络中。
客户端则跟通常情况没有太大差别,只是通过组策略的设置把默认的微软服务器改为企业内部的升级服务器的路径,就可以自动下载和安装。
而如果你的网络环境有特别需要,你还可以架设多个SUS服务器,客户端可以选择任意一个服务器下载补丁。对于服务器,你还可以设置其它的SUS服务器都跟同一个主SUS保持同步,而不是各自去跟微软的服务器同步,这样进一步减少了网络流量。
应用范围
SUS只能提供Windows操作系统的关键更新和Service Pack,驱动程序和其他更新都是不包括在内的。而微软的其他产品,例如Office、Exchange等的升级也不包括。
服务器端的配置
在本文中,我们会练习在一台Windows Server 2003 Standard独立服务器上安装并配置SUS服务。
首先来这里下载服务器端的安装文件:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A7AA96E4-6E41-4F54-972C-AE66A4E4BF6C&displaylang=en
然后直接执行安装,其中一切选项都可以按照默认设置进行。需要注意的是,由于安全方面的原因,SUS服务器的系统盘和保存SUS补丁文件的硬盘分区都必须是NTFS文件系统。另外,如果你是在Windows 2000 Server操作系统上安装SUS,安装程序还会同时为你安装IIS Lockdown Tool,这是一个提高IIS安全性的软件。
服务器端软件安装好后就可以开始设置了,设置SUS服务器有两种方法:本地设置和远程设置,设置需要你有Administrators组的权限。
对于本地设置,只要在控制面板的管理工具中双击”Microsoft Software Update Services”即可。
而远程管理则需要在远端计算机上打开IE浏览器(5.5以上版本),然后在地址栏输入”http://服务器名或IP/susadmin” 然后回车,接着输入相应的用户名和密码登录。
配置界面非常眼熟(图一),这跟我们平常访问的微软Windows Update网站非常相似,所有的功能都可以在左侧的列表中打开。

图一
首先要对这个服务器进行设置,在左侧的”Other Options”菜单下点击的”Set Options”,接着可以看见(图二)的界面。排在最前面的是防火墙设置,在”Select a proxy server configuration”下,你可以输入你的防火墙参数,通常只要你在IE中进行过设置,在这里使用默认设置就可以了。

图二
接着在”Specify the name your clients use to locate this update server”下可以为服务器起一个比较好记的名称,这样在客户端就可以通过服务器名来访问升级服务器而不是IP地址。
在”Select which server to synchronize content from”下可以设置同步补丁内容的来源,如果你的这个服务器打算从微软的升级服务器同步,就选中”Synchronize directly from the Microsoft Windows Update servers”;如果你想从网络中的其他SUS服务器上同步内容,则选中”Synchronize from a local Software Update Services server”,并在下面输入目标服务器的名称或者IP地址。
在”Select how you want to handle new versions of previously approved updates”下,我们可以设置同步了补丁程序后采取的操作。如果你认为所有补丁程序都不需要预先测试,而直接就可以部署的话,就在这里选择”Automatically approve new versions of previously approved updates”;相反,如果你打算把所有的补丁程序都先测试过再发布的话,就选中”Do not automatically approve new versions of approved updates. I will manually approve these updates later”,这样如果有新的补丁程序被下载,这些程序不会被马上发布出去,而等待管理员验证,然后手工发布。建议管理员采用这种方式,虽然可能增大了自己的工作量,不过对网络中的其它计算机是有好处的。可以想象这种情况,某个补丁程序正好和你的网络中很常用的一个软件起了冲突,如果这个补丁程序被自动发布了出去,所有的客户端都会遇到这种麻烦,这时候作为管理员的你的麻烦可能就更大了。
在”Select where you want to store updates”下你可以设置保存补丁程序的方式。你可以简单的选择”Maintain the updates on a Microsoft Windows Update server”,这样SUS服务器的补丁下载就会跟微软的服务器保持完全同步,而不管那些补丁是否真正需要。所以通常还是建议你在这里选择”Save the updates to a local folder”,并且仅选择你需要的补丁语种,这样会减少额外的下载。
一切都设置完成后点击页面右下角的”Apply”保存设置。
接着进行服务器的同步工作。点击左侧的”Synchronize server”,可以看见(图三)的界面。你可以点击”Synchronize Now”按钮,马上开始同步。这将会是一个漫长的过程,尤其是你要同步的补丁语种比较多以及网速较慢的时候。所以建议你设置自动同步,点击”Synchronization Schedule”按钮,然后看到(图四)的界面。选中”Synchronize using this schedule”,然后在下面设置同步方式,如果你的服务器是24小时不间断运行的,建议你设置服务器在每天凌晨进行同步,因为这段时间网络的利用率最低,容易获得较高的下载速度。设置后点击”OK”按钮保存设置。

图三

图四
在服务器同步完成后,如果你设置了在发布前先批准,那么就要开始批准的工作了。在左侧的列表中点击”Approve updates”,可以看到(图五)的界面。所有已经下载回来的补丁程序都会列在这里,每个补丁的右侧会显示该补丁的状态,如果是”Approved”则表示该补丁已经经过了测试,并批准发布出去;如果一个补丁的状态是”Not Approved”就需要注意了,你接下来就应该在少数测试用途的计算机上安装这些补丁程序,如果一切正常,那么就选中这个补丁程序名称前面的复选框,然后点击右下角的”Approve”按钮。接着你要同意补丁程序的最终用户许可协议,在这里遇到了一个小问题,就是弹出的显示许可协议的对话框上并没有任何按钮,你需要按Tab键使这个按钮显示出来并点击。

图五
除了补丁的状态外,在这里你还可以看到其他更多的信息,例如每个补丁中都会用绿色的字显示这个补丁所应用的操作系统,而如果安装了这个补丁后需要重启动,则补丁的描述中回用显眼的红色字迹表示出来。每个补丁都还带有一个链接,点击后就可以连接到微软网站察看补丁的详细内容。
注意:如果你设置了补丁发布前先批准,那么只有经过批准的程序才会被客户端下载和安装。
至此,服务器端的基本设置都已经完成了。
客户端的配置
客户端我们分两种情况说明,那就是域环境和工作组环境。首先看看工作组环境。
注意:以下内容涉及到活动目录以及组策略,而Windows XP Home Edition即没有组策略也无法加入域,因此不在我们这里的讨论范围。
工作组环境下需要对每台客户端计算机分别设置,如果网络中有较多的计算机这样显然很麻烦,好在通常计算机数量多的情况下管理员都会使用活动目录的方式管理,因此这个问题并不严重,我们继续看下去。
对于Windows 2000 SP2和Windows XP,我们要先安装SUS客户端,在这里下载:
http://www.microsoft.com/windows2000/downloads/recommended/susclient/default.asp
安装后,在客户端的运行中输入”gpedit.msc”打开组策略编辑器(图六),并依次展开”计算机配置”-”管理模板”,然后在”管理模板”上点击鼠标右键,选择”添加/删除模版”,然后在(图七)的界面上点击”添加”按钮,并找到%windir%inf目录下的wuau.adm文件,双击添加。接着继续打开”Windows组件”-”Windows Update”(这一项只有在安装了客户端软件并添加后才会出现),在窗口右侧就会显示出两条可用的策略。其中”配置自动更新”可以让你设置进行更新的时间和处理方法,”指定企业内部互联网…”则用来指定服务器的位置,你可以以”http://服务器名称”或者”http://服务器IP”的方式输入。而接下来你要做的就是分别在网络中的每台计算机上进行同样的设置。

图六

图七
处理好这些后就可以了,以后每到预先设置的时间,程序就会自动连接到指定的升级服务器检查更新,如果有更新,则会按照预先的设置,或者自动下载并询问安装,或者提示用户。需要注意,SUS对于客户端没有可访问的页面,所有的升级只能在后台自动进行。
对于Windows XP SP1和Windows 2000 SP3 还有Windows Server 2003,这些操作系统已经安装了客户端,因此直接在组策略中按照上面的方法设置即可。如果你的网络规模比较大,应用了活动目录,那么管理起来会更加方便。
在域控制器上的运行中输入”dsa.msc”并回车,打开Active Directory用户和计算机设置窗口,在要创建策略的OU或者域上点击鼠标右键,选择”属性”,然后在属性窗口中打开”组策略”选项卡,并点击”新建”按钮,给新建的策略命名(例如叫做SUS,图八)。选中新建的组策略,点击”编辑”按钮,接着会弹出一个组策略设置窗口,这跟我们平常运行gpedit.msc打开的窗口很类似,不过这里可以为整个域中的所有计算机设置组策略。

图八
在这个窗口中依次展开”计算机配置”-”管理模板”-”Windows 组件”-”Windows Update”,然后通过设置这里的策略就可以给所有登入域的计算机设置SUS客户端的工作参数。有一点是需要注意的,如果客户端的操作系统是Windows 2000 SP2、Windows XP,那么首先仍然需要安装SUS客户端软件。
整个客户端的设置工作就是这样了。相信经过设置,以后管理员的维护工作将会更加轻松,而网络中的计算机也会更加安全!