<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.xiabaibai.net/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.xiabaibai.net" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/xiabaibai" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 21 Dec 2011 08:05:55 GMT</lastBuildDate><title>瞎摆摆</title><description>瞎摆摆-互联网乱评</description><link>http://xiabaibai.net</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Wed, 21 Dec 2011 08:32:45 GMT</pubDate><item><title>csdn悲剧了。。600w用户资料泄漏，包括明文密码</title><link>http://xiabaibai.net/2011/12/csdn-hack-0day/</link><content:encoded>&lt;p&gt;最新0day：&lt;/p&gt;
&lt;p class=&quot;detail&quot;&gt;CSDN社区网站被入侵，近600w用户账号密码被泄露，黑客将连接公布到互联网，导致任何人可以获得该数据， 经严重数据真实有效。该事件可能对各大互联网公司包括新浪微博，企业安全等造成严重威胁，严重建议用户修改账号密码，禁止企业用户使用内部办公邮箱在外部 注册以及各处使用同一密码。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/12/20111221155953.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-215&quot; height=&quot;118&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/12/20111221155953.jpg&quot; title=&quot;20111221155953&quot; width=&quot;561&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注：上面驱动之家的新闻链接 &lt;a href=&quot;http://news.mydrivers.com/1/212/212703.htm&quot; target=&quot;_blank&quot;&gt;http://news.mydrivers.com/1/212/212703.htm&lt;/a&gt; 下午16点15分，这篇稿子已经被删了，csdn动作还是很快。就看360厚道不厚道了。&lt;/p&gt;
&lt;p&gt;csdn居然存明文密码，太2了。有哥们已经拿到库了，拜托他帮忙搜了一下，没我的帐号。公司里找了4个人，有一个不幸在里面。&lt;/p&gt;
&lt;p&gt;360安全卫士的新浪微博：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/12/20111221162214.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-221&quot; height=&quot;142&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/12/20111221162214.jpg&quot; title=&quot;20111221162214&quot; width=&quot;588&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;估计600w只是一部分，赶紧改密码吧！&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386618/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/12/csdn-hack-0day/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/12/csdn-hack-0day/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>最新0day： CSDN社区网站被入侵，近600w用户账号密码被泄露，黑客将连接公布到互联网，导致任何人可以获得该数据， 经严重数据真实有效。该事件可能对各大互联网公司包括新浪微博，企业安全等造成严重威胁，严重建议用户修改账号密码，禁止企业用户使用内部办公邮箱在外部 注册以及各处使用同一密码。 注：上面驱动之家的新闻链接 http://news.mydrivers.com/1/212/212703.htm 下午16点15分，这篇稿子已经被删了，csdn动作还是很快。就看360厚道不厚道了。 csdn居然存明文密码，太2了。有哥们已经拿到库了，拜托他帮忙搜了一下，没我的帐号。公司里找了4个人，有一个不幸在里面。 360安全卫士的新浪微博： &amp;#160; 估计600w只是一部分，赶紧改密码吧！&lt;img src=&quot;http://www1.feedsky.com/t1/589386618/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/12/csdn-hack-0day/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>泄漏</category><category>开发</category><category>互联网</category><category>黑客</category><category>csdn</category><category>密码</category><pubDate>Wed, 21 Dec 2011 16:05:55 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/12/csdn-hack-0day/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=214</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/12/csdn-hack-0day/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386618/5760062</fs:itemid></item><item><title>KindEditor：在线Html编辑器的另一选择</title><link>http://xiabaibai.net/2011/10/kindeditor/</link><content:encoded>&lt;p&gt;今天发现了一个不错的Html编辑器 KindEditor，替换了一个项目原先使用的FCKEditor.&lt;/p&gt;
&lt;p&gt;	目前主流的在线编辑器是FCKEditor/CKEditor/TinyMCE，FCKEditor比较陈旧，界面丑陋，图片上传也不好用，CKEditor是FCKEditor的升级版，比较庞大，加载时间长，并且不带图片上传，图片上传需要集成另外一个CKFinder&lt;br /&gt;
	TinyMCE不熟（虽然现在写这篇blog正在用的就是TinyMCE）&lt;/p&gt;
&lt;p&gt;	KindEditor 目前版本4.0，可以免费下载使用&lt;br /&gt;
	官网：&lt;a href=&quot;http://www.kindsoft.net&quot; target=&quot;_blank&quot;&gt;http://www.kindsoft.net&lt;/a&gt;&lt;br /&gt;
	在线演示：&lt;a href=&quot;http://www.kindsoft.net/demo.php&quot; target=&quot;_blank&quot;&gt;http://www.kindsoft.net/demo.php&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386619/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/10/kindeditor/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/10/kindeditor/feed/</wfw:commentRss><slash:comments>1</slash:comments><description>今天发现了一个不错的Html编辑器 KindEditor，替换了一个项目原先使用的FCKEditor. 目前主流的在线编辑器是FCKEditor/CKEditor/TinyMCE，FCKEditor比较陈旧，界面丑陋，图片上传也不好用，CKEditor是FCKEditor的升级版，比较庞大，加载时间长，并且不带图片上传，图片上传需要集成另外一个CKFinder TinyMCE不熟（虽然现在写这篇blog正在用的就是TinyMCE） KindEditor 目前版本4.0，可以免费下载使用 官网：http://www.kindsoft.net 在线演示：http://www.kindsoft.net/demo.php&lt;img src=&quot;http://www1.feedsky.com/t1/589386619/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/10/kindeditor/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>fckeditor</category><category>kindeditor</category><category>ckeditor</category><category>开发</category><pubDate>Wed, 05 Oct 2011 21:55:13 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/10/kindeditor/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=211</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/10/kindeditor/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386619/5760062</fs:itemid></item><item><title>基于nginx的pop3/imap/smtp的反向代理解决方案</title><link>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/</link><content:encoded>&lt;p&gt;&lt;strong&gt;本文介绍基于nginx的邮局反向代理配置方案。nginx对来源于客户端的pop3/smtp/imap请求予以转发到后端postfix，后端邮件服务器采用postfix 2.8.0，已配置并正常运行。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;	本方案参考 &lt;a href=&quot;http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript&quot; target=&quot;_blank&quot;&gt;Using a php script on apache server as the auth backend &lt;/a&gt;，并基于此方案进行改进，并增加了对smtp的代理。&lt;/p&gt;
