<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Windows - 葵中剑]]></title><description><![CDATA[Just Sword Wang's Blog]]></description><link>https://swordair.com/</link><image><url>https://swordair.com/favicon.png</url><title>Windows - 葵中剑</title><link>https://swordair.com/</link></image><generator>Ghost 3.42</generator><lastBuildDate>Sun, 08 Feb 2026 01:09:16 GMT</lastBuildDate><atom:link href="https://swordair.com/tag/windows/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[固定站点为Windows磁贴]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>对于一些常用的功能性网站，将他们固定为windows开始菜单里的磁贴多多少少可以带来一些访问上的便利。尽管每个人都使用习惯迥异，不过总还是有些人热衷去体验系统更新带来的变化。win10公测开始我就毫不犹豫放弃了win7，不过个人并没有使用win8的经验，因为从windows95一路而来的开始菜单的缺失令我无法忍受。win10的开始菜单很好用，win7确实可以安息了...所以就从win10开始吧。</p>
<p>固定磁贴的代码很简单，在meta标签里指定对应的磁贴图片即可，例如：</p>
<pre><code>&lt;meta name=&quot;msapplication-square150x150logo&quot; content=&quot;image-url.png&quot;/&gt;
</code></pre>
<p>如同字面上一样容易理解，指定的是150x150的图片位置。当然看完微软的参考资料：<a href="https://msdn.microsoft.com/en-us/library/dn255024(v=vs.85).aspx">Pinned site metadata reference</a>，可以指定出相当复杂完整的列表，不过倒不是非常有必要。如果觉得编写不方便，通过<a href="http://www.buildmypinnedsite.com/en">buildmypinnedsite</a>这个工具网站也可以很方便生成代码，不过生成质量一般。比如：</p>
<pre><code>&lt;meta name=&quot;msapplication-square310x310logo&quot; content=&quot;/msapplication-square310x310logo.png&</code></pre>]]></description><link>https://swordair.com/windows-10-pinned-site/</link><guid isPermaLink="false">59fe0cf19855590d8c9147c4</guid><category><![CDATA[Tips]]></category><category><![CDATA[Windows]]></category><dc:creator><![CDATA[Sword Wang]]></dc:creator><pubDate>Sat, 30 Jan 2016 03:19:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>对于一些常用的功能性网站，将他们固定为windows开始菜单里的磁贴多多少少可以带来一些访问上的便利。尽管每个人都使用习惯迥异，不过总还是有些人热衷去体验系统更新带来的变化。win10公测开始我就毫不犹豫放弃了win7，不过个人并没有使用win8的经验，因为从windows95一路而来的开始菜单的缺失令我无法忍受。win10的开始菜单很好用，win7确实可以安息了...所以就从win10开始吧。</p>
<p>固定磁贴的代码很简单，在meta标签里指定对应的磁贴图片即可，例如：</p>
<pre><code>&lt;meta name=&quot;msapplication-square150x150logo&quot; content=&quot;image-url.png&quot;/&gt;
</code></pre>
<p>如同字面上一样容易理解，指定的是150x150的图片位置。当然看完微软的参考资料：<a href="https://msdn.microsoft.com/en-us/library/dn255024(v=vs.85).aspx">Pinned site metadata reference</a>，可以指定出相当复杂完整的列表，不过倒不是非常有必要。如果觉得编写不方便，通过<a href="http://www.buildmypinnedsite.com/en">buildmypinnedsite</a>这个工具网站也可以很方便生成代码，不过生成质量一般。比如：</p>
<pre><code>&lt;meta name=&quot;msapplication-square310x310logo&quot; content=&quot;/msapplication-square310x310logo.png&quot; /&gt;
&lt;meta name=&quot;msapplication-wide310x150logo&quot; content=&quot;/msapplication-wide310x150logo.png&quot; /&gt;
&lt;meta name=&quot;msapplication-square150x150logo&quot; content=&quot;/msapplication-square150x150logo.png&quot; /&gt;
&lt;meta name=&quot;msapplication-square70x70logo&quot; content=&quot;/msapplication-square70x70logo.png&quot; /&gt;
</code></pre>
<p>内容也可以配置在browserconfig.xml中然后通过meta引用，这也是更为推荐的做法。设置好meta之后，就可以打开edge浏览器，将网站“固定到开始屏幕”了。</p>
<p><img src="https://swordair.com/content/images/2016/01/pinned-site-2.jpg" alt="固定到开始屏幕"></p>
<p>用作实例的是我自己的向日葵头像，对Metro来说相当的不搭。所以比较好的图片应该是<strong>半透明白色icon</strong>，就像windows自身的风格一样。</p>
<p><img src="https://swordair.com/content/images/2016/01/pinned-swordair.jpg" alt></p>
<p>对于一个用户频繁访问的网站来说这么做是有意义的，简单的配置给用户一条通往网站的捷径，特别是对于那些确实有这种系统使用习惯的人而言。不过不知是什么原因，类似京东淘宝这样的最符合用列的网站却并没有这么做，无奈我只能举例：什么值得买～</p>
<p>另外，想起之前写的<a href="http://swordair.com/custom-web-icons-for-ios-devices/">定义 iOS 设备的网页图标</a>，其实本质上是一样的东西。</p>
<p>最后说个注意点，在选择图片的时候务必慎重些，因为固定到开始屏幕之后，图片在客户端是有缓存的。如果你不小心被客户缓存了测试的icon就真心烦人了。我搜索并尝试了约半小时都未能正确的去掉缓存下来的icon，而且无资料说明缓存时间是多久...所以对于用户来说要去掉几乎是不可能的。并且如果你在测试时花了很多时间去清除缓存仍然未果，那么更换操作用户是最快的选择。(win10最新的更新似乎已经修正了这个问题)</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Windows 10 技术预览版试用]]></title><description><![CDATA[微软新发布的windows 10技术预览版试用小结]]></description><link>https://swordair.com/try-out-windows-10-technical-preview/</link><guid isPermaLink="false">59fe0cf19855590d8c914766</guid><category><![CDATA[Windows]]></category><category><![CDATA[Microsoft]]></category><dc:creator><![CDATA[Sword Wang]]></dc:creator><pubDate>Thu, 02 Oct 2014 07:54:00 GMT</pubDate><media:content url="https://swordair.com/content/images/2014/10/win10-tech-pre-desktop.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://swordair.com/content/images/2014/10/win10-tech-pre-desktop.jpg" alt="Windows 10 技术预览版试用"><p>昨天微软发布了win10，这个跳过了win9的新系统，展示了微软的决心——统一移动和桌面。像win8发布时一样，我准备了一台空闲的机器作为新系统的试用平台。</p>
<p>当我下载完镜像刻录到U盘启动系统，熟悉的win8风格的出现并不意外。但安装的过程遇到了一些波折，遇到了“缺少计算机所需的介质驱动程序”的错误，后来查出是镜像损坏。所以这大型文件还是不要偷懒，校验一下hash比较好。</p>
<p><img src="https://swordair.com/content/images/2014/Oct/win10-tech-pre-desktop.jpg" alt="Windows 10 技术预览版试用"></p>
<p>安装配置完系统，win10给我的感觉很不错。第一印象：当这个系统正式上市后，会有相当一部分win7用户升级。</p>
<p>对win8没有开始菜单大部分用户都颇有微词，以至于开始菜单的回归甚至变成了一种营销口号。相对于win8的简单粗暴，win10则像是win7和win8的混合体，这样明显更容易被用户接受。</p>
<p>随便打开了一个天气的应用，应用全屏显示，但不似win8那样激进，强行让人们脱离桌面。熟悉的任务栏，使得应用更像是平板程序被嵌在桌面上。</p>
<p>如果win10成功，微软将会使得这种横向滚动的交互模式为人所熟知，想必<strong>这会催生出越来越多的横向滚动交互的网页</strong>。</p>
<p><img src="https://swordair.com/content/images/2014/Oct/win10-tech-pre-weather.jpg" alt="Windows 10 技术预览版试用"></p>
<p>资源管理器现在更加简约和易用。</p>
<p><img src="https://swordair.com/content/images/2014/Oct/win10-tech-pre-explorer.png" alt="Windows 10 技术预览版试用"></p>
<p>进入store，体验和win8类似，但依旧是身在桌面的环境中。</p>
<p><img src="https://swordair.com/content/images/2014/Oct/win10-tech-pre-store.jpg" alt="Windows 10 技术预览版试用"></p>
<p>我的使用的机器配置是 i5-3470，8G 1600，256G SDD，也算是中端配置，运行起来自然是非常流畅。新系统开机速度感人，在这块256G SDD的帮助下，仅仅4到5秒的时间。</p>
<p>试用了半小时，看了一下自己主要的关注点，都做的不错。也没有之前体验win8时找不到关机的尴尬:) 所以微软无愧于2代王的美誉，无论xp，win7，都需要有个垫背的前辈。这次还是一样，win8背锅妥妥的了。</p>
<p>Windows 10毫无疑问，将会是一个集大成者，并守护巨人的尊严。前提是，win7如果让道的话...</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[漫谈font-size]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>起因是下面的这句话：</p>
<pre><code>font-size: 75%; /* Resets 1em to 11px */
</code></pre>
<p>这是我曾经喜欢的wordpress主题 Bito 的第一句CSS。印象里还是记得默认值是16px，那么75%就是12px了。不过这只是表面问题，其实大部分人都不怎么关系字体大小的本质。</p>
<h2 id>从标准看起</h2>
<p><a href="http://www.w3schools.com/css/pr_font_font-size.asp">W3Cschools的font-size参考</a>相当简单，只是简单的列举了属性的可取值。并且<a href="http://www.w3.org/TR/2009/CR-CSS2-20090908/fonts.html#propdef-font-size">CSS2.1 Specification RC20090908</a>里，关于font-size的定义也并不多。</p>
<p>大体上，font-size的值非常宽泛，即可以是关键词定义的绝对值，可以是百分比或者 em 的相对值，还可以是绝对单位px。在实际工作中，我自己都似乎快习惯于用px定义字体大小，很少使用到那些关键字或者比例，但可能这不是个好习惯。回想自己学习CSS的过程里的例项，大部分都是用em或者百分比的。</p>
<h2 id="px">关于px</h2>
<p>对font-size直接应用px值，这样做非常精确，而且也方便，所以我们习以为常。当对font-size赋予px值意味着浏览器将会把文本渲染成指定的像素那般高。并且通常情况是，西文字符在9px以下、中文字符在12px以下时，文字将难以辨认。使用像素单位的主要问题是两个：</p>]]></description><link>https://swordair.com/discussion-on-font-size/</link><guid isPermaLink="false">59fe0cf19855590d8c9146d6</guid><category><![CDATA[Chrome]]></category><category><![CDATA[CSS]]></category><category><![CDATA[FireFox]]></category><category><![CDATA[IE8]]></category><category><![CDATA[Opera]]></category><category><![CDATA[Safari]]></category><category><![CDATA[Windows]]></category><category><![CDATA[XHTML]]></category><dc:creator><![CDATA[Sword Wang]]></dc:creator><pubDate>Wed, 07 Jul 2010 16:16:24 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>起因是下面的这句话：</p>
<pre><code>font-size: 75%; /* Resets 1em to 11px */
</code></pre>
<p>这是我曾经喜欢的wordpress主题 Bito 的第一句CSS。印象里还是记得默认值是16px，那么75%就是12px了。不过这只是表面问题，其实大部分人都不怎么关系字体大小的本质。</p>
<h2 id>从标准看起</h2>
<p><a href="http://www.w3schools.com/css/pr_font_font-size.asp">W3Cschools的font-size参考</a>相当简单，只是简单的列举了属性的可取值。并且<a href="http://www.w3.org/TR/2009/CR-CSS2-20090908/fonts.html#propdef-font-size">CSS2.1 Specification RC20090908</a>里，关于font-size的定义也并不多。</p>
<p>大体上，font-size的值非常宽泛，即可以是关键词定义的绝对值，可以是百分比或者 em 的相对值，还可以是绝对单位px。在实际工作中，我自己都似乎快习惯于用px定义字体大小，很少使用到那些关键字或者比例，但可能这不是个好习惯。回想自己学习CSS的过程里的例项，大部分都是用em或者百分比的。</p>
<h2 id="px">关于px</h2>
<p>对font-size直接应用px值，这样做非常精确，而且也方便，所以我们习以为常。当对font-size赋予px值意味着浏览器将会把文本渲染成指定的像素那般高。并且通常情况是，西文字符在9px以下、中文字符在12px以下时，文字将难以辨认。使用像素单位的主要问题是两个：</p>
<ol>
<li>当把文字设定为固定px值后，IE6以下浏览器将不能对其缩放。</li>
<li>固定尺寸后失去级联特性。</li>
</ol>
<p>老外的眼里，第一点似乎是个大问题，因为他们把网站的可访问性和易用性看的很重，无法看清字几乎是不能容忍的。而第二点，只要不做弹性布局或者设置字体调节器之类的应用，并且针对的只是显示器，也就不是大问题。这恐怕也是导致px这么泛滥的原因。好用，简单，并且最重要的是——精确。</p>
<p>但是对于易用性来说，px似乎不是个好东西。<br>
<a href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990324/#tech-relative-units">W3C Web 可访问性指南</a>：在标记语言的属性值和样式表属性值里使用相对单位而不是绝对单位。[...]比如，在CSS里，使用 ‘em’ 或者 百分比长度 而不是使用绝对单位 ‘pt’ 或者 ‘cm’ 。</p>
<h2 id>百分比的使用</h2>
<p>百分比和em都是相对值，相对于父元素的字体大小。1em等于1个字体的大小，<a href="http://css-tricks.com/">Chris Coyier</a>认为em是基于大写字母 M 的宽度(除此以外，我找不到更好的参考)。使用百分比和em可以很好使得各个元素间产生级联的比例关系。</p>
<p>鉴于windows的浏览器，默认的字体大小是medium，即 16ppem (后面会讲到)下显示为16px。所以75%就是12px，而62.5%就是10px。</p>
<p>基于<a href="http://webtech-walker.com/archive/2008/05/16032443.html">font-sizeのパーセント表記一覧</a>里的百分比的零散表格，我重新组织了下面这张整表。下表仅仅作为参考，因为百分比的微弱递减或递增不会对文本产生可视化的效果(当然也有例外)，反而容易产生出混乱的级联百分比关系。</p>
<table>
	<tr>
		<th>值\相对值</th>
		<th>12px</th>
		<th>13px</th>
		<th>14px</th>
		<th>15px</th>
		<th>16px</th>
	</tr>
	<tr>
		<th>10px</th>
		<td>84%</td>
		<td>77%</td>
		<td>72%</td>
		<td>67%</td>
		<td><span style="color:red;">63%</span></td>
	</tr>
	<tr class="even">
		<th>11px</th>
		<td>92%</td>
		<td>85%</td>
		<td>79%</td>
		<td>74%</td>
		<td>69%</td>
	</tr>
	<tr>
		<th>12px</th>
		<td>100%</td>
		<td>93%</td>
		<td>86%</td>
		<td>80%</td>
		<td><span style="color:red;">75%</span></td>
	</tr>
	<tr class="even">
		<th>13px</th>
		<td>109%</td>
		<td>100%</td>
		<td>93%</td>
		<td>87%</td>
		<td>82%</td>
	</tr>
	<tr>
		<th>14px</th>
		<td>117%</td>
		<td>108%</td>
		<td>100%</td>
		<td>94%</td>
		<td>88%</td>
	</tr>
	<tr class="even">
		<th>15px</th>
		<td>125%</td>
		<td>116%</td>
		<td>108%</td>
		<td>100%</td>
		<td>94%</td>
	</tr>
	<tr>
		<th>16px</th>
		<td>134%</td>
		<td>124%</td>
		<td>115%</td>
		<td>107%</td>
		<td>100%</td>
	</tr>
	<tr class="even">
		<th>17px</th>
		<td>142%</td>
		<td>131%</td>
		<td>122%</td>
		<td>114%</td>
		<td>107%</td>
	</tr>
	<tr>
		<th>18px</th>
		<td>150%</td>
		<td>139%</td>
		<td>129%</td>
		<td>120%</td>
		<td>113%</td>
	</tr>
	<tr class="even">
		<th>19px</th>
		<td>159%</td>
		<td>147%</td>
		<td>136%</td>
		<td>127%</td>
		<td>119%</td>
	</tr>
	<tr>
		<th>20px</th>
		<td>167%</td>
		<td>154%</td>
		<td>143%</td>
		<td>134%</td>
		<td>125%</td>
	</tr>
	<tr class="even">
		<th>21px</th>
		<td>175%</td>
		<td>162%</td>
		<td>150%</td>
		<td>140%</td>
		<td>132%</td>
	</tr>
	<tr>
		<th>22px</th>
		<td>184%</td>
		<td>170%</td>
		<td>158%</td>
		<td>147%</td>
		<td>138%</td>
	</tr>
	<tr class="even">
		<th>23px</th>
		<td>192%</td>
		<td>177%</td>
		<td>165%</td>
		<td>154%</td>
		<td>144%</td>
	</tr>
	<tr>
		<th>24px</th>
		<td>200%</td>
		<td>185%</td>
		<td>172%</td>
		<td>160%</td>
		<td>150%</td>
	</tr>
	<tr class="even">
		<th>25px</th>
		<td>209%</td>
		<td>193%</td>
		<td>179%</td>
		<td>167%</td>
		<td>157%</td>
	</tr>
	<tr>
		<th>26px</th>
		<td>217%</td>
		<td>200%</td>
		<td>186%</td>
		<td>174%</td>
		<td>163%</td>
	</tr>
