<?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; LNMP</title>
	<atom:link href="http://www.zhujun.org/tag/lnmp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zhujun.org</link>
	<description>邪恶获得胜利的唯一条件，就是善良的人们保持沉默。</description>
	<lastBuildDate>Sun, 05 Feb 2012 06:34:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>把网站从ASP/ASPX迁徙到PHP了</title>
		<link>http://www.zhujun.org/web/migrate-aspx-to-php/</link>
		<comments>http://www.zhujun.org/web/migrate-aspx-to-php/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:42:35 +0000</pubDate>
		<dc:creator>朱俊</dc:creator>
				<category><![CDATA[网络开发]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[LNMP]]></category>

		<guid isPermaLink="false">http://www.zhujun.org/?p=150</guid>
		<description><![CDATA[讲述了将网站从Windows+IIS+MSSQL+ASP/ASPX迁徙到LNMP(Linux+Nginx+MySQL+PHP)平台的原因、过程、时间成本和带来速度提升的结果。]]></description>
			<content:encoded><![CDATA[<p>好久没有更新博客，这个月一直很忙，主要把手中几个网站从Windows IIS平台迁徙到了Linux Nginx下面。由于Linux对asp和aspx的支持不好，虽然有MONO，但Access和MSSQL数据库还是无法支持，所以把asp和aspx的网站全部换成php的了。</p>
<p>通过最近半个月左右的观察，感觉LNMP(Linux+Nginx+MySQL+PHP)平台没有让我失望，付出的劳动应该是值得的。<br />
<span id="more-150"></span></p>
<h3>为什么要从Windows+IIS+ASP/ASPX+MSSQL换到LNMP</h3>
<ul>
<li>成本<br />自从被宫信步赶到国外以后，就一直承受着昂贵的Windows License Fee，每个月十几至几十美元，无法一次性买断。虽然我的皮包公司 &#8211; <a href="http://www.skyker.com" rel="external">步天软件</a>是MicroSoft BizSpark成员，可以免费使用微软几乎所有产品，但这不代表我能把我的License Key交给美国IDC使用，大部分正规的IDC都会拒绝用户提供的Key，因为微软貌似有个规定KEY和硬件的提供人必须是一个。<br />换到Linux可以节省运营成本，谁叫俺是穷人呢。</li>
<li>稳定<br />之前连连看的论坛是ASP.Net的Discuz论坛，经常抛异常，甚至导致w3wp进程死掉。换到PHP的Discuz 7.2后，论坛表现的很稳定，而且速度也有所提升。<br />7、8年前ASP.Net 1.1刚出来的时候，我觉得.Net只要5、6年时间就可以一统江湖，但现在无论是桌面开发还是网络开发，.Net的表现都不尽如人意。<br />曾经吹牛说Vista是基于.Net的操作系统，结果非常莫名其妙，UAC更是失败中的失败，APP不准写自身文件夹，非要写系统的用户文件夹，难道这就是多用户？现在又把Vista 6.0的内核升到6.1，就当作Win7来卖，实在不明白微软那么多工程师在搞什么。</li>
<li>方便<br />Linux管理起来比Windows方便多了，IIS的图形界面使用起来非常低效，rewrite功能不行，需要外置模块或使用ASP.Net的rewrite。<br />MS SQL Server 2000的备份功能很弱，经常因为用户权限的问题导致Discuz论坛无法使用，比如恼人的“对象名 &#8216;dnt_templates&#8217; 无效”。<br />而Linux无论使用crontab进行自动备份还是使用各种工具比如PHPMyAdmin手动备份都很方便。</li>
</ul>
<h3>迁徙成本</h3>
<p>Discuz的.Net论坛有升级包可以直接转换到PHP的版本，虽然有些帖子需要重新编辑，大部分附件地址有问题，需要重新修改，但时间成本不超过2天。</p>
<p>另一个人工智能网站是基于ASP的动易CMS，由于年代太久远了，无法直接升级，于是使用的DedeCMS做的采集，大部分内容进行了重新编辑，加上界面模板修改，大约花了10多天时间。</p>
<p>最后是自己用ASP.NET 2.0编写的公司网站，花了3、4天重新设计和编写，还没完全完成。原先ASP.NET生成的html代码比较冗余，一大串ViewState的编码，经常自带很长的id名，不利于SEO，换到PHP后好多了，也通过了W3C的验证。</p>
<h3>迁徙结果</h3>
<h4>网站响应速度有所提升</h4>
<p>下图是监控宝提供的连连看网站响应时间变化图，约在下午3点，网站由Win2003/IIS迁移到了Debian5/Nginx。<br />
<img src="/wp-content/uploads/2010/04/iis-nginx.png" alt="IIS Nginx htm速度比较" /><br />
由于LLK.cn的网页基于shtml制作，没有用到动态技术，该图较好地反应两种web server在性能上的区别。<br />
可以看到，IIS服务器在0点和10点分别有两次服务器计算，消耗了较长时间，反应出IIS在建立连接上面比较慢。<br />
另外，切换到Nginx后，传输时间也相应减少，不过这可能仅仅是因为网络原因。</p>
<h4>页面执行速度有所提升</h4>
<p>连连看论坛从ASP.NET换到PHP后，页面执行时间方面从0.0x 降到了0.00x ，当然后者是用了eaccelerator编译PHP代码的，可ASP.NET也会编译啊。</p>
<p>人工智能网从asp换成php后，提升效果则更为明显，看图即知，都无需指明是几点切换的，这是两种完全没有可比性的技术。<br />
<img src="/wp-content/uploads/2010/04/iis-asp-nginx-php.png" alt="IIS ASP和Nginx PHP速度比较" /></p>
<h3>结论</h3>
<p>这次Web Server从Windows/IIS换到Linux/Nginx，网站从ASP/ASPX换到PHP，带来了性能上的提升和管理上的方便。<br />
从监控宝的监控视图上可以看到DNS域名解析时间不太稳定，0-500ms都有，联通（网通）视图中甚至会超过1000ms，严重影响用户打开网页的速度，下一篇将讲述<a href="http://www.zhujun.org/web/how-to-improve-dns-resolution-time/" >如何缩短域名的DNS解析时间来加快网页打开速度</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhujun.org/web/migrate-aspx-to-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Debian系统下LNMP环境搭建笔记（二）</title>
		<link>http://www.zhujun.org/web/debian-lnmp-2/</link>
		<comments>http://www.zhujun.org/web/debian-lnmp-2/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 14:04:54 +0000</pubDate>
		<dc:creator>朱俊</dc:creator>
				<category><![CDATA[网络开发]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[Nginx配置]]></category>

		<guid isPermaLink="false">http://www.zhujun.org/?p=25</guid>
		<description><![CDATA[记录了Linux（Debian）系统下面，搭建LNMP-Linux+Nginx+MySQL+PHP+eAcelerator的操作要点和心得笔记的文章之二。]]></description>
			<content:encoded><![CDATA[<h3>3. 配置LNMP</h3>
<p>Nginx由于没有免费的控制面板支持，所以需要修改 /usr/local/nginx/conf/nginx.conf 这个文件来实现服务器性能、特性的配置。<br />
上传下载配置文件建议使用Winscp这个工具，同样基于SSH协议，比Ftp安全。</p>
<p>在 <a rel="external nofollow" href="http://wiki.nginx.org/NginxConfiguration">http://wiki.nginx.org/NginxConfiguration</a> 有很多配置文件的文档和例子。</p>
<p class="b4list">默认的配置文件也不错，有以下几点需要注意：</p>
<ul>
<li>每次修改配置文件并上传后，需要测试配置文件是否正确，命令如下：<br />
<code class="command">/usr/local/nginx/sbin/nginx -t</code></li>
<li>修改配置后，必须重启Nginx才能生效，Nginx进程无缝重启命令如下：<br />
<code class="command">kill -HUP `cat /usr/local/nginx/logs/nginx.pid`</code></li>
<li>Nginx 默认不开启SSI（Server Side Include），需要手工开启，而官网给出的例子却无法正常工作，我是用如下配置代码实现SSI的：<br />
<code>location ~ .*\.(shtm|shtml)?$ {<br />
ssi on;<br />
ssi_silent_errors on;<br />
ssi_types text/shtml;<br />
}</code></li>
</ul>
<p><span id="more-25"></span><br />
MySQL的配置因为有PhpMyAdmin的存在，变得非常简单，也可以选择MySQL-Front这个客户端软件，实现对MySQL的远程配置、备份等操作。</p>
<p>PHP也是默认就配置好的，而且这个LNMP一键安装包选择的PHP FastCGI进程管理器是PHP-FPM（PHP FastCGI Process Manager），据说要比Lighttpd 的 spawn-fcgi 好许多。<br />
另外，默认情况下，eAcelerator是没有安装的，可以执行 ./eaccelerator.sh 自动安装，加速以后，PHP代码被预编译，大约可以节约一半的执行速度。以这个博客为例，加速前WordPress的处理时间大约在0.2秒，加速以后处理时间在0.1秒左右。</p>
<p>关于vsftp，个人感觉配置比较麻烦，我弄了半天，最后换成proftpd了事，后者配置相对简单。<br />
除非有多用户需求且权限要求比较严格，如果只是自己使用的话，Winscp完全可以满足上传下载的需求了。</p>
<p>经过最近的实践，感觉Linux（Debian）下使用LNMP搭建Web服务环境并没有想象中的困难，也不会比Windows下IIS的配置复杂多少。新手一至二天可以入门，完成安装、配置并投入生产环境。</p>
<p>（完）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhujun.org/web/debian-lnmp-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Debian系统下LNMP环境搭建笔记（一）</title>
		<link>http://www.zhujun.org/web/debian-lnmp/</link>
		<comments>http://www.zhujun.org/web/debian-lnmp/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 13:08:04 +0000</pubDate>
		<dc:creator>朱俊</dc:creator>
				<category><![CDATA[网络开发]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[LNMP]]></category>

		<guid isPermaLink="false">http://www.zhujun.org/?p=12</guid>
		<description><![CDATA[记录了Debian5.03系统下面，搭建LNMP-Nginx+PHP+MySQL+eAcelerator的操作要点和心得笔记的第一篇文章。]]></description>
			<content:encoded><![CDATA[<p>2009年岁末入手了一台美帝的VPS，虽然建立大中华局域网的传言四起，但还是无法阻挡我在互联网上用脚投票，“夯实”了美帝经济复苏的基础。</p>
<p>服务提供商是<a href="http://fhpp.futurehosting.biz/idevaffiliate.php?id=161" rel="external nofollow">FutureHosting</a>，WHT上口碑最好的几家公司之一，开通过程就像我们传说中的经济一样“又好又快”，我晚上十点左右下的单，第二天早上起来就已经帮我弄好了，实际开通时间应该是北京时间凌晨一、二点左右。</p>
<p>服务器操作系统国外一般就流行两种，CentOS和Debian，Ubuntu算作Debian的桌面版，一般不当服务器用，MS的Windows虽然方便，而且还能远程桌面进去，在里面开个IE，就可以自由上网冲浪，但无奈太贵，按月收钱，每个月要10多美元，难怪被人叫做M$。最终的选择是Debian5，虽然Debian的中文名字不太好听（大便），但人家号称又大，又方便，就选它吧。</p>
<p>Linux远程管理的必备工具是Putty，类似于Telnet的一个工具，区别是Putty基于SSH协议，安全加密。SSH在国内还有其他大用处，Google一下你就知道。</p>
<p>言归正传，正式开始LNMP环境的搭建，以下内容如果你不是技术银可以忽略不计。<span id="more-12"></span></p>
<p>所谓LNMP，就是Linux+Nginx+MySQL+PHP的缩写，类似的还有LAMP（Linux+Apache+MySQL+PHP）。Linux我选的Debian，Nginx是网页服务器，相当于IIS和Apache，但比上述两者都轻量、高效，MySQL是免费的数据库服务程序，PHP是最流行的网页动态语言中的一种。</p>
<h3>1. 更新Debian系统</h3>
<p>更新Bebian很简单，目前最新的稳定版本应该是5.03，只要打下面两行命令就可以了：<br />
<code class="command">sudo apt-get update<br />
sudo apt-get dist-upgrade</code></p>
<p>如果你有root权限，sudo命令都不需要，只要打：<br />
<code class="command">apt-get update<br />
apt-get dist-upgrade<br />
</code><br />
需要注意的是，apt-get默认从 http://ftp.de.debian.org/ 下载更新包，如果你的服务器在国外，那么几百兆的数据最多几分钟而已，如果你的服务器在国内，则可以修改/etc/apt/sources.list 文件，换成国内的更新源，以解决网络出口的瓶颈问题。</p>
<h3>2. 安装LNMP</h3>
<p>安装LNMP其实也很简单，因为已经有很多热心人帮你整合好了，用google搜索LNMP一键安装包就有好多。<br />
我使用的是<a rel="external nofollow" href="http://blog.licess.cn/lnmp/">http://blog.licess.cn/lnmp/</a> 这家，附带了phpMyAdmin、eAcelerator和Zend，都是好东西。<br />
安装命令如下：<br />
<code class="command">wget http://soft.vpser.net/lnmp/lnmp0.3.tar.gz<br />
tar zxvf lnmp0.3.tar.gz<br />
cd lnmp0.3<br />
./debian.sh （64位系统执行./debian64.sh ）</code><br />
大约几分钟后输入MySQL密码即可。</p>
<p>（未完待续）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhujun.org/web/debian-lnmp/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