&lt;p&gt;	&lt;strong&gt;环境配置&lt;/strong&gt;：centos 5.5 + nginx 1.0.4&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;软件安装&lt;/strong&gt;：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;yum groupinstall &amp;#39;Development Tools&amp;#39; -y&lt;br /&gt;
		rpm -Uhv &lt;a href=&quot;http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm&quot;&gt;http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm&lt;/a&gt;&lt;br /&gt;
		yum install libxml2-devel libxslt-devel pcre-devel libtool-ltdl libtool-ltdl-devel&lt;/p&gt;
&lt;p&gt;		cd /usr/src&lt;br /&gt;
		wget http://nginx.org/download/nginx-1.0.4.tar.gz&lt;br /&gt;
		tar -zxf nginx-1.0.4.tar.gz&lt;br /&gt;
		cd nginx-1.0.4&lt;br /&gt;
		./configure &amp;#8211;prefix=/usr/local/nginx &amp;#8211;with-mail &amp;#8211;without-http&lt;br /&gt;
		make &amp;amp;&amp;amp; make install&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
	&lt;strong&gt;配置nginx.conf&lt;/strong&gt;：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;#user&amp;nbsp; nobody;&lt;br /&gt;
		worker_processes&amp;nbsp; 1;&lt;br /&gt;
		error_log&amp;nbsp; logs/error.log&amp;nbsp; info;&lt;br /&gt;
		events {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; worker_connections&amp;nbsp; 1024;&lt;br /&gt;
		}&lt;br /&gt;
		mail {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; auth_http&amp;nbsp; 指定IP:80/auth.php;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; pop3_capabilities&amp;nbsp; &amp;quot;TOP&amp;quot;&amp;nbsp; &amp;quot;USER&amp;quot;;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; imap_capabilities&amp;nbsp; &amp;quot;IMAP4rev1&amp;quot;&amp;nbsp; &amp;quot;UIDPLUS&amp;quot;;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; server {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 110;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocol&amp;nbsp;&amp;nbsp; pop3;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; server {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 143;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocol&amp;nbsp;&amp;nbsp; imap;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proxy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; server {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; listen&amp;nbsp;&amp;nbsp;&amp;nbsp; 25;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; protocol&amp;nbsp;&amp;nbsp;&amp;nbsp; smtp;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; proxy&amp;nbsp;&amp;nbsp;&amp;nbsp; on;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtp_auth login plain;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; xclient&amp;nbsp;&amp;nbsp;&amp;nbsp; off;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;说明：&lt;/strong&gt;&lt;br /&gt;
	1.安装nginx时禁掉了http（&amp;#8211;without-http），因为我们的目标只是转发pop3/smtp/imap请求，故nginx.conf也是相当简单，只有mail模块。如果还需要代理80端口（例如webmail），可以自行编译对http的支持。&lt;/p&gt;
&lt;p&gt;	2.smtp的配置模块里必须加入xclient off，否则当nginx向后转发smtp请求时，postfix将报&amp;ldquo;lost connection after XCLIENT&amp;rdquo;，同时nginx报&amp;ldquo;550 5.7.0 Error: insufficient authorization&amp;rdquo;. nginx对smtp的代理，与pop3/imap是不同的，详细见后文。&lt;/p&gt;
&lt;p&gt;	3.指定IP是用于认证的，需要放认证脚本auth.php. 认证脚本的作用就是验证用户和密码，一般自定义，可以放在任意的服务器上。本方案中选择放在后端邮件服务器上，便于管理。&lt;/p&gt;
&lt;p&gt;	这里有一个问题，postfix本身已经集成了认证机制（本人采用的是cyrus sasl2+courier-authlib），为什么加了反向代理，认证过程就要移动到反向代理上呢？这样岂不是就变成非透明代理了吗？为什么不作纯碎的透明代理呢？&lt;br /&gt;
	根据测试，如果这个认证脚本不设验证，直接透传所有pop3/imap请求到后端，在后端邮件服务器还会进行一次认证，但是对于smtp请求，将不再认证，而直接按照转发规则进行转发（因为反向代理的ip加到了postfix的mynetworks中，见后文）。这两种不同的差异应该是跟协议有关。&lt;br /&gt;
	为了保持统一，在本文的方案中，auth.php集成了pop3/imap/smtp的三种认证。这样的功能架构类似于游戏服务器的，登录服务器和游戏服务器是分开的。&lt;/p&gt;
&lt;p&gt;	4.在邮件服务器postfix/etc/main.cf中，修改mynetworks值，加入本反向代理的ip，并重载postfix：postfix -s reload&lt;/p&gt;
&lt;p&gt;
	关于xclient：xclient的作用，是将前端的服务器模拟作为一个邮件客户端，而向后端的postfix进行认证和执行发送，但是postfix还需要一个打patch才能完美支持xclient。&lt;br /&gt;
	关于此问题的讨论可以参见 &lt;a href=&quot;http://forum.nginx.org/read.php?2,173197,173246#msg-173246&quot; target=&quot;_blank&quot;&gt;http://forum.nginx.org/read.php?2,173197,173246#msg-173246&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	&lt;strong&gt;auth.php：&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;?php&lt;br /&gt;
		/**&lt;br /&gt;
		* @see xiabaibai.net&lt;br /&gt;
		*/&lt;br /&gt;
		if(!isset($_SERVER [&amp;quot;HTTP_AUTH_USER&amp;quot;] ) || ! isset($_SERVER [&amp;quot;HTTP_AUTH_PASS&amp;quot;] )) {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; fail(0);&lt;br /&gt;
		}&lt;br /&gt;
		$username = $_SERVER [&amp;quot;HTTP_AUTH_USER&amp;quot;];&lt;br /&gt;
		$userpass = $_SERVER [&amp;quot;HTTP_AUTH_PASS&amp;quot;];&lt;br /&gt;
		$protocol = $_SERVER [&amp;quot;HTTP_AUTH_PROTOCOL&amp;quot;];&lt;/p&gt;
&lt;p&gt;		$backend_port = 110;&lt;br /&gt;
		if($protocol == &amp;quot;imap&amp;quot;) {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; $backend_port = 143;&lt;br /&gt;
		} elseif ($protocol == &amp;quot;smtp&amp;quot;) {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; $backend_port = 25;&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		list($uid, $domain) = explode(&amp;quot;@&amp;quot;, $username);&lt;/p&gt;
&lt;p&gt;		$auth = authuser($username, $userpass);&lt;br /&gt;
		if(!$auth) fail (-2);&lt;/p&gt;
&lt;p&gt;		pass($_SERVER[&amp;quot;SERVER_ADDR&amp;quot;], $backend_port);&lt;/p&gt;
&lt;p&gt;		//自定义认证，sql查询或者api&lt;br /&gt;
		function authuser($user, $pass) {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		function fail($code) {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; switch($code){&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case 0: header(&amp;quot;Auth-Status: Parameter lost&amp;quot;); break;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case -1: header(&amp;quot;Auth-Status: No Back-end Server&amp;quot;); break;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case -2: header(&amp;quot;Auth-Status: Invalid login or password&amp;quot; ); break;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; exit();&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		function pass($server, $port) {&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&amp;quot;Auth-Status: OK&amp;quot; );&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&amp;quot;Auth-Server: $server&amp;quot; );&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&amp;quot;Auth-Port: $port&amp;quot; );&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; exit();&lt;br /&gt;
		}&lt;br /&gt;
		&amp;nbsp;&lt;br /&gt;
		?&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386620/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/feed/</wfw:commentRss><slash:comments>1</slash:comments><description>本文介绍基于nginx的邮局反向代理配置方案。nginx对来源于客户端的pop3/smtp/imap请求予以转发到后端postfix，后端邮件服务器采用postfix 2.8.0，已配置并正常运行。 本方案参考 Using a php script on apache server as the auth backend ，并基于此方案进行改进，并增加了对smtp的代理。 环境配置：centos 5.5 + nginx 1.0.4 软件安装： yum groupinstall &amp;#39;Development Tools&amp;#39; -y rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm yum install libxml2-devel libxslt-devel pcre-devel libtool-ltdl libtool-ltdl-devel cd /usr/src wget http://nginx.org/download/nginx-1.0.4.tar.gz tar -zxf nginx-1.0.4.tar.gz cd nginx-1.0.4 ./configure &amp;#8211;prefix=/usr/local/nginx &amp;#8211;with-mail &amp;#8211;without-http make &amp;#38;&amp;#38; make install 配置nginx.conf： #user&amp;#160; [...]&lt;img src=&quot;http://www1.feedsky.com/t1/589386620/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>未分类</category><pubDate>Wed, 31 Aug 2011 13:05:49 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=197</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/08/nginx-pop3-imap-smtp-reverse-proxy/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386620/5760062</fs:itemid></item><item><title>win7下安装ESET NOD32 Antivirus RC 5（精睿汉化） 后导致无法进入桌面</title><link>http://xiabaibai.net/2011/08/nod32-cannot-logi/</link><content:encoded>&lt;p&gt;nod32这个版本跟系统有冲突：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;版本：5.0.84.0 RC&lt;br /&gt;
		语言：简体中文&lt;br /&gt;
		类型：纯净版&lt;br /&gt;
		授权：试用三个月&lt;br /&gt;
		适合32位系统：XP/Vista//Win7/2003/2008&lt;br /&gt;
		封装：麦田守望者&lt;br /&gt;
		来源：精睿(vc52).网络安全&lt;/p&gt;
&lt;p&gt;我的系统：&lt;br /&gt;
		主板：技嘉GA-G41MT-ES2L&lt;br /&gt;
		独显：nVIDIA GeForce 210&lt;br /&gt;
		操作系统：win7&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
	问题表现：&lt;br /&gt;
	启动到账户登录界面，输入密码后，一直显示欢迎界面，卡死，或几十秒后直接黑屏，按Ctrl+Shift+Del能启动任务管理器，但执行任何操作均死掉。&lt;/p&gt;
&lt;p&gt;	解决方法：&lt;br /&gt;
	一开始以为是显卡驱动问题，进安全模式卸载并重装了独显的驱动，无效。然后拔掉独显，并重装了主板的驱动、主板集成显卡的驱动、网卡驱动，均无效。&lt;br /&gt;
	怀疑不是驱动问题，是软件冲突，再次进到安全模式，通过XueTr查出没有数字签名的几个服务：Daemon Tools Lite, nod32, 还有一个迅雷的基础组建服务，全部禁用，终于可以进入桌面。然后逐一筛选，终于定位到nod32这个元凶，卸载，然后到官网下了一个&lt;span class=&quot;eav_title&quot;&gt;4.2版本的，装好一切正常。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;	&lt;strong&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;&lt;a href=&quot;http://www.eset.com.cn/download/&quot; target=&quot;_blank&quot;&gt;ESET NOD32 防病毒软件 4.2 官网下载地址&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
	注：&lt;br /&gt;
	nod32是个可靠的杀毒软件。精睿软件园是很有名气的nod32发布地，之前一直从精睿下载集成了id获取器的nod32版本，在360闹事的那段时间还推荐给了朋友。&lt;br /&gt;
	这个有问题的版本是&lt;a href=&quot;http://down.vc52.cn//download/view-software-153.html&quot; target=&quot;_blank&quot;&gt;5.0.84.0 RC&lt;/a&gt;. 如果从官方下载了nod32，而苦于寻找id的话，可以单独下载精睿的id获取器。当然，买正版是最好的。&lt;br /&gt;
	&lt;strong&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;&lt;a href=&quot;http://down.vc52.cn//download/view-software-149.html&quot; target=&quot;_blank&quot;&gt;&lt;br /&gt;
	ESET VC52 WebID （ESET ID获取工具） 1.2.0.0 &lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386621/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/08/nod32-cannot-logi/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/08/nod32-cannot-logi/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>nod32这个版本跟系统有冲突： 版本：5.0.84.0 RC 语言：简体中文 类型：纯净版 授权：试用三个月 适合32位系统：XP/Vista//Win7/2003/2008 封装：麦田守望者 来源：精睿(vc52).网络安全 我的系统： 主板：技嘉GA-G41MT-ES2L 独显：nVIDIA GeForce 210 操作系统：win7 问题表现： 启动到账户登录界面，输入密码后，一直显示欢迎界面，卡死，或几十秒后直接黑屏，按Ctrl+Shift+Del能启动任务管理器，但执行任何操作均死掉。 解决方法： 一开始以为是显卡驱动问题，进安全模式卸载并重装了独显的驱动，无效。然后拔掉独显，并重装了主板的驱动、主板集成显卡的驱动、网卡驱动，均无效。 怀疑不是驱动问题，是软件冲突，再次进到安全模式，通过XueTr查出没有数字签名的几个服务：Daemon Tools Lite, nod32, 还有一个迅雷的基础组建服务，全部禁用，终于可以进入桌面。然后逐一筛选，终于定位到nod32这个元凶，卸载，然后到官网下了一个4.2版本的，装好一切正常。 ESET NOD32 防病毒软件 4.2 官网下载地址 注： nod32是个可靠的杀毒软件。精睿软件园是很有名气的nod32发布地，之前一直从精睿下载集成了id获取器的nod32版本，在360闹事的那段时间还推荐给了朋友。 这个有问题的版本是5.0.84.0 RC. 如果从官方下载了nod32，而苦于寻找id的话，可以单独下载精睿的id获取器。当然，买正版是最好的。 ESET VC52 WebID （ESET ID获取工具） 1.2.0.0&lt;img src=&quot;http://www1.feedsky.com/t1/589386621/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/08/nod32-cannot-logi/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>精睿</category><category>软件</category><category>黑屏</category><category>无法登录</category><category>nod32</category><category>注册码</category><pubDate>Thu, 25 Aug 2011 12:39:02 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/08/nod32-cannot-logi/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=200</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/08/nod32-cannot-logi/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386621/5760062</fs:itemid></item><item><title>飞影的故事</title><link>http://xiabaibai.net/2011/07/hiei-story/</link><content:encoded>&lt;p&gt;重温幽游白书。富槛只用一页就讲述了飞影充满传奇色彩的故事。&lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/07/b_large_u4FK_39a90002d7722d12.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-193&quot; height=&quot;444&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/07/b_large_u4FK_39a90002d7722d12.jpg&quot; title=&quot;b_large_u4FK_39a90002d7722d12&quot; width=&quot;580&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	忌子飞影，出生于冰河之国的凶恶孩童，养父母是盗贼。喜欢看见皮肉遭利刀划过后，尚未出血时的刀痕，而且喜欢听见受伤时哀嚎声，对于冰河的那群女子会抛弃他的心，是可以理解。 &lt;/p&gt;
&lt;p&gt;	知道母亲所给的信物冰泪石是贵重的宝石，却向盗贼炫耀，而故意挂在脖子上，所以每天都过着刀口淌血的日子。 &lt;/p&gt;
&lt;p&gt;	对于找寻冰河之国一事，已经渐渐不重要了，因为每天都太忙了。 &lt;/p&gt;
&lt;p&gt;	冰河之国已经变成凝视冰泪石时，偶尔想起的故乡罢了。 &lt;/p&gt;
&lt;p&gt;
	就在大开杀戒之后，当地的盗贼都因畏惧面躲的远远的。所以，凝视冰泪石的时间相对增加了。于是渐渐&amp;hellip;&amp;hellip;发现自己在凝视冰泪石时，心灵就会平静下来。 &lt;/p&gt;
&lt;p&gt;	唯有凝视着冰泪石时，表情才缓和。透过这颗拥有不可思议力量的石子，想起了那位创造这颗石子与自己的人。寻找冰河之国的目的也随之而改变了。 &lt;/p&gt;
&lt;p&gt;	离开了地盘后，便会遇上新的敌手，其中不乏有厉害的家伙。一时的大意，母亲的冰泪石跌落悬崖深渊，使得寻找的目标又多了一个。需要能看到更远更透的眼睛。 &lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/07/b_large_cUa9_0148000109122d11.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-192&quot; height=&quot;441&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/07/b_large_cUa9_0148000109122d11.jpg&quot; title=&quot;b_large_cUa9_0148000109122d11&quot; width=&quot;580&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	为了装上邪眼，除了必须忍受极大的痛楚之外，还得失去多年修行得来的妖力。不过，当时的自己却不以为然&amp;hellip;&amp;hellip; &lt;/p&gt;
&lt;p&gt;	因为，对于一时大意而遗失冰泪石的自己，始终无法原谅。 &lt;/p&gt;
&lt;p&gt;
	用邪眼找到了冰河之国。 悄悄地回到故乡，见以冰女们终日生活在痛苦中，于是改变了心意，决定不杀她们。因此复仇的任务结束了。 &lt;/p&gt;
&lt;p&gt;	城旁角落荒墓上的墓碑上发现了母亲的名字。并没有生气，因为知道这是母亲的意思。 &lt;/p&gt;
&lt;p&gt;	此行所得的收获是得知了妹妹名字叫雪莱，而且失踪数年了，于是又找到了一个新的生活目标。你的一生仿佛是为了漂泊而生存着。 &lt;/p&gt;
&lt;p&gt;
	经过一番曲折，在人界有段不可思议的曹遇。然后又改变了！&lt;/p&gt;
&lt;p&gt;	与某个奇特的人战斗，你遇见了妹妹，当然她不认识你，而你也不会她，你希望维持目前的关系就好。&lt;/p&gt;
&lt;p&gt;	再来只要找到自己的冰泪石就行了，而且在人界的战斗也差不多满足了你的胃口。&lt;/p&gt;
&lt;p&gt;	可是，&amp;ldquo;要是你遇见了我哥哥，请把这个交给他&amp;rdquo;，&amp;ldquo;这颗并不是我的冰泪石&amp;rdquo;当你心中这么告诉自己时，感到生活目标被扼杀的虚无感。&lt;/p&gt;
&lt;p&gt;	你的生活只剩杀戮而已，所以你考虑到死亡的问题。你的意识是我所接触过心地最善良的家伙。&lt;/p&gt;
&lt;p&gt;	&amp;nbsp;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386622/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/07/hiei-story/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/07/hiei-story/feed/</wfw:commentRss><slash:comments>1</slash:comments><description>重温幽游白书。富槛只用一页就讲述了飞影充满传奇色彩的故事。 忌子飞影，出生于冰河之国的凶恶孩童，养父母是盗贼。喜欢看见皮肉遭利刀划过后，尚未出血时的刀痕，而且喜欢听见受伤时哀嚎声，对于冰河的那群女子会抛弃他的心，是可以理解。 知道母亲所给的信物冰泪石是贵重的宝石，却向盗贼炫耀，而故意挂在脖子上，所以每天都过着刀口淌血的日子。 对于找寻冰河之国一事，已经渐渐不重要了，因为每天都太忙了。 冰河之国已经变成凝视冰泪石时，偶尔想起的故乡罢了。 就在大开杀戒之后，当地的盗贼都因畏惧面躲的远远的。所以，凝视冰泪石的时间相对增加了。于是渐渐&amp;#8230;&amp;#8230;发现自己在凝视冰泪石时，心灵就会平静下来。 唯有凝视着冰泪石时，表情才缓和。透过这颗拥有不可思议力量的石子，想起了那位创造这颗石子与自己的人。寻找冰河之国的目的也随之而改变了。 离开了地盘后，便会遇上新的敌手，其中不乏有厉害的家伙。一时的大意，母亲的冰泪石跌落悬崖深渊，使得寻找的目标又多了一个。需要能看到更远更透的眼睛。 为了装上邪眼，除了必须忍受极大的痛楚之外，还得失去多年修行得来的妖力。不过，当时的自己却不以为然&amp;#8230;&amp;#8230; 因为，对于一时大意而遗失冰泪石的自己，始终无法原谅。 用邪眼找到了冰河之国。 悄悄地回到故乡，见以冰女们终日生活在痛苦中，于是改变了心意，决定不杀她们。因此复仇的任务结束了。 城旁角落荒墓上的墓碑上发现了母亲的名字。并没有生气，因为知道这是母亲的意思。 此行所得的收获是得知了妹妹名字叫雪莱，而且失踪数年了，于是又找到了一个新的生活目标。你的一生仿佛是为了漂泊而生存着。 经过一番曲折，在人界有段不可思议的曹遇。然后又改变了！ 与某个奇特的人战斗，你遇见了妹妹，当然她不认识你，而你也不会她，你希望维持目前的关系就好。 再来只要找到自己的冰泪石就行了，而且在人界的战斗也差不多满足了你的胃口。 可是，&amp;#8220;要是你遇见了我哥哥，请把这个交给他&amp;#8221;，&amp;#8220;这颗并不是我的冰泪石&amp;#8221;当你心中这么告诉自己时，感到生活目标被扼杀的虚无感。 你的生活只剩杀戮而已，所以你考虑到死亡的问题。你的意识是我所接触过心地最善良的家伙。 &amp;#160;&lt;img src=&quot;http://www1.feedsky.com/t1/589386622/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/07/hiei-story/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>雪莱</category><category>生活娱乐</category><category>飞影</category><category>幽游白书</category><pubDate>Mon, 11 Jul 2011 21:35:11 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/07/hiei-story/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=191</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/07/hiei-story/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386622/5760062</fs:itemid></item><item><title>maildroprc 自动创建邮箱文件夹并订阅</title><link>http://xiabaibai.net/2011/06/maildroprc-auto-create-and-auto-subscrib/</link><content:encoded>&lt;p&gt;roundcube有个bug，没有自动订阅邮箱的4个folder（Sent Trash Drafts Junk），于是写了一个插件，放在login_after回调里：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;public function login_after($data){&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $rcmail = rcmail::get_instance();&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $default_imap_folders = $rcmail-&amp;gt;config-&amp;gt;get(&amp;#39;default_imap_folders&amp;#39;);&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $rcmail-&amp;gt;imap_connect();&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(is_object($rcmail-&amp;gt;imap)){&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; $a_mailboxes = $rcmail-&amp;gt;imap-&amp;gt;list_unsubscribed();&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $need_subscribed = array_intersect($default_imap_folders, $a_mailboxes);&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $need_subscribed = $default_imap_folders;&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(count($need_subscribed)&amp;gt;0){&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; foreach($need_subscribed as $folder){&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$rcmail-&amp;gt;imap-&amp;gt;mailbox_exists($folder))&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $rcmail-&amp;gt;imap-&amp;gt;create_mailbox($folder, true);&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else $rcmail-&amp;gt;imap-&amp;gt;subscribe($folder);&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这样每次登录都回去检查没订阅的邮箱，并且自动订阅，如果不存在则创建（兼容一部分转移过来的丢失folder的老用户）&lt;br /&gt;
	今天细想，这个工作应该是在maildrop里完成，于是改进了一下maildroprc：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;`/usr/bin/test -d $HOME/Maildir/.Sent`&lt;br /&gt;
		if( $RETURNCODE == 1 )&lt;br /&gt;
		{&lt;br /&gt;
		EXTENSION = &amp;quot;Sent&amp;quot;&lt;br /&gt;
		log &amp;quot;\&amp;quot;$MAILDIRMAKE -f $EXTENSION $DEFAULT\&amp;quot;&amp;quot;&lt;br /&gt;
		`$MAILDIRMAKE -f $EXTENSION &amp;quot;$DEFAULT&amp;quot;`&lt;br /&gt;
		`if ! grep -q INBOX.$EXTENSION $DEFAULT/courierimapsubscribed; then echo INBOX.$EXTENSION &amp;gt;&amp;gt; $DEFAULT/courierimapsubscribed; fi`&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		`/usr/bin/test -d $HOME/Maildir/.Trash`&lt;br /&gt;
		if( $RETURNCODE == 1 )&lt;br /&gt;
		{&lt;br /&gt;
		EXTENSION = &amp;quot;Trash&amp;quot;&lt;br /&gt;
		log &amp;quot;\&amp;quot;$MAILDIRMAKE -f $EXTENSION $DEFAULT\&amp;quot;&amp;quot;&lt;br /&gt;
		`$MAILDIRMAKE -f $EXTENSION &amp;quot;$DEFAULT&amp;quot;`&lt;br /&gt;
		`if ! grep -q INBOX.$EXTENSION $DEFAULT/courierimapsubscribed; then echo INBOX.$EXTENSION &amp;gt;&amp;gt; $DEFAULT/courierimapsubscribed; fi`&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		`/usr/bin/test -d $HOME/Maildir/.Drafts`&lt;br /&gt;
		if( $RETURNCODE == 1 )&lt;br /&gt;
		{&lt;br /&gt;
		EXTENSION = &amp;quot;Drafts&amp;quot;&lt;br /&gt;
		log &amp;quot;\&amp;quot;$MAILDIRMAKE -f $EXTENSION $DEFAULT\&amp;quot;&amp;quot;&lt;br /&gt;
		`$MAILDIRMAKE -f $EXTENSION &amp;quot;$DEFAULT&amp;quot;`&lt;br /&gt;
		`if ! grep -q INBOX.$EXTENSION $DEFAULT/courierimapsubscribed; then echo INBOX.$EXTENSION &amp;gt;&amp;gt; $DEFAULT/courierimapsubscribed; fi`&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		`/usr/bin/test -d $HOME/Maildir/.Junk`&lt;br /&gt;
		if( $RETURNCODE == 1 )&lt;br /&gt;
		{&lt;br /&gt;
		EXTENSION = &amp;quot;Junk&amp;quot;&lt;br /&gt;
		log &amp;quot;\&amp;quot;$MAILDIRMAKE -f $EXTENSION $DEFAULT\&amp;quot;&amp;quot;&lt;br /&gt;
		`$MAILDIRMAKE -f $EXTENSION &amp;quot;$DEFAULT&amp;quot;`&lt;br /&gt;
		`if ! grep -q INBOX.$EXTENSION $DEFAULT/courierimapsubscribed; then echo INBOX.$EXTENSION &amp;gt;&amp;gt; $DEFAULT/courierimapsubscribed; fi`&lt;br /&gt;
		}&lt;/p&gt;
&lt;p&gt;		if (/^X-Spam-Status: Yes/ )&lt;br /&gt;
		{&lt;br /&gt;
		&amp;nbsp;EXTENSION = &amp;quot;Junk&amp;quot;&lt;br /&gt;
		&amp;nbsp;log &amp;quot;\&amp;quot;$MAILDIRMAKE -f $EXTENSION $DEFAULT\&amp;quot;&amp;quot;&lt;br /&gt;
		&amp;nbsp;`$MAILDIRMAKE -f $EXTENSION &amp;quot;$DEFAULT&amp;quot;`&lt;br /&gt;
		&amp;nbsp;`if ! grep -q INBOX.$EXTENSION $DEFAULT/courierimapsubscribed; then echo INBOX.$EXTENSION &amp;gt;&amp;gt; $DEFAULT/courierimapsubscribed; fi`&lt;br /&gt;
		&amp;nbsp; to $HOME/Maildir/.$EXTENSION/&lt;br /&gt;
		}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;要是maildroprc的语言支持循环的话，就能更省一些。简单备注一下：&lt;br /&gt;
	$RETURNCODE==1，表示为false（估计是沿用c++的）&lt;br /&gt;
	$DEFAULT是预定义的变量，为邮件投递的全路径&lt;br /&gt;
	courierimapsubscribed文件放于邮箱Maildir下，控制邮箱的订阅与否&lt;/p&gt;
&lt;p&gt;	参考：&lt;br /&gt;
	&lt;a href=&quot;http://www.ajaxstu.com/Mailfuwuqi/257893.html&quot; target=&quot;_blank&quot;&gt;http://www.ajaxstu.com/Mailfuwuqi/257893.html&lt;/a&gt;&lt;br /&gt;
	&lt;a href=&quot;http://gogs.info/wiki/debian/maildrop&quot; target=&quot;_blank&quot;&gt;http://gogs.info/wiki/debian/maildrop&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386623/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/06/maildroprc-auto-create-and-auto-subscrib/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/06/maildroprc-auto-create-and-auto-subscrib/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>roundcube有个bug，没有自动订阅邮箱的4个folder（Sent Trash Drafts Junk），于是写了一个插件，放在login_after回调里： public function login_after($data){ &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; $rcmail = rcmail::get_instance(); &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $default_imap_folders = $rcmail-&amp;#62;config-&amp;#62;get(&amp;#39;default_imap_folders&amp;#39;); &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $rcmail-&amp;#62;imap_connect(); &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(is_object($rcmail-&amp;#62;imap)){ &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;#160; $a_mailboxes = $rcmail-&amp;#62;imap-&amp;#62;list_unsubscribed(); &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; $need_subscribed = array_intersect($default_imap_folders, $a_mailboxes); &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; $need_subscribed = $default_imap_folders; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; if(count($need_subscribed)&amp;#62;0){ &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; foreach($need_subscribed as $folder){ &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; [...]&lt;img src=&quot;http://www1.feedsky.com/t1/589386623/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/06/maildroprc-auto-create-and-auto-subscrib/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>开发</category><category>roundcube</category><category>maildroprc</category><category>maildrop</category><pubDate>Mon, 20 Jun 2011 19:25:17 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/06/maildroprc-auto-create-and-auto-subscrib/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=188</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/06/maildroprc-auto-create-and-auto-subscrib/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386623/5760062</fs:itemid></item><item><title>postfix实践记录</title><link>http://xiabaibai.net/2011/06/postfix-practise/</link><content:encoded>&lt;p&gt;最近在搞postfix. 邮局应该是互联网最早的一代应用，发展至今二三十年，软件和架构都非常成熟，搭建和配置也相当灵活，本文记录一下实践过程中的点滴。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配额管理&lt;br /&gt;
	&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用户的配额都是放在数据库中，而邮件系统获取配额记录有两种方式。&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(178, 34, 34);&quot;&gt;方式1：通过postfix的virtual_mailbox_limit_maps指定&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql/mysql-virtual-quota.cf&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;内容：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;hosts = IP&amp;nbsp; &lt;br /&gt;
		user = DB_USER&amp;nbsp; &lt;br /&gt;
		password = DB_PASS&amp;nbsp; &lt;br /&gt;
		dbname = DB_NAME&amp;nbsp; &lt;br /&gt;
		table = mail_users&amp;nbsp; &lt;br /&gt;
		query = select quota from mail_users where email=&amp;#39;%s&amp;#39;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;		&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(178, 34, 34);&quot;&gt;方式2：通过courier-authlib+courier-maildrop指定。&lt;/span&gt;其中authlib用于认证，maildrop用于投递，由postfix调用&lt;/p&gt;
&lt;p&gt;编辑courier/authlib/etc/authlib/authmysqlrc：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;MYSQL_SERVER&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql.example.com&lt;br /&gt;
		MYSQL_USERNAME&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; admin&lt;br /&gt;
		MYSQL_PASSWORD&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; admin&lt;br /&gt;
		MYSQL_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
		MYSQL_OPT&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
		MYSQL_DATABASE&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql&lt;br /&gt;
		MYSQL_USER_TABLE&amp;nbsp;&amp;nbsp;&amp;nbsp; passwd&lt;br /&gt;
		MYSQL_CRYPT_PWFIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; crypt&lt;br /&gt;
		&lt;strong&gt;MYSQL_QUOTA_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; quota&lt;/strong&gt;&lt;br /&gt;
		MYSQL_UID_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uid&lt;br /&gt;
		MYSQL_GID_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; gid&lt;br /&gt;
		MYSQL_LOGIN_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; id&lt;br /&gt;
		MYSQL_HOME_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; home&lt;br /&gt;
		MYSQL_NAME_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp; name&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;各个字段分别与数据库中的相应项对应，认证程序即通过这些字段构造sql向db查询。&lt;br /&gt;
	在每个邮箱Maildir目录下面，会有一个maildirsize文件，用于存放配额。实际测试证明，当配额调整后，maildirsize不会立刻被重写，只有当用户收发邮件时，触发maildrop程序，才会更新maildirsize.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 205);&quot;&gt;两种方式有何优劣，待研究。&lt;br /&gt;
	&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;限速&lt;br /&gt;
	&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;即限制用户单位时间内的邮件发送量，也是两种方式，均采用第三方软件。&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(178, 34, 34);&quot;&gt;方式1：policyd. 强大的反垃圾邮件过滤器。&lt;br /&gt;
	&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;安装policyd（本人用的v1.9），在配置文档中设定端口（设定的是10032），导入sql建好数据库表，并指定在postfix的main.cf中挂接policyd插件：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10032 permit&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;也可以加到smtpd_recipient_restrictions中，区别是smtpd_end_of_data_restrictions是在收到客户端END-OF-DATA命令后调用过滤器（也就是从客户端收完待发的邮件数据后），而smtpd_recipient_restrictions是在收到RCPT TO命令后调用，SMTP交互的过程中，RCPT TO在END-OF-DATA之前，放在END-OF-DATA会消耗更多的带宽和处理时间。这里放在smtpd_end_of_data_restrictions后，我想应该是考虑通过获取更多的邮件头以备调用policyd更复杂的过滤规则。&lt;/p&gt;
&lt;p&gt;在policyd的配置中，关于收发限制是以下参数（部分）：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;# &amp;#8212;- SENDER THROTTLE &amp;#8212;-&lt;br /&gt;
		SENDERTHROTTLE=1 是否开启发送限制&lt;br /&gt;
		SENDERMSGLIMIT=150 单位时间内，用户能发送的邮件数量上限&lt;br /&gt;
		SENDERQUOTALIMIT=250000000 单位时间内，用户发送发送邮件的总大小上限&lt;br /&gt;
		SENDERRCPTLIMIT=86400 单位时间内，用户发送邮件的接受者的数量上限&lt;br /&gt;
		SENDERMSGSIZE=1024000000 能发送的最大邮件字节数&lt;br /&gt;
		SENDERTIMELIMIT=24h 单位时间&lt;/p&gt;
&lt;p&gt;		# &amp;#8212;- RECIPIENT THROTTLE &amp;#8212;-&lt;br /&gt;
		RECIPIENTTHROTTLE=0 是否开启接受限制&lt;br /&gt;
		RECIPIENTMSGLIMIT=100 单位时间内，用户能接收的邮件数量上限&lt;br /&gt;
		RECIPIENTTIMELIMIT=24h 单位时间&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这些参数基本上是初始设置，也即在创建邮箱账户的时候所insert到db中的值。我们可以通过编程式的手段来直接操作db，对不同邮箱账户或域进行动态调整，非常灵活。&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(178, 34, 34);&quot;&gt;方式2：milter-limit&lt;br /&gt;
	&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;安装milter-limit，在postfix的main.cf中挂接：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;smtpd_milters = unix:/var/run/milter/milter-limit.socket&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;配置是通过makemap生成：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;makemap hash /etc/mail/access.db &amp;lt; /etc/mail/acces&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对于管理系统来说，由于发送限制的配额是存放于db中，这种就需要一个定时程序，先从db查询并生成/etc/mail/acces，然后通过makemap生成hash，再重启milter-limit：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/usr/local/etc/rc.d/milter-limit.sh start restart&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386624/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/06/postfix-practise/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/06/postfix-practise/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>最近在搞postfix. 邮局应该是互联网最早的一代应用，发展至今二三十年，软件和架构都非常成熟，搭建和配置也相当灵活，本文记录一下实践过程中的点滴。 配额管理 用户的配额都是放在数据库中，而邮件系统获取配额记录有两种方式。 方式1：通过postfix的virtual_mailbox_limit_maps指定 &amp;#160;virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql/mysql-virtual-quota.cf&amp;#160; 内容： hosts = IP&amp;#160; user = DB_USER&amp;#160; password = DB_PASS&amp;#160; dbname = DB_NAME&amp;#160; table = mail_users&amp;#160; query = select quota from mail_users where email=&amp;#39;%s&amp;#39;&amp;#160; 方式2：通过courier-authlib+courier-maildrop指定。其中authlib用于认证，maildrop用于投递，由postfix调用 编辑courier/authlib/etc/authlib/authmysqlrc： MYSQL_SERVER&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; mysql.example.com MYSQL_USERNAME&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; admin MYSQL_PASSWORD&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; admin MYSQL_PORT&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 0 MYSQL_OPT&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; 0 MYSQL_DATABASE&amp;#160;&amp;#160;&amp;#160; &amp;#160;&amp;#160;&amp;#160; mysql MYSQL_USER_TABLE&amp;#160;&amp;#160;&amp;#160; passwd MYSQL_CRYPT_PWFIELD&amp;#160;&amp;#160;&amp;#160; [...]&lt;img src=&quot;http://www1.feedsky.com/t1/589386624/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/06/postfix-practise/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>开发</category><category>postfix</category><pubDate>Thu, 09 Jun 2011 12:51:19 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/06/postfix-practise/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=182</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/06/postfix-practise/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386624/5760062</fs:itemid></item><item><title>php cli模式执行脚本，报Extension ‘**.php’ not present.的问题解决办法</title><link>http://xiabaibai.net/2011/06/php-cli-extension-php-not-present/</link><content:encoded>&lt;p&gt;以php cli模式执行脚本a.php，通常需要在脚本a.php首行加入以下代码：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;#!/usr/local/php/bin/php&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这样指定了php路径，即可直接将php脚本当成可执行文件调用：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;chmod +x /usr/local/script/a.php&lt;br /&gt;
		/usr/local/script/a.php&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;等效于/usr/local/php/bin/php /usr/local/script/a.php&lt;/p&gt;
&lt;p&gt;今天发现有些脚本无法运行，报错&amp;ldquo;Extension &amp;#39;**.php&amp;#39; not present.&amp;rdquo;：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/06/20110602_1.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-170&quot; height=&quot;17&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/06/20110602_1.png&quot; title=&quot;20110602_1&quot; width=&quot;462&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;检查php所有配置均正常，首行的路径也指定。&lt;/p&gt;
&lt;p&gt;google这个问题，发现也有人遇到，不过是在放到crontab中的时候执行不了。&lt;/p&gt;
&lt;p&gt;在这个帖子中，&lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=861410&quot; target=&quot;_blank&quot;&gt;http://ubuntuforums.org/showthread.php?t=861410&lt;/a&gt;，有人提到可能是win换行符导致：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/06/20110602_3.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-172&quot; height=&quot;149&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/06/20110602_3.png&quot; title=&quot;20110602_3&quot; width=&quot;613&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;打开我的代码一看，确实多了^M，这个win下的&amp;quot;\r&amp;quot;字符：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2011/06/20110602_2.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-171&quot; height=&quot;183&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2011/06/20110602_2.png&quot; title=&quot;20110602_2&quot; width=&quot;534&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;去掉首行的这个&amp;quot;\r&amp;quot;，保存后即可正常执行。&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386625/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/06/php-cli-extension-php-not-present/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2011/06/php-cli-extension-php-not-present/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>以php cli模式执行脚本a.php，通常需要在脚本a.php首行加入以下代码： #!/usr/local/php/bin/php 这样指定了php路径，即可直接将php脚本当成可执行文件调用： chmod +x /usr/local/script/a.php /usr/local/script/a.php 等效于/usr/local/php/bin/php /usr/local/script/a.php 今天发现有些脚本无法运行，报错&amp;#8220;Extension &amp;#39;**.php&amp;#39; not present.&amp;#8221;： 检查php所有配置均正常，首行的路径也指定。 google这个问题，发现也有人遇到，不过是在放到crontab中的时候执行不了。 在这个帖子中，http://ubuntuforums.org/showthread.php?t=861410，有人提到可能是win换行符导致： 打开我的代码一看，确实多了^M，这个win下的&amp;#34;\r&amp;#34;字符： 去掉首行的这个&amp;#34;\r&amp;#34;，保存后即可正常执行。&lt;img src=&quot;http://www1.feedsky.com/t1/589386625/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2011/06/php-cli-extension-php-not-present/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>开发</category><category>php</category><pubDate>Thu, 02 Jun 2011 16:52:36 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2011/06/php-cli-extension-php-not-present/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=169</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2011/06/php-cli-extension-php-not-present/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386625/5760062</fs:itemid></item><item><title>24完结</title><link>http://xiabaibai.net/2010/05/24-season8-en/</link><content:encoded>&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;《24》终于完结了。虽然第八季的最后两集刚下完还没看，但是还是想提前感叹一下。8年，8季，一部最好看的电视剧在今天成为历史。它是我最早开始接触的美剧（貌似很多人最早看的是friends吧），陪我度过了5个年头，192个小时。英勇无比的鲍小强简直就是神话，他经历的险境给我们这些热血青年灌注了无比强大的个人英雄主义。即使现在好看的美剧那么多，还经常下载以后来不及看，但24仍然是每周第一时间收割的。水木美剧版上，已经有许多剧友发表感慨，缅怀一路看过的24。其实很多季的剧情已经记不得了，很多人物也都已模糊，但是那种让人绷紧神经的感觉仿佛已经深入脑中，滴答滴答的4声计时亦然余音绕梁。萨瑟兰饰演的鲍尔还是那么年轻、有气势（以前一直纳闷导演居然找了这么矮的一个演员演这么牛逼的特工），感觉他以后要是拍其他电影恐怕都难。24足以载入史册，与friends、越狱、lost等一并为广大美剧爱好者所称道。留此一文，谨以纪念。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://xiabaibai.net/wp-content/uploads/2010/05/24.jpg&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-161&quot; title=&quot;24&quot; src=&quot;http://xiabaibai.net/wp-content/uploads/2010/05/24.jpg&quot; alt=&quot;&quot; width=&quot;293&quot; height=&quot;391&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386626/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2010/05/24-season8-en/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2010/05/24-season8-en/feed/</wfw:commentRss><slash:comments>5</slash:comments><description>《24》终于完结了。虽然第八季的最后两集刚下完还没看，但是还是想提前感叹一下。8年，8季，一部最好看的电视剧在今天成为历史。它是我最早开始接触的美剧（貌似很多人最早看的是friends吧），陪我度过了5个年头，192个小时。英勇无比的鲍小强简直就是神话，他经历的险境给我们这些热血青年灌注了无比强大的个人英雄主义。即使现在好看的美剧那么多，还经常下载以后来不及看，但24仍然是每周第一时间收割的。水木美剧版上，已经有许多剧友发表感慨，缅怀一路看过的24。其实很多季的剧情已经记不得了，很多人物也都已模糊，但是那种让人绷紧神经的感觉仿佛已经深入脑中，滴答滴答的4声计时亦然余音绕梁。萨瑟兰饰演的鲍尔还是那么年轻、有气势（以前一直纳闷导演居然找了这么矮的一个演员演这么牛逼的特工），感觉他以后要是拍其他电影恐怕都难。24足以载入史册，与friends、越狱、lost等一并为广大美剧爱好者所称道。留此一文，谨以纪念。&lt;img src=&quot;http://www1.feedsky.com/t1/589386626/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2010/05/24-season8-en/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>杰克鲍尔</category><category>24</category><category>美剧</category><category>未分类</category><category>鲍尔</category><pubDate>Tue, 25 May 2010 23:11:00 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2010/05/24-season8-en/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=162</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2010/05/24-season8-en/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386626/5760062</fs:itemid></item><item><title>BMW之悦广告欣赏：缔造乐趣 分享感动</title><link>http://xiabaibai.net/2010/04/bmw-advertise/</link><content:encoded>&lt;p&gt;我们制造汽车&lt;br /&gt;
更创造无限激情&lt;br /&gt;
让灵感天马行空&lt;br /&gt;
让梦想化作现实&lt;br /&gt;
我们以创新定义未来&lt;br /&gt;
赋予科技情感&lt;br /&gt;
让每一次的体验&lt;br /&gt;
都带来心灵的感动&lt;br /&gt;
BMW之悦&lt;br /&gt;
缔造乐趣 分享感动&lt;/p&gt;
&lt;p&gt;BMW的新广告创意，每一句的用词都那么完美，聆听即是享受。&lt;/p&gt;
&lt;p&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;480&quot; height=&quot;400&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;align&quot; value=&quot;middle&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://player.youku.com/player.php/sid/XMTYzNTY0NzQ0/v.swf&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;480&quot; height=&quot;400&quot; src=&quot;http://player.youku.com/player.php/sid/XMTYzNTY0NzQ0/v.swf&quot; quality=&quot;high&quot; align=&quot;middle&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/589386627/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2010/04/bmw-advertise/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://xiabaibai.net/2010/04/bmw-advertise/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>我们制造汽车 更创造无限激情 让灵感天马行空 让梦想化作现实 我们以创新定义未来 赋予科技情感 让每一次的体验 都带来心灵的感动 BMW之悦 缔造乐趣 分享感动 BMW的新广告创意，每一句的用词都那么完美，聆听即是享受。&lt;img src=&quot;http://www1.feedsky.com/t1/589386627/xiabaibai/feedsky/s.gif?r=http://xiabaibai.net/2010/04/bmw-advertise/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>广告</category><category>BMW之悦</category><category>未分类</category><category>缔造乐趣 分享感动</category><pubDate>Thu, 22 Apr 2010 21:06:17 +0800</pubDate><author>威廉</author><comments>http://xiabaibai.net/2010/04/bmw-advertise/#comments</comments><guid isPermaLink="false">http://xiabaibai.net/?p=135</guid><dc:creator>威廉</dc:creator><fs:srclink>http://xiabaibai.net/2010/04/bmw-advertise/</fs:srclink><fs:srcfeed>http://xiabaibai.net/feed/</fs:srcfeed><fs:itemid>feedsky/xiabaibai/~7650938/589386627/5760062</fs:itemid></item></channel></rss>