</table>
<p>之所以选择了参考了这位日本开发者的资料是有原因的。比如，我们常常全局定义字体的相对medium(通常为16px)的62.5%，也就是10px，然后再对文档的个个其他部分定义em值。相对于10px，1.2em就是12px，1.6em就是16px，依次类推。这样的比例使用起来很直观，并且会在所有的浏览器里表现完好，当然除了IE。</p>
<p>IE会错误的显示字体大小(感觉上是字体框架有细微的变大)，并且仅限于中文。除非我们将比例设置成63%而不是62.5%。所以当我看到这张表中63%的时候，我觉得同是非西欧字符，这张表应该更具有参考价值。不过这些值我也没能自己去全部测试，偷懒一下～</p>
<p>em似乎比百分数更加直观，而且对于一个字体的宽度的把握往往也更容易。同时它们有相同的级联性，使用的时候总是要避免规则的叠加。比如定义 div{font-size:1.2em;} ，那么在div里包含div就会出问题。1.2emx1.2em的叠加会使得文字比想象中的大——但这还不要紧，如果使用的是0.8em？缩小倍率的多次叠加很快会使得文字变得无法分辨。</p>
<p>无论是em还是百分比，都是相对值。并且常常相对于medium。但是关于medium这类关键字，就有了更多的话题。</p>
<h2 id>关键字</h2>
<p>我对于font-size的理解一直停留在上面说的那些，直到半个月前，我读到这篇<a href="http://style.cleverchimp.com/font_size_intervals/altintervals.html">Toward a standard font size interval system</a>。</p>
<p>回到之前的<a href="http://www.w3.org/TR/2009/CR-CSS2-20090908/fonts.html#propdef-font-size">CSS2.1 Specification RC20090908</a>，标准把关键字定义为这样：</p>
<table>
	<tr>
		<th>CSS absolute-size values</th>
		<td>xx-small</td>
		<td>x-small</td>
		<td>small</td>
		<td>medium</td>
		<td>large</td>
		<td>x-large</td>
		<td>xx-large</td>
		<td style="background:#eee;">&nbsp;</td>
	</tr>
	<tr>
		<th>HTML font sizes</th>
		<td>1</td>
		<td style="background:#eee;">&nbsp;</td>
		<td>2</td>
		<td>3</td>
		<td>4</td>
		<td>5</td>
		<td>6</td>
		<td>7</td>
	</tr>
