<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>一树后花园 &#187; 技术文档</title>
	<atom:link href="http://www.onono.org/category/it/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onono.org</link>
	<description>一树的随想、生活与资料存档。</description>
	<lastBuildDate>Sun, 18 Sep 2011 01:38:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ubuntu下编译安装PHP</title>
		<link>http://www.onono.org/2011/08/650.htm</link>
		<comments>http://www.onono.org/2011/08/650.htm#comments</comments>
		<pubDate>Wed, 03 Aug 2011 14:31:18 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=650</guid>
		<description><![CDATA[Ubuntu下不管是做什么都很方便，废话少说，准备开始 apt-get install build-essential 需要用到的其他软件包 apt-get install libxml2-dev libcurl4-openssl-dev libbz2-dev libpng-dev libfreetype6-dev libmcrypt-dev libmhash-dev libmysqlclient-dev libxslt1-dev libjpeg62-dev libltdl-dev 下载PHP源码 wget -O /usr/src/php-5.2.17.tar.gz http://cn.php.net/get/php-5.2.17.tar.gz/from/this/mirror 编译参数包含了常用的模块 tar -zxvf php-5.2.17.tar.gz cd php-5.2.17/ ./configure --prefix=/usr/local/php_5.2.17 --with-mysql --with-mysqli --enable-fastcgi --enable-sockets --enable-ftp --enable-zip --enable-mbstring --enable-mbregex --enable-calendar &#8230; <a href="http://www.onono.org/2011/08/650.htm">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ubuntu下不管是做什么都很方便，废话少说，准备开始</p>
<pre class="2">apt-get install build-essential</pre>
<p>需要用到的其他软件包</p>
<pre>apt-get install libxml2-dev libcurl4-openssl-dev libbz2-dev libpng-dev libfreetype6-dev libmcrypt-dev libmhash-dev libmysqlclient-dev libxslt1-dev libjpeg62-dev libltdl-dev</pre>
<p>下载PHP源码</p>
<pre>wget -O /usr/src/php-5.2.17.tar.gz http://cn.php.net/get/php-5.2.17.tar.gz/from/this/mirror</pre>
<p>编译参数包含了常用的模块</p>
<pre>tar -zxvf php-5.2.17.tar.gz
cd php-5.2.17/
./configure --prefix=/usr/local/php_5.2.17 --with-mysql --with-mysqli --enable-fastcgi --enable-sockets --enable-ftp --enable-zip --enable-mbstring --enable-mbregex --enable-calendar --with-curl   --with-curlwrappers --disable-debug --enable-inline-optimization --with-gd --with-kerberos   --with-gettext --enable-force-cgi-redirect --with-jpeg-dir --with-png-dir --with-bz2 --enable-pcntl --with-iconv --with-mcrypt --with-pdo-mysql --with-freetype-dir --enable-path-info-check --with-openssl --with-xsl --enable-exif --with-mhash --enable-soap --without-pear --with-zlib
make
make install</pre>
<p>大功告成</p>
<pre># /usr/local/php_5.2.17/bin/php -v
PHP 5.2.17 (cli) (built: .....)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2011/08/650.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>禁止Crontab产生邮件</title>
		<link>http://www.onono.org/2011/07/619.htm</link>
		<comments>http://www.onono.org/2011/07/619.htm#comments</comments>
		<pubDate>Mon, 04 Jul 2011 08:52:54 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[crontab]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=619</guid>
		<description><![CDATA[在crontab末尾加上 >/dev/null 2>&#038;1. 或者 &#038;> /dev/null 例如 0 1 5 10 * /path/to/script.sh >/dev/null 2>&#038;1 0 1 5 10 * /path/to/script.sh &#038;> /dev/null 另外一种方法是编辑crontab crontab -e 在第一行加入 MAILTO="" 保存退出 这样做的好处是，可以避免 /var/mail/root 体积快速增长]]></description>
			<content:encoded><![CDATA[<p>在crontab末尾加上</p>
<pre>>/dev/null 2>&#038;1.</pre>
<p>或者</p>
<pre>&#038;> /dev/null</pre>
<p>例如</p>
<pre>
0 1 5 10 * /path/to/script.sh >/dev/null 2>&#038;1
0 1 5 10 * /path/to/script.sh &#038;> /dev/null
</pre>
<p>另外一种方法是编辑crontab<br />
crontab -e<br />
在第一行加入</p>
<pre>MAILTO=""</pre>
<p>保存退出</p>
<p>这样做的好处是，可以避免 /var/mail/root 体积快速增长</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2011/07/619.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows下搭建OpenVPN备忘</title>
		<link>http://www.onono.org/2011/04/613.htm</link>
		<comments>http://www.onono.org/2011/04/613.htm#comments</comments>
		<pubDate>Thu, 07 Apr 2011 08:56:21 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[OpenVPN]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=613</guid>
		<description><![CDATA[1、修改 easy-rsa\vars.bat.sample 2、初始化执行 init-config vars clean-all vars build-ca build-dh build-key-server server build-key client1 build-key client2 …… ca.crt,dh1024.pem,server.crt,server.key是服务端所需证书和文件 ca.crt,client.crt,client.key是客户端所需证书和文件 3、配置server.ovpn 4、服务端设置Internet连接共享(ICS)]]></description>
			<content:encoded><![CDATA[<p>1、修改 easy-rsa\vars.bat.sample</p>
<p>2、初始化执行<br />
init-config<br />
vars<br />
clean-all<br />
vars<br />
build-ca<br />
build-dh<br />
build-key-server server<br />
build-key client1<br />
build-key client2<br />
……<br />
ca.crt,dh1024.pem,server.crt,server.key是服务端所需证书和文件<br />
ca.crt,client.crt,client.key是客户端所需证书和文件</p>
<p>3、配置server.ovpn</p>
<p>4、服务端设置Internet连接共享(ICS)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2011/04/613.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>密码保护：IIS上迅速找出对外UDP发包攻击的站点</title>
		<link>http://www.onono.org/2010/12/568.htm</link>
		<comments>http://www.onono.org/2010/12/568.htm#comments</comments>
		<pubDate>Sun, 05 Dec 2010 16:20:44 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[性能计数器]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=568</guid>
		<description><![CDATA[无法提供摘要。这是一篇受保护的文章。]]></description>
			<content:encoded><![CDATA[<form action="http://www.onono.org/wp-pass.php" method="post">
<p>这是一篇受密码保护的文章。您需要提供访问密码：</p>
<p><label for="pwbox-568">密码：<br />
<input name="post_password" id="pwbox-568" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="提交" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/12/568.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浅谈各个系统下的伪静态</title>
		<link>http://www.onono.org/2010/10/539.htm</link>
		<comments>http://www.onono.org/2010/10/539.htm#comments</comments>
		<pubDate>Tue, 26 Oct 2010 10:48:06 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[伪静态]]></category>
		<category><![CDATA[重写]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=539</guid>
		<description><![CDATA[目前各大流行的web服务器上都可以设置伪静态（URL重写），下面简单说明一下。 一、IIS 1、ISAPI（win2003） IIS上比较通用的一种伪静态方法，通过加载ISAPI扩展，来实现伪静态。 通常会载入一个dll文件和一个包含伪静态规则的httpd.ini文件。 2、应用程序映射 ASP.Net程序通常会采用的一种方法，一个URL请求发送到服务器以后，服务器会识别请求文件的扩展名，一些特定的后缀名的文件会交给特定的应用程序来处理，伪静态请求的文件肯定是服务器上不存在的一个文件，利用这个特性，在web.config文件中做好规则设置，然后设置应用程序映射就可以达到伪静态的目的。 3、URL Rewrite Module（IIS7） 在IIS7，伪静态已经升级为一个模块，可以直接写入规则。 二、Apache Apache通过在服务器上加载mod_rewrite组件，自动检测目录下的.htaccess文件来实现伪静态。 当然，伪静态规则不一定要写在.htaccess文件里，避免使用.htaccess可以提高服务器效率（AllowOverride None），如果有足够的服务器权限，将伪静态规则直接写入虚拟主机配置文件中是最好的。 三、Nginx Nginx和Apache差不多，也是在配置文件中写入伪静态规则。 Discuz!在Nginx下的伪静态规则（部分演示） rewrite ^/archiver/((fid&#124;tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last; rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&#38;page=$2 last; rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&#38;extra=page%3D$3&#38;page=$2 last; rewrite ^/space-(username&#124;uid)-(.+)\.html$ /space.php?$1=$2 last; rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last; break; Nginx重写语法，官方文档：http://wiki.nginx.org/HttpRewriteModule &#8230; <a href="http://www.onono.org/2010/10/539.htm">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>目前各大流行的web服务器上都可以设置伪静态（URL重写），下面简单说明一下。</p>
<p>一、IIS</p>
<p style="padding-left: 30px;">1、ISAPI（win2003）</p>
<p style="padding-left: 30px;">IIS上比较通用的一种伪静态方法，通过加载ISAPI扩展，来实现伪静态。</p>
<p style="padding-left: 30px;"><a href="http://www.onono.org/wp-content/uploads/2010/10/isapi.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-540" title="isapi" src="http://www.onono.org/wp-content/uploads/2010/10/isapi-300x294.png" alt="" width="300" height="294" /></a><span id="more-539"></span></p>
<p style="padding-left: 30px;">通常会载入一个dll文件和一个包含伪静态规则的httpd.ini文件。</p>
<p style="padding-left: 30px;">
<p style="padding-left: 30px;">2、应用程序映射</p>
<p style="padding-left: 30px;"><a href="http://www.onono.org/wp-content/uploads/2010/10/aspnet2.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-541" title="应用程序映射" src="http://www.onono.org/wp-content/uploads/2010/10/aspnet2-270x300.jpg" alt="" width="270" height="300" /></a></p>
<p style="padding-left: 30px;">ASP.Net程序通常会采用的一种方法，一个URL请求发送到服务器以后，服务器会识别请求文件的扩展名，一些特定的后缀名的文件会交给特定的应用程序来处理，伪静态请求的文件肯定是服务器上不存在的一个文件，利用这个特性，在web.config文件中做好规则设置，然后设置应用程序映射就可以达到伪静态的目的。</p>
<p style="padding-left: 30px;">
<p style="padding-left: 30px;">3、URL Rewrite Module（IIS7）</p>
<p style="padding-left: 30px;"><a href="http://www.onono.org/wp-content/uploads/2010/10/iis7.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-546" title="iis7" src="http://www.onono.org/wp-content/uploads/2010/10/iis7-300x215.png" alt="" width="300" height="215" /></a></p>
<p style="padding-left: 30px;">在IIS7，伪静态已经升级为一个模块，可以直接写入规则。</p>
<p>二、Apache</p>
<p style="padding-left: 30px;"><a href="http://www.onono.org/wp-content/uploads/2010/10/htaccess.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-547" title="htaccess" src="http://www.onono.org/wp-content/uploads/2010/10/htaccess-300x175.jpg" alt="" width="300" height="175" /></a></p>
<p style="padding-left: 30px;">Apache通过在服务器上加载mod_rewrite组件，自动检测目录下的.htaccess文件来实现伪静态。</p>
<p style="padding-left: 30px;">当然，伪静态规则不一定要写在.htaccess文件里，避免使用.htaccess可以提高服务器效率（AllowOverride None），如果有足够的服务器权限，将伪静态规则直接写入虚拟主机配置文件中是最好的。</p>
<p>三、Nginx</p>
<p style="padding-left: 30px;">Nginx和Apache差不多，也是在配置文件中写入伪静态规则。</p>
<p style="padding-left: 30px;"><a href="http://www.onono.org/wp-content/uploads/2010/10/nginx.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-549" title="nginx" src="http://www.onono.org/wp-content/uploads/2010/10/nginx-300x201.jpg" alt="" width="300" height="201" /></a></p>
<p style="padding-left: 30px;">Discuz!在Nginx下的伪静态规则（部分演示）</p>
<pre class="1" style="padding-left: 30px;">rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&amp;page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&amp;extra=page%3D$3&amp;page=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;
break;</pre>
<p style="padding-left: 30px;">Nginx重写语法，官方文档：<a title="nginx" href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a></p>
<p style="padding-left: 30px;">
<p>四、lighttpd（使用较少，略）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/10/539.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站主的逻辑</title>
		<link>http://www.onono.org/2010/10/533.htm</link>
		<comments>http://www.onono.org/2010/10/533.htm#comments</comments>
		<pubDate>Fri, 22 Oct 2010 12:44:33 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[ecshop]]></category>
		<category><![CDATA[网站主]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=533</guid>
		<description><![CDATA[最近遇到的疑难杂症比较多，部分网站主更是不分青红皂白扑面而来，譬如网站主没有对ECShop进行任何修改，忽然有一天PHP提示以下错误，网站主会怎样发飙呢？ Notice: Undefined variable: data in ******\includes\lib_base.php on line 1203 Warning: require(******/languages//common.php) [function.require]: failed to open stream: No such file or directory in ******\includes\init.php on line 120 Fatal error: require() [function.require]: Failed opening required &#8216;******/languages//common.php&#8217; (include_path=&#8217;.;******&#8217;) in ******\includes\init.php on line &#8230; <a href="http://www.onono.org/2010/10/533.htm">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.onono.org/wp-content/uploads/2010/10/ecshop.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-534" title="ecshop" src="http://www.onono.org/wp-content/uploads/2010/10/ecshop-300x179.jpg" alt="" width="300" height="179" /></a></p>
<p>最近遇到的疑难杂症比较多，部分网站主更是不分青红皂白扑面而来，譬如网站主没有对ECShop进行任何修改，忽然有一天PHP提示以下错误，网站主会怎样发飙呢？</p>
<p>Notice: Undefined variable: data in ******\includes\lib_base.php on line 1203</p>
<p>Warning: require(******/languages//common.php) [function.require]: failed to open stream: No such file or directory in ******\includes\init.php on line 120</p>
<p>Fatal error: require() [function.require]: Failed opening required &#8216;******/languages//common.php&#8217; (include_path=&#8217;.;******&#8217;) in ******\includes\init.php on line 120<br />
<span id="more-533"></span><br />
咋看之下，好像是languages/common.php文件引用不存在造成的，一检查果然common.php不存在，但是又没有修改过任何程序文件，这无头案该从何说起？看不懂英文的网站主请忽略这段。</p>
<p>辗转求助于搜索引擎，如果没选好关键字，还搜不出来。筛出来一部分结果，只有1-2个正解，现在公布正确答案：</p>
<h3><strong>在temp/static_caches文件下删除缓存文件。</strong></h3>
<p>看上去好像特别不靠谱，我也不知道为什么和缓存文件有关，但是删掉后立刻就恢复正常了，这显然不合部分网站主的逻辑，又没有动过任何设置，怎么会出问题呢？于是就有各种猜测，比如空间权限、服务器问题……</p>
<p>一个程序放在那里不是恒久不变的，有时候会出现异常，甚至程序员自己都不知道会出现什么异常，于是才有了try……throw……catch……</p>
<p>我承认我的逻辑和他们相差太大，又没时间没有精力去做SEO和推广，所以我确实不适合做网站主啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/10/533.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH的加密访问</title>
		<link>http://www.onono.org/2010/09/504.htm</link>
		<comments>http://www.onono.org/2010/09/504.htm#comments</comments>
		<pubDate>Tue, 14 Sep 2010 08:02:28 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[加密]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=504</guid>
		<description><![CDATA[图为X-shell登录确认对话框，第一次连接主机的时候会提示。 当前主机的fingerprint（公钥），经过效验和计算，结果为xxx&#8230; 如果远程主机重新安装过，或重新生成过密钥，这里的公钥会显示不同，主机信息被劫持和替换后，显示的结果也会不同。 公钥、私钥由主机成对生成，远程主机将公钥发给客户端，把要发给主机的信息用公钥加密，发给主机后，只有主机能用配对的私钥解密，保证了数据交换的安全。 如果X-shell提示的fingerprint和以前的记录不一样，而且主机没有重新生成过密钥，此时不要连接远程主机，数据包在传输过程中很有可能已经被调换，接下来所有的数据传输对于攻击者来说，都是透明的。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.onono.org/wp-content/uploads/2010/09/ssh.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-505" title="ssh加密连接" src="http://www.onono.org/wp-content/uploads/2010/09/ssh-300x213.jpg" alt="" width="300" height="213" /></a></p>
<p>图为X-shell登录确认对话框，第一次连接主机的时候会提示。<span id="more-504"></span></p>
<p>当前主机的fingerprint（公钥），经过效验和计算，结果为xxx&#8230;</p>
<p>如果远程主机重新安装过，或重新生成过密钥，这里的公钥会显示不同，主机信息被劫持和替换后，显示的结果也会不同。</p>
<p>公钥、私钥由主机成对生成，远程主机将公钥发给客户端，把要发给主机的信息用公钥加密，发给主机后，只有主机能用配对的私钥解密，保证了数据交换的安全。</p>
<p>如果X-shell提示的fingerprint和以前的记录不一样，而且主机没有重新生成过密钥，此时不要连接远程主机，数据包在传输过程中很有可能已经被调换，接下来所有的数据传输对于攻击者来说，都是透明的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/09/504.htm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FreeBSD下SNMP协议简单配置</title>
		<link>http://www.onono.org/2010/07/467.htm</link>
		<comments>http://www.onono.org/2010/07/467.htm#comments</comments>
		<pubDate>Mon, 19 Jul 2010 05:06:19 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[SNMP]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=467</guid>
		<description><![CDATA[cd /usr/ports/net-mgmt/net-snmp make config make install clean 样例文件位于/usr/local/share/snmp/snmpd.conf.example 使用snmpconf命令生成配置文件snmpd.conf $ /usr/local/bin/snmpconf -i -g basic_setup The following installed configuration files were found: //如果之前有过配置文件，会提示，可忽略 1:  /usr/local/share/snmp/snmpd.conf Would you like me to read them in?  Their content will be merged with the output &#8230; <a href="http://www.onono.org/2010/07/467.htm">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><code><br />
cd /usr/ports/net-mgmt/net-snmp<br />
make config<br />
make install clean<br />
</code><br />
样例文件位于/usr/local/share/snmp/snmpd.conf.example</p>
<p>使用snmpconf命令生成配置文件snmpd.conf</p>
<p>$ /usr/local/bin/snmpconf -i -g basic_setup<span id="more-467"></span></p>
<p>The following installed configuration files were found:</p>
<p>//如果之前有过配置文件，会提示，可忽略</p>
<p>1:  /usr/local/share/snmp/snmpd.conf</p>
<p>Would you like me to read them in?  Their content will be merged with the</p>
<p>output files created by this session.</p>
<p>Valid answer examples: “all”, “none”,”3&#8243;,”1,2,5&#8243;</p>
<p>Read in which (default = all): //可选择none，忽略之前的配置</p>
<p>************************************************</p>
<p>*** Beginning basic system information setup ***</p>
<p>************************************************</p>
<p>Do you want to configure the information returned in the system MIB group (contact info, etc)? (default = y): y</p>
<p>//选择y</p>
<p>Configuring: syslocation</p>
<p>Description:</p>
<p>The [typically physical] location of the system.</p>
<p>Note that setting this value here means that when trying to</p>
<p>perform an snmp SET operation to the sysLocation.0 variable will make</p>
<p>the agent return the “notWritable” error code.  IE, including</p>
<p>this token in the snmpd.conf file will disable write access to</p>
<p>the variable.</p>
<p>arguments:  location_string</p>
<p>The location of the system: Chengdu</p>
<p>//syslocation，填写这台被监控机的地理位置信息，方便查阅</p>
<p>Finished Output: syslocation  Chengdu</p>
<p>Configuring: syscontact</p>
<p>Description:</p>
<p>The contact information for the administrator</p>
<p>Note that setting this value here means that when trying to</p>
<p>perform an snmp SET operation to the sysContact.0 variable will make</p>
<p>the agent return the “notWritable” error code.  IE, including</p>
<p>this token in the snmpd.conf file will disable write access to</p>
<p>the variable.</p>
<p>arguments:  contact_string</p>
<p>The contact information: orz（at）onono.org</p>
<p>//该服务器的管理员联系方式，最好填一个电子邮箱，服务器不可用的时候，可通知管理员</p>
<p>Finished Output: syscontact  orz（at）onono.org</p>
<p>Do you want to properly set the value of the sysServices.0 OID (if you don&#8217;t know, just say no)? (default = y): y</p>
<p>//选择y</p>
<p>Configuring: sysservices</p>
<p>Description:</p>
<p>The proper value for the sysServices object.</p>
<p>arguments:  sysservices_number</p>
<p>does this host offer physical services (eg, like a repeater) [answer 0 or 1]: 0</p>
<p>does this host offer datalink/subnetwork services (eg, like a bridge): 0</p>
<p>does this host offer internet services (eg, supports IP): 1</p>
<p>does this host offer end-to-end services (eg, supports TCP): 1</p>
<p>does this host offer application services (eg, supports SMTP): 1</p>
<p>//依次选择0、0、1、1、1，由于主机不充当网桥等角色，前两项填0</p>
<p>Finished Output: sysservices 76</p>
<p>**************************************</p>
<p>*** BEGINNING ACCESS CONTROL SETUP ***</p>
<p>**************************************</p>
<p>Do you want to configure the agent&#8217;s access control? (default = y): n</p>
<p>****************************************</p>
<p>*** Beginning trap destination setup ***</p>
<p>****************************************</p>
<p>Do you want to configure where and if the agent will send traps? (default = y): n</p>
<p>****************************************</p>
<p>*** Beginning monitoring setup ***</p>
<p>****************************************</p>
<p>Do you want to configure the agent&#8217;s ability to monitor various aspects of your system? (default = y): n</p>
<p>The following files were created:</p>
<p>接下来，使用net-snmp-config &#8211;create-snmpv3-user -ro命令配置权限，先确认snmpd已停止：</p>
<p># /usr/local/etc/rc.d/snmpd stop</p>
<p>然后运行：</p>
<p># net-snmp-config &#8211;create-snmpv3-user -ro</p>
<p>Enter a SNMPv3 user name to create:</p>
<p>myusername     //用户名</p>
<p>Enter authentication pass-phrase:</p>
<p>pass1234       //密码，长度大于8位</p>
<p>Enter encryption pass-phrase:</p>
<p>[press return to reuse the authentication pass-phrase]</p>
<p>phrase1234     //phrase，长度大于8位</p>
<p>adding the following line to /var/net-snmp/snmpd.conf:</p>
<p>createUser myusername MD5 “pass1234&#8243; DES phrase1234</p>
<p>adding the following line to /usr/local/share/snmp/snmpd.conf:</p>
<p>rouser myusername</p>
<p>启动snmpd：/usr/local/etc/rc.d/snmpd start</p>
<p>用snmpwalk测试一下刚才的设置是否生效：</p>
<p>/usr/local/bin/snmpwalk -v 3 -l authPriv -u myusername -a MD5 -A 12345678 -x DES -X 87654321 localhost</p>
<p>SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD ys-bsd.onono.org 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009     root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386<br />
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::org<br />
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (86606) 0:14:26.06<br />
SNMPv2-MIB::sysContact.0 = STRING: Me &lt;orz（at）onono.org&gt;</p>
<p>……</p>
<p>……</p>
<p>NOTIFICATION-LOG-MIB::nlmLogDateAndTime.”default”.1 = STRING: 2010-7-19,12:49:39.0,-8:0<br />
NOTIFICATION-LOG-MIB::nlmLogDateAndTime.”default”.2 = STRING: 2010-7-19,12:49:39.0,-8:0<br />
NOTIFICATION-LOG-MIB::nlmLogDateAndTime.”default”.3 = STRING: 2010-7-19,12:49:39.0,-8:0<br />
NOTIFICATION-LOG-MIB::nlmLogDateAndTime.”default”.4 = STRING: 2010-7-19,12:49:39.0,-8:0</p>
<p>确认snmpd已侦听UDP161端口</p>
<p># sockstat -l4</p>
<p>USER   COMMAND  PID   FD PROTO LOCAL ADDRESS FOREIGN ADDRESS</p>
<p><span style="color: #ff0000;">root     snmpd      47043 9  udp4   *:161                 *:*</span></p>
<p>www      httpd      41173 3  tcp4   *:80                  *:*</p>
<p>www      httpd      41172 3  tcp4   *:80                  *:*</p>
<p>www      httpd      41171 3  tcp4   *:80                  *:*</p>
<p>root     httpd      92407 3  tcp4   *:80                  *:*</p>
<p>root     sshd       5388  4  tcp4   *:22                  *:*</p>
<p>mysql    mysqld     82716 5  tcp4   *:3306                *:*</p>
<p>root     sendmail   831   4  tcp4   127.0.0.1:25          *:*</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/07/467.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>毕业设计（论文）——公司人事管理系统</title>
		<link>http://www.onono.org/2010/07/453.htm</link>
		<comments>http://www.onono.org/2010/07/453.htm#comments</comments>
		<pubDate>Sun, 18 Jul 2010 07:40:00 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[公司人事管理系统]]></category>
		<category><![CDATA[毕业论文]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=453</guid>
		<description><![CDATA[前不久本科的毕业论文，马马虎虎的答辩了一番。数据库和程序是自己写的，我文采不好，文字的部分参考了其他论文，粘贴在此供分享，转载请注明出处，谢谢。 摘 要 以C#技术、SQLServer技术为基础的公司人事管理系统将帮助企业科学、正规且高效运转。使用“三层架构”的整体概念设计的企业人事管理系统，包含人事管理、工资管理、综合管理、系统管理、用户管理等功能。 关键字：C#，SQL Server 2005，软件工程 Abstract A C-sharp and SQL Server technology-based personnel management system will help the company run their business in a scientific, formal and effective way. The 3-tier architecture build system including personnel management, payroll &#8230; <a href="http://www.onono.org/2010/07/453.htm">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>前不久本科的毕业论文，马马虎虎的答辩了一番。数据库和程序是自己写的，我文采不好，文字的部分参考了其他论文，粘贴在此供分享，转载请注明出处，谢谢。<br />
<span id="more-453"></span></p>
<p style="text-align: center;">摘 要</p>
<p>以C#技术、SQLServer技术为基础的公司人事管理系统将帮助企业科学、正规且高效运转。使用“三层架构”的整体概念设计的企业人事管理系统，包含人事管理、工资管理、综合管理、系统管理、用户管理等功能。</p>
<p>关键字：C#，SQL Server 2005，软件工程</p>
<p style="text-align: center;">Abstract</p>
<p>A C-sharp and SQL Server technology-based personnel management system will help the company run their business in a scientific, formal and effective way.</p>
<p>The 3-tier architecture build system including personnel management, payroll management, general management, system management, user management and many other functions.</p>
<p>Key words: C# , SQL Server 2005 , software engineering</p>
<p><strong>目</strong> <strong>录</strong></p>
<p>第一章 绪 言&#8230; 1</p>
<p style="padding-left: 30px;">第一节  项目开发的背景&#8230; 1</p>
<p style="padding-left: 30px;">第二节  项目开发的目的&#8230; 1</p>
<p style="padding-left: 30px;">第三节  项目提出的意义&#8230; 1</p>
<p style="padding-left: 30px;">第四节  可行性分析&#8230; 1</p>
<p style="padding-left: 60px;">一、经济上可行性&#8230; 1</p>
<p style="padding-left: 60px;">二、技术上可行性&#8230; 2</p>
<p style="padding-left: 60px;">三、时机上可行性&#8230; 2</p>
<p style="padding-left: 60px;">四、管理上的可行性&#8230; 2</p>
<p>第二章 开发工具&#8230; 3</p>
<p style="padding-left: 30px;">第一节  C#语言简介&#8230; 3</p>
<p style="padding-left: 30px;">第二节  .NET简介&#8230; 3</p>
<p style="padding-left: 30px;">第三节  SQLSever 数据库简介&#8230; 4</p>
<p>第三章 数据流程&#8230; 5</p>
<p style="padding-left: 30px;">第一节  数据流程图&#8230; 5</p>
<p style="padding-left: 30px;">第二节  数据字典&#8230; 5</p>
<p style="padding-left: 60px;">一、职员信息表&#8230; 5</p>
<p style="padding-left: 60px;">二、职员薪资表&#8230; 6</p>
<p style="padding-left: 60px;">三、职务变更表&#8230; 6</p>
<p style="padding-left: 60px;">四、职务名称表&#8230; 6</p>
<p style="padding-left: 60px;">五、职员职位表&#8230; 7</p>
<p style="padding-left: 60px;">六、考勤记录表&#8230; 7</p>
<p style="padding-left: 60px;">七、部门名称表&#8230; 7</p>
<p style="padding-left: 60px;">八、考评记录表&#8230; 7</p>
<p>第四章 项目实施&#8230; 9</p>
<p style="padding-left: 30px;">第一节  系统总体结构设计&#8230; 9</p>
<p style="padding-left: 60px;">一、人事工作流程&#8230; 9</p>
<p style="padding-left: 60px;">二、系统设计思想&#8230; 9</p>
<p style="padding-left: 60px;">三、功能分析&#8230; 9</p>
<p style="padding-left: 30px;">第二节  代码设计&#8230; 9</p>
<p style="padding-left: 60px;">一、编码简述&#8230; 9</p>
<p style="padding-left: 60px;">二、详细编码&#8230; 10</p>
<p>结束语&#8230; 12</p>
<p>谢词&#8230; 13</p>
<p>参考文献&#8230; 14</p>
<p>第一章 绪 言</p>
<p>第一节  项目开发的背景</p>
<p>近年来，随着计算机技术的发展和互联网时代的到来，我们已经进入了信息时代，也有人称为数字化时代，在这数字化的时代里，企业的人事需要高效率的管理。信息技术持续迅猛的发展，给传统的人事管理提出了更高的要求。怎样让繁杂的人事管理变得轻松？如何应对人事变动频繁的挑战？</p>
<p>以C#技术、SQLServer技术为基础的公司人事管理系统就是一个很好的解决方案，它们将帮助这个企业科学、正规且高效运转。</p>
<p>第二节  项目开发的目的</p>
<p>使用“三层架构”的整体概念来设计企业的人事管理系统。在这个概念下，开发出来的系统功能包括人事管理、工资管理、综合管理、系统管理、用户管理。</p>
<p>在此开发的公司人事管理系统，旨在适应信息时代，提高企业人事管理的效率，帮助企业科学正规运转，减轻管理者的压力和负担，企业的管理人员无需经过特殊的训练就可以使用这个系统，降低管理成本，最大程度的满足企业人事管理需求。</p>
<p>升级、改造现有的纸质档案，重建员工档案，以符合数字化的标准。</p>
<p>第三节  项目提出的意义</p>
<p>企业在人事管理中实现数字化、信息化、智能化，和传统的纸质档案管理相比，是一个全新的革命，能够给企业带来先进的现代化的人事管理思想方法和模式，提高管理的有效性。</p>
<p>数字化的人事管理系统有助于促进人事管理正规化，而且还大大降低了管理的成本。</p>
<p>第四节  可行性分析</p>
<p>一、经济上可行性</p>
<p>现在,计算机的价格已经十分低廉，性能却有了长足的进步。而本系统的开发。为企业的工作和经济效率带来了一个质的飞跃，主要表现有以下几个方面：</p>
<p>第一、本系统的运行可以代替人工进行许多繁杂的劳动；</p>
<p>第二、本系统的运行可以节省许多资源，例如纸质和笔墨；</p>
<p>第三、本系统的运行可以大大的提高企业的工作效率；</p>
<p>所以，本系统在经济上是可行的。</p>
<p>二、技术上可行性</p>
<p>技术上的可行性分析，主要分析技术条件能否顺利完成开发工作，硬、软件能否满足开发者的需要等。该管理系统采用了当前流行的Client/Server模式进行开发，引入了数据访问层、业务逻辑层、表现层——三层的架构体系，是技术发展的大势所趋，它把应用系统带入了一个崭新的发展时代。数据库服务器选用微软的SQLServer数据库，它能够处理大量数据，同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此，系统的软件开发平台已成熟可行。硬件方面，科技飞速发展的今天，硬件更新的速度越来越快，容量越来越大，可靠性越来越高，价格越来越低，其硬件平台完全能满足此系统的需要。</p>
<p>三、时机上可行性</p>
<p>目前，企业内部大多都实现了数字化办公，办公室的有线无线网路覆盖了情况也相当理想，企业良好的硬件设施为公司人事管理系统提供了坚实的基础。</p>
<p>四、管理上的可行性</p>
<p>企业的管理人员是否支持数字化管理，现有的管理制度和方法是否科学，规章制度是否齐全，原始数据是否正确等问题，需要企业高层人员作出进一步肯定。规章制度和管理方法是该系统的制度保障。</p>
<p>综上所述，此系统开发目标已明确，在技术和经济等方面都可行，并且投入少、见效快。因此系统的开发是完全可行的。</p>
<p><strong><br />
</strong></p>
<p>第二章 开发工具</p>
<p>第一节  C#语言简介</p>
<p>C#(读作“c－sharp”)作为微软的下一代面向对象的语言产品，能够让开发人员在．NET平台上快速地建立大量的应用程序。按照微软给出的定义，C#是一种源自于C和C++的，简单的、现代的、面向对象的和类型安全的程序设计语言。C#为程序员提供了开发飞速发展的Web应用程序所需的强大而灵活的功能。C#和Java的核心与C++比较有着相同的优势和局限，比起C++，C#将更容易被人们理解和接受，未来大量．NET平台的应用将由 C#开发。</p>
<p>例如，我们可以使用C#开发任何古典风格的Windows程序。不仅如此，不管是控制序、图形程序、NT服务程序，还是普通组件，乃至Web页面，都可以用C#开发出来。可以相信，不论是企业的决策者、管理者或员工，都将欣赏C#为企业所带来的一切。</p>
<p>C#语言需要．NET框架的支持。我们所说的很多C#语言的新特点和功能，如类型安全、垃圾收集、版本制、兼容性以及跨语言的异常处理和继承，这些都是依赖于底层的．NET框架来完成的。</p>
<p>第二节  .NET简介</p>
<p>．NET是Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据，而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。</p>
<p>．NET的最终目的就是让用户在任何地方、任何时间，以及利用任何设备都能访问他们所需要的信息、文件和程序。而用户不需要知道这些东西存在什么地方，甚至连如何获得等具体细节都不知道。他们只需发出请求，然后只管接收就是了，而所有后台的复杂性是完全屏蔽起来的。所以对于企业的IT人员来说，他们也不需要管理复杂的平台以及各种分布应用之间的工作是如何协调的。</p>
<p>．NET包括4个重要特点，一是软件变服务，二是基于XML的共同语言，三是融合多种设备和平台，四是新一代的人机界面。这四个特点基本上覆盖了．NET的技术特征。</p>
<p>融合多种设备和平台，随着Internet逐渐成为一个信息和数据的中心，各种设备和服务已经或正在接入和融入Internet，成为其中的一部分。．NET谋求与各种Internet接入设备和平台的一体化，主要关注在无线设备和家庭网络设备及相关软件、平台方面。</p>
<p>新一代的人机界面，新一代人机界面主要体现在“智能与互动”两个方面。．NET包括通过自然语音、视觉、手写等多种模式的输入和表现方法；基于XML的可编辑复合信息架构——通用画布；个性化的信息代理服务；使机器能够更好地进行自动处理的智能标记等技术。</p>
<p>第三节  SQLSever 数据库简介</p>
<p>Microsoft SQL Server 2000 是Microsoft 公司继SQL Server 6.5和SQL Server 7.0以后，在新千年推出的又一改进的新版关系型数据管理系统。它能使用户快捷地管理数据库和开发应用程序。SQL Server 2000 使用了了先进的数据库结构，与Windows DNA紧密集成，具有强大的Web 功能，它可以利用高端硬件平台以及最新网络和 存储技术，可以为最大的Web站点和企业应用提供优良的扩展性和可靠性，使用户能够在Internet 领域快速建立服务系统，为占领市场赢得宝贵的时间。同时，SQL Server 2000 还为用户提供了重要的安全性功能的增强，为用户的数据安全提供了可靠的保证。另外，SQL Server 2000还为用户提供了重要的安全性功能的增强，为用户的数据安全提供了可靠的保证。另外,SQL Server 2000 在数据库服务器自动管理技术方面处于数据库领域的领先地位，它可以使用户免去繁琐复杂的工作量，从而有精力处理更重要的问题，使用系统在商业战略上占得先机。</p>
<p>关系型数据库系统是当前最流行的数据库软件系统。它是一个非常复杂的软件系统，对数据库的所有操作，包括定义、查询、更新和各种运行控制最终都通过它来实现的，因它是使数据库系统具有资料共享、并发访问、资料独立等特性的根本保证。</p>
<p>就关系数据库管理系统(RDBMS)而言，它是位于用与操作系统之间的一层数据管理软件，它主要负责强化数据库的结构，简单来说包括如下功能：</p>
<p>1．维持数据库中资料的关系。</p>
<p>2．保障资料的正确存储，即保障定义资料之间的关系的种种规则不会被违背。</p>
<p>3．在系统出错时，把资料恢复到一个能保证一致性的状态。</p>
<p><strong><br />
</strong></p>
<p>第三章 数据流程</p>
<p>第一节  数据流程图</p>
<p><a href="http://www.onono.org/wp-content/uploads/2010/07/clip_image002.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-456" title="论文插图" src="http://www.onono.org/wp-content/uploads/2010/07/clip_image002-300x166.jpg" alt="" width="300" height="166" /></a></p>
<p>图1.数据流程图</p>
<p>第二节  数据字典</p>
<p>一、职员信息表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">user_id</td>
<td width="142" valign="top">用户ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">user_pass</td>
<td width="142" valign="top">密码</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">否</td>
</tr>
<tr>
<td width="142" valign="top">user_privilege</td>
<td width="142" valign="top">权限级别</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">否</td>
</tr>
<tr>
<td width="142" valign="top">user_name</td>
<td width="142" valign="top">用户名</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">否</td>
</tr>
<tr>
<td width="142" valign="top">user_sex</td>
<td width="142" valign="top">性别</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">birthplace</td>
<td width="142" valign="top">出生地</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">birthday</td>
<td width="142" valign="top">生日</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">education</td>
<td width="142" valign="top">教育程度</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">professional</td>
<td width="142" valign="top">专业</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">idcard</td>
<td width="142" valign="top">身份证</td>
<td width="142" valign="top">nchar(19)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">marriage</td>
<td width="142" valign="top">婚姻状况</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">political</td>
<td width="142" valign="top">政治面貌</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">tel</td>
<td width="142" valign="top">电话</td>
<td width="142" valign="top">nchar(13)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">zip_code</td>
<td width="142" valign="top">邮编</td>
<td width="142" valign="top">nchar(6)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">email</td>
<td width="142" valign="top">Email</td>
<td width="142" valign="top">nchar(20)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">home_place</td>
<td width="142" valign="top">住址</td>
<td width="142" valign="top">nchar(30)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">date_in</td>
<td width="142" valign="top">入公司时间</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">date_salary</td>
<td width="142" valign="top">起薪时间</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">depart_id</td>
<td width="142" valign="top">所在部门</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">work_title</td>
<td width="142" valign="top">职称</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">old_identity</td>
<td width="142" valign="top">原身份</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">old_job</td>
<td width="142" valign="top">原职务</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">old_company</td>
<td width="142" valign="top">原工作单位</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">date_beginwork</td>
<td width="142" valign="top">入职时间</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">exp</td>
<td width="142" valign="top">工作经验</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">job_id</td>
<td width="142" valign="top">职位</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否</td>
</tr>
<tr>
<td width="142" valign="top">etc</td>
<td width="142" valign="top">备注</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">avatar</td>
<td width="142" valign="top">头像</td>
<td width="142" valign="top">image</td>
<td width="142" valign="top">是</td>
</tr>
</tbody>
</table>
<p>图2.职员信息表</p>
<p>二、职员薪资表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">salary_id</td>
<td width="142" valign="top">薪水流水ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">user_id</td>
<td width="142" valign="top">用户</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">base_sa</td>
<td width="142" valign="top">底薪</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">overtime</td>
<td width="142" valign="top">加班费</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">subsidy</td>
<td width="142" valign="top">补贴</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">housing</td>
<td width="142" valign="top">房贴</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">bonus</td>
<td width="142" valign="top">奖金</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">other</td>
<td width="142" valign="top">其他</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">pension</td>
<td width="142" valign="top">养老金</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">health</td>
<td width="142" valign="top">医疗保险</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">actual</td>
<td width="142" valign="top">实际发放工资</td>
<td width="142" valign="top">smallmoney</td>
<td width="142" valign="top">否</td>
</tr>
<tr>
<td width="142" valign="top">post_datetime</td>
<td width="142" valign="top">计发时间</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
</tbody>
</table>
<p>图3.职员薪资表</p>
<p>三、职务变更表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">move_id</td>
<td width="142" valign="top">调令ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">user_id</td>
<td width="142" valign="top">用户</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">depart_old</td>
<td width="142" valign="top">旧部门</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">depart_new</td>
<td width="142" valign="top">新部门</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">job_old</td>
<td width="142" valign="top">旧职务</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">job_new</td>
<td width="142" valign="top">新职务</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">time_checkout</td>
<td width="142" valign="top">调出时间</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">time_checkin</td>
<td width="142" valign="top">调入时间</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">etc</td>
<td width="142" valign="top">备注</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
</tbody>
</table>
<p>图4.职务变更表</p>
<p>四、职务名称表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">job_id</td>
<td width="142" valign="top">职务ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">job_name</td>
<td width="142" valign="top">职务名称</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">否</td>
</tr>
</tbody>
</table>
<p>图5.职务名称表</p>
<p>五、职员职位表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">job_id</td>
<td width="142" valign="top">职务ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）（外键）</td>
</tr>
<tr>
<td width="142" valign="top">user_id</td>
<td width="142" valign="top">用户</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）（外键）</td>
</tr>
</tbody>
</table>
<p>图6.职员职位表</p>
<p>六、考勤记录表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">att_id</td>
<td width="142" valign="top">考勤记录ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">user_id</td>
<td width="142" valign="top">用户</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">depart_id</td>
<td width="142" valign="top">部门</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是（外键）</td>
</tr>
<tr>
<td width="142" valign="top">days_all</td>
<td width="142" valign="top">全勤天数</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">days_should</td>
<td width="142" valign="top">应出勤天数</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">years</td>
<td width="142" valign="top">年度</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">months</td>
<td width="142" valign="top">月份</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">datetime_begin</td>
<td width="142" valign="top">起始日期</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">datetime_end</td>
<td width="142" valign="top">截止日期</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
</tbody>
</table>
<p>图7.考勤记录表</p>
<p>七、部门名称表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">depart_id</td>
<td width="142" valign="top">部门ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">depart_name</td>
<td width="142" valign="top">部门名称</td>
<td width="142" valign="top">nchar(10)</td>
<td width="142" valign="top">否</td>
</tr>
</tbody>
</table>
<p>图8.部门名称表</p>
<p>八、考评记录表</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="142" valign="top">列名</td>
<td width="142" valign="top">说明</td>
<td width="142" valign="top">数据类型</td>
<td width="142" valign="top">可为空值</td>
</tr>
<tr>
<td width="142" valign="top">evaluate_id</td>
<td width="142" valign="top">考评流水ID</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（主键）</td>
</tr>
<tr>
<td width="142" valign="top">user_id</td>
<td width="142" valign="top">用户</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">否（外键）</td>
</tr>
<tr>
<td width="142" valign="top">depart_id</td>
<td width="142" valign="top">部门</td>
<td width="142" valign="top">int</td>
<td width="142" valign="top">是（外键）</td>
</tr>
<tr>
<td width="142" valign="top">evaluate_date</td>
<td width="142" valign="top">评价日期</td>
<td width="142" valign="top">datetime</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">results</td>
<td width="142" valign="top">业绩</td>
<td width="142" valign="top">varchar(20)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">results_desc</td>
<td width="142" valign="top">业绩说明</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">attitude</td>
<td width="142" valign="top">工作态度</td>
<td width="142" valign="top">varchar(20)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">attitude_desc</td>
<td width="142" valign="top">工作态度详情</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">lev</td>
<td width="142" valign="top">工作水平</td>
<td width="142" valign="top">varchar(20)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">lev_desc</td>
<td width="142" valign="top">工作水平详情</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
<tr>
<td width="142" valign="top">etc</td>
<td width="142" valign="top">备注</td>
<td width="142" valign="top">varchar(50)</td>
<td width="142" valign="top">是</td>
</tr>
</tbody>
</table>
<p>图9.考评记录表</p>
<p>第四章 项目实施</p>
<p>第一节  系统总体结构设计</p>
<p>一、人事工作流程</p>
<p>企业人事管理部门在此系统中完成各项管理事务。</p>
<p>由档案管理人员录入初始信息，包括职务名称、部门名称、员工的资料，生产基本工资信息。</p>
<p>当职位变动时，由人事主管修改相关信息，并重新生成基本工资信息。</p>
<p>每日考勤情、病休假等情况记录在案，月末录入考勤与评价情况，自动计算出该月工资。</p>
<p>二、系统设计思想</p>
<p>利用企业现有的计算机平台资源，减少消耗人力、物力、财力，提高企业人事管理水平。最大程度满足企业的人事管理需求，轻松应对人事变动频繁的挑战，更方便快捷的查找、更新、删除人事资料。</p>
<p>三、功能分析</p>
<p>（一）人事管理：人事档案管理、考勤管理、考核管理、调动管理、职称评定、奖惩管理和人事统计。</p>
<p>（二）工资管理：职务设定、基本工资设定、工资表生成、工资表查询、工资奖惩、月末工资处理。</p>
<p>（三）综合管理：部门管理、假期与出差管理、员工聘用合同与通知。</p>
<p>（四）系统管理：数据备份与还原、系统初始化。</p>
<p>（五）用户管理：用户管理、权限设置。</p>
<p>第二节  代码设计</p>
<p>一、编码简述</p>
<p>（一）为了代码的规范要求代码风格统一，这具有重要的意义：</p>
<p>1.增加开发过程代码的强壮性、可读性、易维护性。</p>
<p>2.减少有经验和无经验开发人员编程所需的脑力工作。</p>
<p>3.为软件的良好维护性打下好的基础。</p>
<p>4.通过人为以及自动的方式对最终软件应用质量标准。</p>
<p>5.使新的开发人员快速适应项目氛围。</p>
<p>6.支持项目资源的复用：允许开发人员从一个项目区域（或子项目团队）移动到另一个，而不需要重新适应新的子项目团队的氛围。</p>
<p>（二）代码优化的意义：</p>
<p>1.仅仅对符合功能说明书的要求、能正确运行的代码进行优化是有意义的。</p>
<p>2.代码优化能减少冗余代码的数量，用更少的代码来实现同样的功能。</p>
<p>3.提高代码的内聚程度，减少耦合程度。</p>
<p>4.对代码的抽象能提高代码的重用度，对今后其他项目的进度有非常重要的意义。</p>
<p>二、详细编码</p>
<p>（一）数据访问层(DAL)</p>
<p>数据访问层（Data Access Layer）简称为DAL，它是程序中和数据库进行交互的层。该层直接操作数据库，针对数据的增添、删除、修改、更新、查找等。对每一个数据表，都有一个类来完成一些方法，以满足对数据表的各种操作。</p>
<p>一个名为DbHelperSQL的类用于维护与SQLServer数据库的连接、可调用存储过程，所有的T-SQL查询语句均由这个类来执行，最后将数据集返回给业务逻辑层。</p>
<p>（二）业务逻辑层(BLL)</p>
<p>业务逻辑层（Business Logic Layer）是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。</p>
<p>业务逻辑层在体系架构中的位置很关键，它处于数据访问层与表示层中间，起到了数据交换中承上启下的作用。由于层是一种弱耦合结构，层与层之间的依赖是向下的，底层对于上层而言是“无知”的，改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时，遵循了面向接口设计的思想，那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下，理想的分层式架构，应该是一个支持可抽取、可替换的“抽屉”式架构。对于数据访问层而言，它是调用者；对于表示层而言，它却是被调用者。</p>
<p>数据的有效性验证的工作在这个层完成，以更好的保证程序运行的健壮性。如不允许将必填的选项留空、数据格式是否正确以及数据类型验证、用户权限的合法性判断等。通过以上的诸多判断以决定是否将操作继续向后传递，尽量保证程序的正常运行。</p>
<p>（三）表示层（UI）</p>
<p>表示层位于最外层（User Interface），离用户最近。用于显示数据和接收用户输入的数据，为用户提供一种交互式操作的界面。合理的摆放各类控件，整齐的排列，给用户以良好的视觉体验。</p>
<p>（四）Model层</p>
<p>Model层里面的一个类对应数据库里面的一张表，类里面的每一个属性对应表里面的一个字段，每个属性都有自己的GET和SET方法，项目中的数据存取都要依靠GET和SET方法来实现。它不属于纵向的某一个层，而是所有层都要用到的业务实体层。</p>
<p><strong><br />
</strong></p>
<p>结束语</p>
<p>在本系统的开发过程中，在知识、经验方面都存在着不足。另外，在整个开发的过程中，时间也比较仓促。因此，该系统必然会存在一些缺陷和不足。因为对企业人事管理的整个流程不够熟悉，在做需求分析的时候可能没有完全满足用户的需求。</p>
<p>尽管本管理系统存在着很多漏洞，但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点，仍不失为企业人事管理的一个强大工具。通过开发这个系统，我掌握了软件开发的流程，巩固了基本知识，让我更熟练的使用Visual Studio 2005开发软件。在这次毕业设计论文中的收获并不仅仅是掌握开发工具的应用，更是学会了设计系统的思维方法，以及与同学们之间相互帮助的精神。</p>
<p>经过长时间的构思与设计，在指导老师的精心指导和安排下，本系统已经设计完毕。其使用功能基本符合公司在实际工作的需要，具有一定的实用性。但是由于时间比较仓促，加上本人软件设计经验的不足。因此，在分析问题、解决问题时显得不够严密、完善，还需要在以后的工作中不断地改进和完善。</p>
<p>在这次的毕业设计中，让我深深地体现到进行软件开发不是一件简单的事情，它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力，而我在很多方面还有欠缺。</p>
<p>谢词（略）</p>
<p>参考文献</p>
<p>[1] 程志云，张帆，崔翔，《数据库原理与SQL Server 2005》，机械工业出版社，2009</p>
<p>[2] 崔淼，陈明非，《Visual C# 2005程序设计教程》，机械工业出版社，2008</p>
<p>附图：</p>
<p><a href="http://www.onono.org/wp-content/uploads/2010/07/界面展示-人事档案.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-462" title="界面展示-人事档案" src="http://www.onono.org/wp-content/uploads/2010/07/界面展示-人事档案-300x192.jpg" alt="" width="300" height="192" /></a></p>
<p><a href="http://www.onono.org/wp-content/uploads/2010/07/界面展示-三层架构.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-463" title="界面展示-三层架构" src="http://www.onono.org/wp-content/uploads/2010/07/界面展示-三层架构-300x191.jpg" alt="" width="300" height="191" /></a></p>
<p><a href="http://www.onono.org/wp-content/uploads/2010/07/界面展示-数据库展示.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-464" title="界面展示-数据库展示" src="http://www.onono.org/wp-content/uploads/2010/07/界面展示-数据库展示-300x207.jpg" alt="" width="300" height="207" /></a></p>
<p><a href="http://www.onono.org/wp-content/uploads/2010/07/数据流程图.jpg" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-465" title="数据流程图" src="http://www.onono.org/wp-content/uploads/2010/07/数据流程图-300x168.jpg" alt="" width="300" height="168" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/07/453.htm/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>nginx相关参数配置备忘</title>
		<link>http://www.onono.org/2010/03/424.htm</link>
		<comments>http://www.onono.org/2010/03/424.htm#comments</comments>
		<pubDate>Sun, 28 Mar 2010 16:31:19 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=424</guid>
		<description><![CDATA[（暂未验证正确性） discuz论坛重写参数 location / { if (!-e $request_filename) { rewrite ^/archiver/((fid&#124;tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last; rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&#38;page=$2 last; rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&#38;extra=page%3D$3&#38;page=$2 last; rewrite ^/space-(username&#124;uid)-(.+)\.html$ /space.php?$1=$2 last; rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last; break; } } 防盗链 location ~* ^.+\.(gif&#124;jpg&#124;png&#124;swf&#124;flv&#124;rar&#124;zip)$ { valid_referers none blocked &#8230; <a href="http://www.onono.org/2010/03/424.htm">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>（暂未验证正确性）<br />
<span id="more-424"></span><br />
discuz论坛重写参数<br />
<code><br />
location / {<br />
if (!-e $request_filename) {<br />
rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$   /archiver/index.php?$1 last;<br />
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$   /forumdisplay.php?fid=$1&amp;page=$2 last;<br />
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$  /viewthread.php?tid=$1&amp;extra=page%3D$3&amp;page=$2 last;<br />
rewrite ^/space-(username|uid)-(.+)\.html$   /space.php?$1=$2 last;<br />
rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;<br />
break;<br />
}<br />
}</code></p>
<p>防盗链<br />
<code><br />
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {<br />
valid_referers none blocked server_names *.onono.org http://localhost;<br />
if ($invalid_referer) {<br />
rewrite   ^/   http://error.org/images/error.gif;<br />
return   403;<br />
}<br />
}<br />
</code></p>
<p>WordPress<br />
<code><br />
# SEO friendly URLs for WordPress<br />
#<br />
location / {<br />
  root /path/to/YOURDIRECTORY/public_html/forums;<br />
  index index.php;<br />
  if (!-e $request_filename) {<br />
    rewrite ^(.*)$ /index.php?q=$1 last;<br />
  }<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2010/03/424.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