</table>
回顾略显古老的[HTML 3.2 Reference Specification - Font](http://www.w3.org/TR/REC-html32#font)，这七个关键字是否是对应于已经实现的HTML font标记不得而知，但是上面的对应关系并不是一一对应的，medium对应的是size 3。[Html Font Size Tutorial CSS Style](http://www.htmlcss.org/font-size.html)上可以清楚的看到全部的关键字效果。
<p>下面这张图，更加直观些。但是注意第二行。同样对于English Font加上larger，IE8和FF渲染为18px，Opera、Chrome和Safari则渲染为19px。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/font_size_compare.png" alt="font size compare"></p>
<p>下面的表截取自<a href="http://style.cleverchimp.com/font_size_intervals/altintervals.html">Toward a standard font size interval system</a>里的Synoptic table，对应于windows常用的96dpi的情况。是的，96dpi，我们几乎从来不去改变这个默认的值，除非也许某个人因为高分屏字太小的折磨，而主动调大到了120dpi。</p>
<table cellpadding="3" cellspacing="0">
	<tr>
		<td style="text-align:right;background:black;color:#FFCC00;">CSS absolute size keywords:</td>
		<td style="background:#FFFFCC;">xx-small</td>
		<td style="background:#FFFF99;">x-small</td>
		<td style="background:#FFFF66;">small</td>
		<td style="background:#FFFF00;">medium</td>
		<td style="background:#FFFF66;">large</td>
		<td style="background:#FFFF99;">x-large</td>
		<td style="background:#FFFFCC;">xx-large</td>
		<td style="background:#808080;">&nbsp;</td>
	</tr>
		<td style="text-align:right;background:black;color:#FFCC00;">HTML absolute font sizes:<br>(interpolated Mozilla values)</td>
		<td style="background:#FFFFCC;">1</td>
		<td style="background:#808080;">&nbsp;</td>
		<td style="background:#FFFF66;">2</td>
		<td style="background:#FFFF00;">3</td>
		<td style="background:#FFFF66;">4</td>
		<td style="background:#FFFF99;">5</td>
		<td style="background:#FFFFCC;">6</td>
		<td style="background:#FFFFCC;">7</td>
	<tr>
		<td style="text-align:right;background:black;color:#FFCC00;">HTML headings:<br>(interpolated Mosaic values)</td>
		<td style="background:#FFFFCC;">h6</td>
		<td style="background:#808080;">&nbsp;</td>
		<td style="background:#FFFF66;">h5</td>
		<td style="background:#FFFF00;">h4</td>
		<td style="background:#FFFF66;">h3</td>
		<td style="background:#FFFF99;">h2</td>
		<td style="background:#FFFFCC;">h1</td>
		<td style="background:#808080;">&nbsp;</td>
	</tr>
	<tr>
		<td style="text-align:right;background:#FFCC00;color:black;">normalized scaling factor:</td>
		<td>60% - 3:5</td>
		<td>75% - 3:4</td>
		<td>89% - 8:9</td>
		<td>100% - 1:1</td>
		<td>120% - 6:5</td>
		<td>150% - 3:2</td>
		<td>200% - 2:1</td>
		<td>300% - 3:1</td>
	</tr>
	<tr>
		<td style="text-align:right;background:black;color:#FFCC00;">px computed from a 16 ppem base:<br><br>e.g., 12pt @ 96ppi or 16pt @ 72ppi<br>(XP 5.0 UA default)</td>
		<td>10px<br><br><span style="font-size:10px">E</span></td>
		<td>12px<br><br><span style="font-size:12px">E</span></td>
		<td>14px<br><br><span style="font-size:14px">E</span></td>
		<td>16px<br><br><span style="font-size:16px">E</span></td>
		<td>19px<br><br><span style="font-size:19px">E</span></td>
		<td>24px<br><br><span style="font-size:24px">E</span></td>
		<td>32px<br><br><span style="font-size:32px">E</span></td>
		<td>48px<br><br><span style="font-size:48px">E</span></td>
	</tr>
</table>
<p>牵扯到一个很重要的概念，ppem。它指的是Pixels per em，即每个字体大小的像素数，定义了字符在屏幕上的易读性。关于更多的信息，我强烈建议阅读<a href="http://style.cleverchimp.com/font_size_intervals/altintervals.html">Toward a standard font size interval system</a>原文。</p>
<p>当把xp的dpi从96调整到120， 整个系统的尺寸，包括图形和文字都被放大了。此时，如果打开IE，font-size:medium 不再是16px，而是20px。虽然我也试过Chrome和FireFox，但它们没有变化。我不明白原因，如果有人知道，麻烦请告诉我声: ）</p>
<p>这再次的提醒了我们，CSS不是只为显示器而设计的，而且也不是专为windows而设计的。我们有时可能需要考虑更多更多。<br>
水平有限，文中如有错误望指正~</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[浅谈手工杀毒]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><strong>21 December 2013:</strong> 很多年前写的文章了，现在(2013-12-21)换Ghost所以又打开来。现在win7的角度而言，文中的绝大部分内容都已经过时。很多软件也都已经物是人非，比如360俨然就是流氓...win7开启UAT的情况下已经足够安全，如果保持良好的上网习惯，其实裸奔基本不成问题～</p>
<hr>
<p>这是一篇已经发布了1年零4个月的文章(最初发布在<a href="http://bbs.blueidea.com/viewthread.php?tid=2903643">经典论坛</a>)，所以很多内容已经变得很过时。之所以仍然把它抄回自己博客，完全是出于一种初次认真撰写帖子的回忆。那时自己还没毕业，想法和做法都很稚嫩，但是我仍记得那时的热情。</p>
<p>现在越发觉得发帖和撰写文章的不易。一篇思路明晰的技术文章，往往需要作者花上数小时撰写，更不用说在那之前，花上数十倍甚至是百倍的时间来融汇贯通。现在，每每从他人处有所收获，就必然会在留言档里表示感谢。现在，也几乎不再转载，除非是翻译，或者是一些匿名的思考。相对的，更愿意放上一个链接指回原文。</p>
<p>这些都让我再次回想起这篇《浅谈手工杀毒》。现在看来，可能只是肤浅而过时地讨论了怎么使用工具查找和删除病毒，但我无法忘记，一年半前，自己努力地聚合自己全部的但仍然显得苍白的关于病毒的知识，收集起那些截取的和文章有关的偶发遇到病毒的图片，然后理成一篇帖子。</p>
<h2 id>原文</h2>
<p>在写主题之前，先写些题外话。</p>
<p>计算机安全，</p>]]></description><link>https://swordair.com/discussion-manual-antivirus/</link><guid isPermaLink="false">59fe0cf19855590d8c9146c7</guid><category><![CDATA[Windows]]></category><dc:creator><![CDATA[Sword Wang]]></dc:creator><pubDate>Sun, 28 Mar 2010 16:28:22 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><strong>21 December 2013:</strong> 很多年前写的文章了，现在(2013-12-21)换Ghost所以又打开来。现在win7的角度而言，文中的绝大部分内容都已经过时。很多软件也都已经物是人非，比如360俨然就是流氓...win7开启UAT的情况下已经足够安全，如果保持良好的上网习惯，其实裸奔基本不成问题～</p>
<hr>
<p>这是一篇已经发布了1年零4个月的文章(最初发布在<a href="http://bbs.blueidea.com/viewthread.php?tid=2903643">经典论坛</a>)，所以很多内容已经变得很过时。之所以仍然把它抄回自己博客，完全是出于一种初次认真撰写帖子的回忆。那时自己还没毕业，想法和做法都很稚嫩，但是我仍记得那时的热情。</p>
<p>现在越发觉得发帖和撰写文章的不易。一篇思路明晰的技术文章，往往需要作者花上数小时撰写，更不用说在那之前，花上数十倍甚至是百倍的时间来融汇贯通。现在，每每从他人处有所收获，就必然会在留言档里表示感谢。现在，也几乎不再转载，除非是翻译，或者是一些匿名的思考。相对的，更愿意放上一个链接指回原文。</p>
<p>这些都让我再次回想起这篇《浅谈手工杀毒》。现在看来，可能只是肤浅而过时地讨论了怎么使用工具查找和删除病毒，但我无法忘记，一年半前，自己努力地聚合自己全部的但仍然显得苍白的关于病毒的知识，收集起那些截取的和文章有关的偶发遇到病毒的图片，然后理成一篇帖子。</p>
<h2 id>原文</h2>
<p>在写主题之前，先写些题外话。</p>
<p>计算机安全，关键在“防”，所以平常所做的防护以及备份工作是最重要的！</p>
<p>系统安全，方法有很多：影子系统、虚拟机、沙箱...但很多时候真的没有必要。保持良好的上网习惯和用机习惯，做好适当的备份就可以了。所以这里不讨论那些虚拟技术，主要是真实系统中的一些问题。虽然谈的是手工杀毒，但还是要列举一下平常会用到的可能有关的一些东西：<br>
——360，卡卡，超级兔子，window清理助手，超级巡警，黄山IE修复，恶意软件清理助手......虽然并不讨论，但是这些日常所用到过的东西很有帮助。</p>
<p>对于杀毒软件的优劣没什么多评判的，主流我几乎都算是用过一遍了，也只是觉得各有所长。对于防御，最重要的无非还是补丁和好的习惯，手工只是辅助，杀毒软件仍然只是辅助吧。</p>
<p>下面是一般处理的方式（一层进一层地处理）：</p>
<ol>
<li>安全模式下全盘查杀。</li>
<li>将硬盘挂接到其它机器上全盘查杀。</li>
<li>重装系统后，仅操作桌面的情况下，安装杀毒软件全盘查杀。</li>
</ol>
<p>依靠杀毒软件是对的，因为手工来杀意味着麻烦和很可能的失败，但是完全交给杀毒软件也不妥当。在病毒成功干扰杀毒软件之后，我们就要手工尽可能去排除干扰。一旦病毒进来了，难说病毒不会把杀毒软件先干掉。即使不用，了解下也没有坏处。</p>
<p>进入手工杀毒的主题。</p>
<p>当中毒之后，第一步，就是断网，并且千万不能系统重启(即使重启也不要正常重启)。</p>
<p>中毒后的症状现在也出奇的有一致性，干扰如360这类安全工具，禁用任务管理器等等。平时多注意任务管理器多注意进程，熟悉系统盘里的文件，以及文件的修改时间，会为手工杀毒带来方便，第一时间知道中毒，第一时间划定可疑范围。在杀毒里最开始也是最重要的一步，就是干掉病毒的进程。这就涉及到很多工具。没有这些工具，手工杀毒根本无从谈起。</p>
<p>首先是我们平时用的最多的任务管理器。用Ctrl+Shift+ESC调出(似乎平时人们都更喜欢Ctrl+Alt+Delete)。最大的缺点是不能同时结束两个以上的进程，而且可以说一直是病毒的首要目标，功能比较鸡肋。但是通常可以是一个信号灯，一旦其失效，就要考虑是不是中毒了~</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_1.jpg" alt></p>
<p>我强烈推荐Sysinternals的Process Explorer和Process Monitor，因为这两个软件实在是太好了。自从Winternals被微软收购后，Sysinternals也被并入微软名下，所以其工具对于windows系统的支持非常好。</p>
<p>Process Explorer可以完全取代系统自带的鸡肋般的taskmanager，提供的功能之强，使得这款软件历经多年仍然难有出其右者。对于进程信息的提供真是应有尽有了，详细而透彻。虽然近一年时间似乎也逐渐成为病毒屏蔽目标之一，但是强大功能和实用性，我一直无法放弃使用。按Ctrl+H,还可以切换到Handler视图进行更加高级的操作。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_2.jpg" alt></p>
<p>早些时候使用process explorer可以说是百试百灵的，可以逃脱的病毒并不多，现在情况就差很多了。下面是我以前碰到的一个例子:U盘上总是会被写上一个文件，文件大小是655k，删除之后过会又会重建。在任务管理器中看不出什么问题，但是在process explorer下却是一目了然。有一个进程作为用户进程居然没有父进程，看其行为，居然每隔一定时间就有一次IO操作，大小刚好也是655k。于是找到位置，删除之。同时用Process Monitor追踪了一下找到其他一些文件删除，系统恢复。可以说杀的并不完整，但是病毒已经无效化了。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_3.jpg" alt></p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_4.jpg" alt></p>
<p>Process Monitor实际上是对进程的文件系统和注册表调用的监视。对于特定进程可以完全跟踪文件读写和注册表的读写，这对于排查病毒极为有用。同时也提供了一个进程查看器，其虽然不如专门的进程查看器process explorer强大，却也十分实用，特别是存活时间可以说是一目了然。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_5.jpg" alt></p>
<p>在熊猫烧香肆虐的时候，可以说是IceSword大显神威的时候。对于这款软件就不多说了，到了1.22后软件作者就没有再更新了，功能之强大也是沿用至今的利器。但是我一直是用不好的，因为自从用起Sysinternals的工具后，用冰刃的时候就少了很多。强大的工具，要小心使用，不然会危及系统。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_6.jpg" alt></p>
<p>也许以上我都是在介绍软件，但是事实就是这样。我们必须借助软件工具找到病毒进程，找到病毒位置。其实很有意思，杀毒的大部分时间都是花在寻找病毒之上的，不论是杀毒软件，还是手工处理。很多时候也许没有这么多工具可用，那么就只能考虑CMD了。运行中输入cmd进入命令行，命令tasklist可以显示当前进程信息，而命令taskkill则可以杀掉指定PID的进程。详细的可以键入tasklist /?看帮助，说明和用法都很详细。另外记得还有个tskill，和一个ntsd，记不怎么清楚了，我不常用。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_7.jpg" alt></p>
<p>常常还用一些辅助软件，因为觉得很多时候工具都是不够用的。比如一个网络工具——Tcpview，可以查看网络信息和链接，这对于系统诊断也是相当有效。看看哪个进程在做坏事吧，这个工具总是可以给我带来惊喜，尽管它不仅仅可以用于查毒。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_8.jpg" alt></p>
<p>与之对应的是，CMD也是又命令可以达到类似效果的，但是比较麻烦。命令netstat，并配合其参数也可以有比较好的效果。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_9.jpg" alt></p>
<p>对于这些工具，用着用着就会上手的。即使不精通的话，时间长了观察熟了抓毒就越快越准了。所以我不打算再讲简单用法了，使用这些工具仅仅只需要一些计算机的知识，或者说想要做高级一点的操作，需要的是编程方面的储备，特别是操作系统那一块。</p>
<p>病毒侵入计算机后，通常都会实现自启动。找到并清除其自启动项将极大的限制其危害。通常最简单的方法是系统自带的“系统配置实用程序”。在运行里输入msconfig回车，在启动标签里，显示了一部分的系统启动项目，通过简单的勾选可以选择要启动的项目。然而对于系统本身来说，这里没有一个启动项是必须的，可以全部去掉也没什么关系。通常的做法是保留ctfmon(系统输入法)，选择保留其他的自己的程序。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_10.jpg" alt></p>
<p>更加多的启动项就要到注册表里寻找了。运行regedit启动注册表编辑器，查找定位到一些启动位置看看是否又异常。以比较常见的位置来说，HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\下的Run、RunOnce、RunOnceEx、RunOnce\Setup、RunServices、RunServicesOnce以及HKEY_CURRENT_USER分支下对应的这些位置，都可以被利用，其中又尤以Run下的改动最为常见。事实上msconfig所列出的也就是注册表里的东西。另外还有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run及HKEY_CURRENT_USER对应位置等，网上搜索应可以找到一些更加偏的位置，虽然同样可以利用，但是通常比较少见。而对于“C:\Documents and Settings\用户名\开始菜单\程序\启动”里的所有快捷方式，系统会自动启动。这可以方便的先自己希望自启动的程序。此位置并不常被利用，但还是要留意下。更详细的启动项位置关系可以google下，知道了启动的顺序、作用可以更清楚地了解这个过程，在此不再复述。<br>
对于可疑的自启动项，可以直接删除。并且还要对注册表全面关键字搜索，直接确定的就删除，无法确定的就上网查找信息。而在修改之前，对于犹如系统数据库般的注册表，同样要本着备份的思想。备份的方法是在注册表编辑器里右击要备份的分支，然后“导出”。现在形形色色注册表备份工具，也给注册表的备份和恢复提供了便利。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_11.jpg" alt></p>
<p>运行services.msc可以启动系统服务配置。如果病毒成功的获取了系统权限，成功的注册成了系统服务，那么这里也是不能放过的。通常在这里优化系统的服务可以减少必要的进程从而达到优化系统的目的。这些服务设置为自动则会在开机时自启动，设置为手动则是在必要是调用启动。对于危险项(比如Remote Registry)则通常是禁用的。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_12.jpg" alt></p>
<p>病毒注册成服务后，有些很明显，没有描述启动位置也很可疑，有些则会伪装。下图是我以前遇到过的一个例子，这让人想起了进程里的伪装，虽然拙劣但是用心良苦。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_13.jpg" alt></p>
<p>修改服务时，最好也做好备份，可以导出注册表对应分支HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。</p>
<p>还有一个地方值得一看，那就是启动/关机脚本。运行gpedit.msc启动组策略编辑器，在位于用户配置-Windows设置-脚本(登录/注销)位置，在这里设置的脚本将会在登录或注销自动执行。</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_14.jpg" alt></p>
<p>但是很多时候处理问题并不是这么复杂，使用集成工具可以大大简化这些操作。我用的是功能强大的Autoruns(呵呵，又是一个Sysinternals的东西)。这个工具把系统的启动项统统笼络在一个界面里提供管理和查询，有用的描述和映像路径帮助我们找出可疑文件。当然，工具越是强大也就越是危险，以前我还在琢磨Autoruns的使用的时候就搞的系统崩溃了，以后用的时候格外小心...</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_15.jpg" alt></p>
<p>很多系统优化工具也提供启动项的管理，包括360在内的很多软件的这种功能也很好用。但是关键之一就是中毒之后，360很多时候都不能用（当然也可以选择修360），那个时候就是有什么能用就用什么的境地了，多几种方法绝对有好处。</p>
<p>说完了自启动，下面就要杀毒了。其实所谓的杀毒或者说删除是在是杀毒过程中的一小部分。通过上面的方法——不论是在进程中还是启动项里查到或者是跟踪得到的位置信息(总之寻到蛛丝马迹是上面的主要任务)，现在就是找到那个位置，把病毒delete。直接删除，很少可以成功，即使删除成功，病毒也大多不会终结。</p>
<p>无法删除，不管是由于进程没有清理完整，或者驱动级病毒的文件保护以及系统进程的注入等都会导致这种情况。借助于Unlocker这种解除锁定的工具</p>
<p><img src="https://swordair.com/content/images/2013/Dec/discussion_manual_antivirus_16.jpg" alt></p>
<p>再配合如文件粉碎机或者文件强行删除工具强制删除，效果较好。同时在安全模式下操作可以保证成功率，尽管很多时候安全模式都被破坏，但是应该尽可能地使用安全模式。实在无法解决只能诉诸于DOS，或者WinPE，系统之上的系统可以干掉所有非底层病毒。DOS下相对操作较为繁琐，PE系统则易用很多，许多PE系统还提供很多有用的工具。但是关于删除，我想我还又别的思路，那就是在定位病毒文件磁盘扇区后，强制使用MHDD调硬盘直接把那个地方erase掉！对此我尝试过，但是步骤显得太繁杂，还不如纯DOS，所以只能说是一种噱头。</p>
<p>另一个问题是如何揪出病毒的残余？对此我个人的方法十分有限，除了盲目地跟踪加载项(很少有人对此有兴趣并且擅长)，以及没头没脑地使用各种工具寻找蛛丝马迹外，没有很好的方法。平常还用一种手段，就是编写一小段脚本找出系统可疑的近期创建的文件。如果是在中毒后立即发现并查杀的话，此方法尤其奏效。但是局限于程序员和对系统环境熟悉并且敏感的人。所以说，手工杀毒，并非是推荐方法。</p>
<p>最后的步骤，我想说，让杀毒软件来解决吧......虽然本文写的是手工，但是作为非专业杀毒的区区网管，我感觉自己所能做的实在是很有限的。尽可能地阻止病毒的进程和启动，解除病毒体对于杀毒软件的干扰，我认为是作为手工杀毒的主要任务，这是由于我个人能力比较有限。虽然已经过了牛人辈出的时代，但是牛人的数量却是惊人，如果是他们的话，一定可以妙手摘毒的吧。</p>
<p>本文的最后，我再写一些个人感想和建议。</p>
<h4 id>感想</h4>
<ol>
<li>重装系统作为最后的手段，效果其实最好。如果不是有什么麻烦的情况的话，不如直接重装。因为手工杀个把病毒的时间通常超过重装，而且面临失败的危险从而浪费了宝贵的时间（当然喜欢研究就不一样了）。必须权衡时间上的利弊，干脆重装，然后在不点击盘符的情况下，安装杀毒软件后全盘扫描。</li>
<li>备份，还是备份！如果数据珍贵，千万不可偷懒。刻盘很安全，磁盘的话也要分开放置。所谓真正的数据备份，必然是存储介质相分离的。</li>
</ol>
<h4 id>建议</h4>
<ol>
<li>及时打上所有系统必要补丁，使用FF浏览网页，并及时清理临时文件夹，将大大减少中毒几率。</li>
<li>平时使用时开一个低权限的用户，做什么操作使用什么权限，将大大降低中毒后的危害。麻烦和安全通常唱反调~</li>
<li>保持系统精简高效的运行，将会在最快时间发现中毒症状，使破坏和感染都减到最低的同时方便查杀。</li>
<li>备份，再提备份！无论是windows自带的还原(虽然有点鸡肋)还是ghost的快速犀利，甚至是动用veritas等等,总之备份是计算机使用者最好的习惯！</li>
</ol>
<h4 id>关于杀毒软件：</h4>
<ol>
<li>杀毒软件的备份通常可以有磁盘备份和增量备份，请经常备份杀毒软件的病毒库</li>
<li>通常杀毒软件可以全部复制到其它文件夹，等重装软件后在全部复制回来，是比较通用的备份方式</li>
<li>个人推荐avast，理由是免费+好使......</li>
<li>最后，定期处理木马，为此需要有一款专门的反木马软件。</li>
</ol>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[在windows上配置LMS ilias-3.9.x]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>这是一份完整详细的配置文档，关于如何在windows上的ilias-3.9.x以及ilias-3.10.x的配置。</p>
<p>发布本文时ilias最新稳定版本已升至4.0.3，已自带大部分依赖工具，安装已经不再如文中所述这么繁复。<em>created by iifksp 2009/08/03</em></p>
<p>对于ilias3-3.9.x来说，在windows上的安装过程比起在linux上的要复杂一些。</p>
<p><a href="http://www.ilias.de/">ILIAS官方网站</a> | <a href="http://www.ilias.de/docu/goto.php?target=pg_29381_367&amp;client_id=docu">官方windows安装文档</a></p>
<p>环境：windows xp sp3 / xampp-1.7.1</p>
<h2 id="1xampp">1. 安装xampp</h2>
<p>PHP的运行环境选择官方推荐的XAMPP集成环境的windows版本。ilias 3.X 被证明在XAMPP运行良好。</p>
<p>XAMPP包含了最新版本的Apache、MySQL、PHP以及Perl。在XAMPP的官方可以下载到最新版本的XAMPP：<a href="http://www.apachefriends.org/en/xampp-windows.html">http://www.apachefriends.org/en/xampp-windows.html</a><br>
当前版本为1.7.</p>]]></description><link>https://swordair.com/ilias-configuration-on-windows/</link><guid isPermaLink="false">59fe0cf19855590d8c9146b6</guid><category><![CDATA[LMS]]></category><category><![CDATA[Windows]]></category><dc:creator><![CDATA[Sword Wang]]></dc:creator><pubDate>Thu, 11 Feb 2010 10:33:57 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>这是一份完整详细的配置文档，关于如何在windows上的ilias-3.9.x以及ilias-3.10.x的配置。</p>
<p>发布本文时ilias最新稳定版本已升至4.0.3，已自带大部分依赖工具，安装已经不再如文中所述这么繁复。<em>created by iifksp 2009/08/03</em></p>
<p>对于ilias3-3.9.x来说，在windows上的安装过程比起在linux上的要复杂一些。</p>
<p><a href="http://www.ilias.de/">ILIAS官方网站</a> | <a href="http://www.ilias.de/docu/goto.php?target=pg_29381_367&amp;client_id=docu">官方windows安装文档</a></p>
<p>环境：windows xp sp3 / xampp-1.7.1</p>
<h2 id="1xampp">1. 安装xampp</h2>
<p>PHP的运行环境选择官方推荐的XAMPP集成环境的windows版本。ilias 3.X 被证明在XAMPP运行良好。</p>
<p>XAMPP包含了最新版本的Apache、MySQL、PHP以及Perl。在XAMPP的官方可以下载到最新版本的XAMPP：<a href="http://www.apachefriends.org/en/xampp-windows.html">http://www.apachefriends.org/en/xampp-windows.html</a><br>
当前版本为1.7.1。</p>
<p>安装之前，创建XAMPP的安装目录。由于在默认Vista的设置下缺少c:program files文件夹足够的写入权限，所以XAMPP被推荐安装在c:myfolderxampp。</p>
<ul>
<li>新建文件夹C:\xampp (XAMPP将被安装在这里)</li>
<li>新建文件夹C:\xampp\ILIAS_DATA (ILIAS的数据被存储在这里，但这不是存储课程数据的位置)</li>
<li>新建文件C:\xampp\ILIAS_DATA\ILIAS3_LOG.txt (ILIAS的日志文件)。配置完上面后，运行xampp的安装，选择安装路径(e.g C:xampp)，选择需要的选择完成安装。</li>
</ul>
<h2 id="2php">2. 配置PHP环境</h2>
<p>按照官方要求配置PHP的运行，主要配置文件如下</p>
<pre><code>apache C:\xampp\xampp\apche2\inphp.ini
php5 C:\xampp\xampp\php\php.ini
php4 C:\xampp\xampp\php\php4\php.ini
</code></pre>
<p>文件php5.ini和php4.ini是备份拷贝。修改php.ini的条目：解注</p>
<pre><code>;error_log = xamppxamppapachelogsphperror.log
</code></pre>
<p>将下面条目修改为100M：</p>
<pre><code>post_max_size = 16M
</code></pre>
<p>将下面条目修改为80M：</p>
<pre><code>upload_max_filesize = 16M
</code></pre>
<p>将下面条目修改为300：</p>
<pre><code>mysql.connect_timeout = 60
</code></pre>
<p>为了能使用sendmail作为邮件系统对外发送邮件，还需要修改下面这些设置：<br>
将</p>
<pre><code>SMTP=localhost
</code></pre>
<p>修改为所使用SMTP服务器的IP。<br>
解注</p>
<pre><code>;sendmail_from = me@example.com
</code></pre>
<p>并更改为合适值。</p>
<p>在安装过程中PHP的安全模式必须被关闭：</p>
<pre><code>safe_mode = off
</code></pre>
<p>安装完成后应该开启安全模式：</p>
<pre><code>safe_mode = on
</code></pre>
<p>通过访问<code>http://localhost/</code> 验证XAMPP的安装。通过访问<code>http://localhost/security/xamppsecurity.php</code>配置XAMPP的安全设置。</p>
<h2 id="3ilias">3. 安装ILIAS依赖软件</h2>
<p>需要安装ILIAS依赖的其他附加软件。</p>
<p>ILIAS需要zip和unzip程序压缩和解压文件，开源程序zip-win32.exe和unzip-w32.exe被证明工作良好。</p>
<p>可以在http://www.info-zip.org 找到需要的zip和unzip程序文件。<br>
我最后使用的是原生Info-ZIP unzip.exe(版本5.52)和zip(版本2.32)的拷贝，参考：<a href="http://stahlforce.com/dev/index.php?tool=zipunzip">http://stahlforce.com/dev/index.php?tool=zipunzip</a></p>
<p>两者最终被证明运行良好。将两者拷贝到XAMPP的目录中待用。</p>
<p>ILIAS还需要ImageMagick来创建和显示图像和略缩图，所以需从其官网：<a href="http://www.imagemagick.org/script/binary-releases.php">http://www.imagemagick.org/script/binary-releases.php</a> 下载ImageMagick。</p>
<p>安装时可以选择在XMAPP目录里新建文件夹(e.g. C:/xampp/imagemagick)，安装完成后需确认其安装路径下存在文件convert.exe。</p>
<p>最后，需要安装Java的运行环境JDK: <a href="http://www.java.com/en/download/download_the_latest.jsp">http://www.java.com/en/download/download_the_latest.jsp</a> 安装过程中注意其安装路径，之后需要使用(e.g. C:/programs/java)。</p>
<p>然而，到这里，官方安装文档仍然不完整。直接安装配置会遇到错误。还缺少两个PEAR组件：HTML_Template_IT和MDB2#mysql。<br>
可以到官网下载这两个组件：<a href="http://pear.php.net/">http://pear.php.net/</a><br>
两者链接分别是：<a href="http://pear.php.net/package/HTML_Template_IT">http://pear.php.net/package/HTML_Template_IT</a> 和 <a href="http://pear.php.net/search.php?q=MDB2&amp;in=packages">http://pear.php.net/search.php?q=MDB2&amp;in=packages</a> 。</p>
<p>这里推荐的做法是下载已有的PEAR包文件替换XAMPP下的PEAR文件夹。参看：<a href="http://www.ilias.de/iosbb/viewtopic.php?f=24&amp;t=5602">http://www.ilias.de/iosbb/viewtopic.php?f=24&amp;t=5602</a></p>
<p>所需文件的链接：<a href="http://www.schmitt-informatik.ch/download/ilias_pear.tar.gz">http://www.schmitt-informatik.ch/download/ilias_pear.tar.gz</a></p>
<p>下载后解压文件，用其中的文件替换XAMPP下的PEAR文件夹中的全部内容。至此，ILIAS所需安装条件满足。</p>
<h2 id="4ilias">4. 安装配置ILIAS</h2>
<p>从官方网站下载ILIAS包，解压后放在C:\xampp\htdocs文件夹中。确定解压后的文件夹中没有.htaccess文件，有则删除之。</p>
<p>使用浏览器访问<code>http://localhost/ilias3/</code> 就可以开始安装配置ILIAS了。在安装基本设置页面里，需要键入如下路径：</p>
<ol>
<li>Path to data directory：这是数据路径，选择C:/xampp/ILIAS_DATA。这个路径必须存在(不能选择创建)</li>
<li>Path to logfile：这里需要日志文件的路径和全文件名，输入C:/xampp/ILIAS_DATA/ILIAS3_LOG.txt。这个文件必须事先存在</li>
<li>Path to Convert:需要ImageMagick的convert.exe文件，选择C:/xampp/ImageMagick/convert.exe</li>
<li>Path to Zip：zip程序路径(e.g.C:/xampp/zip/zip.exe)</li>
<li>Path to Unzip: unzip程序路径(e.g.C:/xampp/unzip/unzip.exe)</li>
<li>Path to Java：需要Java的执行路径(e.g. C:/program/java/java.exe)</li>
<li>其他选项可空</li>
<li>选择一个ILIAS 3.x 的密码用作安装管理</li>
<li>点击save</li>
</ol>
<p>然后跟着向导完成安装。最后登录<code>http://localhost/ilias3/</code>使用root账户，密码homer，登录ilias使用和验证ilias的安装。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[设置xampp的mail服务]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>xampp使得windows下搭建web服务器环境变得异常简单。但是在邮件服务器这块还需要一些配置才能正常运作。</p>
<p>首先需要配置的事php.ini,在[mail function]里去掉邮件功能的注释。并对服务器、端口等做相应配置。</p>
<p>下面是基于XAMPP for Windows Version 1.7.1的配置信息：</p>
<pre><code>[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = me@example.com
</code></pre>
<p>一旦把sendmail_from设置为一个email地址，PHP会强制所有发送方地址为设置值。在XAMPP Control Panel里开启mail服务Mercury后，在PHP中仍然可能会遇到这样的错误</p>
<pre><code>553 We do not relay non-local mail
</code></pre>
<p>这需要对Mercury的配置做些修改<br></p>]]></description><link>https://swordair.com/xampp-mail-service-configuration/</link><guid isPermaLink="false">59fe0cf19855590d8c9146b1</guid><category><![CDATA[Mail]]></category><category><![CDATA[Windows]]></category><category><![CDATA[XAMPP]]></category><dc:creator><![CDATA[Sword Wang]]></dc:creator><pubDate>Tue, 02 Feb 2010 17:17:50 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>xampp使得windows下搭建web服务器环境变得异常简单。但是在邮件服务器这块还需要一些配置才能正常运作。</p>
<p>首先需要配置的事php.ini,在[mail function]里去掉邮件功能的注释。并对服务器、端口等做相应配置。</p>
<p>下面是基于XAMPP for Windows Version 1.7.1的配置信息：</p>
<pre><code>[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = me@example.com
</code></pre>
<p>一旦把sendmail_from设置为一个email地址，PHP会强制所有发送方地址为设置值。在XAMPP Control Panel里开启mail服务Mercury后，在PHP中仍然可能会遇到这样的错误</p>
<pre><code>553 We do not relay non-local mail
</code></pre>
<p>这需要对Mercury的配置做些修改<br>
Configuration-&gt;Mercury SMTP Server-&gt;Connection control<br>
去掉Do not permit SMTP relaying of non-local mail前的钩。最后一步可能不是必要的。</p>
<p>如果发送邮件时从Mercury SMTP client里看到类似找不到XXX.com的信息的话，可能是DNS没有配置好的关系。找到xampp\MercuryMail\MERCURY.INI，配置相应的DNS。</p>
<pre><code>Nameservers : 192.168.1.100,172.16.119.12
</code></pre>
<p>现在，应该可以收发邮件了。sohu的邮箱有反向域名解析，如果域名不合法是拒收邮件的。QQ邮箱则会收取，但会直接丢到垃圾邮件里去。</p>
<p>另外，也可以使用xampp捆绑的sendmail.exe来发送邮件。这个sendmail.exe是一个win32的命令行程序，其 '-t' 参数通过stdin投递邮件。这个命令行位于xampp/sendmail/sendmail.exe，其配置文件时同目录下的sendmail.ini。在sendmail.ini中：</p>
<pre><code>[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's &quot;pickup&quot; directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=localhost

; smtp port (normally 25)

smtp_port=25
</code></pre>
<p>smtp_server和smtp_port分别表示SMTP服务器主机和端口号。<br>
如果SMTP服务器要求认证，或者是认证前POP3，则还要修改下面的配置信息。</p>
<pre><code>; if your smtp server requires authentication, modify the following two lines

auth_username= swordair
auth_password= swordair

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines

pop3_server= pop.swordair.com
pop3_username= swordair
pop3_password= swordair
</code></pre>
<p>最后需要要配置PHP来使用sendmail.exe，在php.ini中：</p>
<pre><code>; For Unix only.  You may supply arguments as well (default: &quot;sendmail -t -i&quot;).
sendmail_path = &quot;C:\xampp\sendmail\sendmail.exe -t&quot;
</code></pre>
<p>把sendmail_path的值设置为sendmail.exe的路径，并且在调用时带上-t参数。</p>
<p>如果使用sendmail.exe，那么之前一开始配置的[mail function]应该重新注释起来。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>