<?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>Geoinformatics &#187; PHP</title>
	<atom:link href="http://www.geoinformatics.cn/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geoinformatics.cn</link>
	<description>Arts and Sciences move me on ...</description>
	<lastBuildDate>Fri, 13 Jan 2012 10:29:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Ancient Chinese Buddhist Temples</title>
		<link>http://www.geoinformatics.cn/2007/12/ancient-chinese-buddhist-temples/</link>
		<comments>http://www.geoinformatics.cn/2007/12/ancient-chinese-buddhist-temples/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 08:50:36 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[历史研究]]></category>
		<category><![CDATA[MapServer]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[历史地理]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/20071221557.html</guid>
		<description><![CDATA[  关于时空结合，自己做了一个小小的例子，下载了CHGIS的数据，然后研究了一下如何建立时空一体化的模型，并将其可视化。现在仅仅是beta版，还有很多不足，希望能和大家多多探讨，实例请见如下网址： /temples/index.html]]></description>
			<content:encoded><![CDATA[<p> <a href="/temples/index.html" target="_blank" title="guitemples20071221.jpg" rel="shadowbox[sbpost-557];player=img;"><img src="/wp-content/uploads//guitemples20071221.jpg" alt="guitemples20071221.jpg" /></a></p>
<p>关于时空结合，自己做了一个小小的例子，下载了CHGIS的数据，然后研究了一下如何建立时空一体化的模型，并将其可视化。现在仅仅是beta版，还有很多不足，希望能和大家多多探讨，实例请见如下网址：</p>
<p><a href="/temples/index.html" target="_blank">/temples/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2007/12/ancient-chinese-buddhist-temples/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用php解决一个IP对应多个域名的问题</title>
		<link>http://www.geoinformatics.cn/2007/06/%e7%94%a8php%e8%a7%a3%e5%86%b3%e4%b8%80%e4%b8%aaip%e5%af%b9%e5%ba%94%e5%a4%9a%e4%b8%aa%e5%9f%9f%e5%90%8d%e7%9a%84%e9%97%ae%e9%a2%98/</link>
		<comments>http://www.geoinformatics.cn/2007/06/%e7%94%a8php%e8%a7%a3%e5%86%b3%e4%b8%80%e4%b8%aaip%e5%af%b9%e5%ba%94%e5%a4%9a%e4%b8%aa%e5%9f%9f%e5%90%8d%e7%9a%84%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 01:47:44 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/20070610450.html</guid>
		<description><![CDATA[$domain_net=&#8221;abc.com&#8221;; $dot_net_url=&#8221;bbs/&#8221;; $dot_com_url=&#8221;flash&#8221;; if(($HTTP_HOST==&#8221;$domain_net&#8221;)or($HTTP_HOST==&#8221;www.$domain_net&#8221;)) { Header(&#8220;Location: $dot_net_url&#8221;); } else { Header(&#8220;Location: $dot_com_url&#8221;); } ?>]]></description>
			<content:encoded><![CDATA[<p>$domain_net=&#8221;abc.com&#8221;;<br />
$dot_net_url=&#8221;bbs/&#8221;;<br />
$dot_com_url=&#8221;flash&#8221;;<br />
if(($HTTP_HOST==&#8221;$domain_net&#8221;)or($HTTP_HOST==&#8221;www.$domain_net&#8221;))<br />
{<br />
Header(&#8220;Location: $dot_net_url&#8221;);<br />
}<br />
else<br />
{<br />
Header(&#8220;Location: $dot_com_url&#8221;);<br />
}<br />
?></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2007/06/%e7%94%a8php%e8%a7%a3%e5%86%b3%e4%b8%80%e4%b8%aaip%e5%af%b9%e5%ba%94%e5%a4%9a%e4%b8%aa%e5%9f%9f%e5%90%8d%e7%9a%84%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Phoogle Map V2.1 released</title>
		<link>http://www.geoinformatics.cn/2007/01/phoogle-map-v21-released/</link>
		<comments>http://www.geoinformatics.cn/2007/01/phoogle-map-v21-released/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 16:20:06 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/google/20070118408.html</guid>
		<description><![CDATA[Phoogle Maps (v2.01) includes International Address Support. * 1 Address (Outside United States) * Multiple Addresses * Displaying Valid/Invalid Points * Customizing the Info Window Phoogle Maps PHP with Google Maps and Yahoo Geocoder &#8220;Phoogle Maps (pronounced like Foogle Maps) is a PHP class that integrates itself with the Google Maps API and with the [...]]]></description>
			<content:encoded><![CDATA[<p>Phoogle Maps (v2.01) includes International Address Support.<img align="right" alt="phooglemapsphp.JPG" id="image407" title="phooglemapsphp.JPG" src="/wp-content/uploads/phooglemapsphp.JPG" /></p>
<p>* 1 Address (Outside United States)<br />
* Multiple Addresses<br />
* Displaying Valid/Invalid Points<br />
* Customizing the Info Window<br />
Phoogle Maps PHP with Google Maps and Yahoo Geocoder<br />
&#8220;Phoogle Maps (pronounced like Foogle Maps) is a PHP class that integrates itself with the Google Maps API and with the Yahoo Geocoding API to make an easy to use interface to display Google Maps on your site.&#8221;<br />
<a target="_blank" href="http://mapperz.blogspot.com/">Mapperz</a> Note to Users: Check the Yahoo Maps API Terms and Conditions before investing time on this. There maybe infringement using the Yahoo Geocoder with Google Maps.<br />
Mapperz Map GIS News Blog for UK, Europe and the World.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2007/01/phoogle-map-v21-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP创始人Rasmus Lerdorf欣赏的7套PHP产品</title>
		<link>http://www.geoinformatics.cn/2006/11/php%e5%88%9b%e5%a7%8b%e4%ba%barasmus-lerdorf%e6%ac%a3%e8%b5%8f%e7%9a%847%e5%a5%97php%e4%ba%a7%e5%93%81/</link>
		<comments>http://www.geoinformatics.cn/2006/11/php%e5%88%9b%e5%a7%8b%e4%ba%barasmus-lerdorf%e6%ac%a3%e8%b5%8f%e7%9a%847%e5%a5%97php%e4%ba%a7%e5%93%81/#comments</comments>
		<pubDate>Tue, 28 Nov 2006 02:24:22 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/20061127347.html</guid>
		<description><![CDATA[Rasmus Lerdor是PHP语言的创始人。在2000年以前，他有相当部分的时间都在加拿大多伦多地区学习、工作。他提到了他所欣赏的7套与PHP相关的产品。作为PHP语言的创始人，他对PHP产品的讨论自然应该受到重视： Moodle: 一套面向教育界的课程管理系统。 Sahana：一套灾难管理系统。曾获人道主义奖项、并获得过SourceForge“本月之星”（Project of the Month，此处意译）称号、相当受关注的产品，但我没关注过。 Gallery：一套照片库系统。本站使用了这套系统作为本站的照片库程序。我目前对这套产品唯一明显不满的地方在于：它的某些功能过于强大了，另外，语言编码支持方面仍有潜在的bug。 Serendipity：一套网志系统。 Drupal：一套内容管理系统。 Fudforum：一套论坛系统。 APCAPC：一个关于缓存的PHP扩展。]]></description>
			<content:encoded><![CDATA[<p>Rasmus Lerdor是PHP语言的创始人。在2000年以前，他有相当部分的时间都在加拿大多伦多地区学习、工作。他提到了他所欣赏的7套与PHP相关的产品。作为PHP语言的创始人，他对PHP产品的讨论自然应该受到重视：</p>
<ol>
<li>Moodle: 一套面向教育界的课程管理系统。</li>
<li>Sahana：一套灾难管理系统。曾获人道主义奖项、并获得过SourceForge“本月之星”（Project of the Month，此处意译）称号、相当受关注的产品，但我没关注过。</li>
<li>Gallery：一套照片库系统。本站使用了这套系统作为本站的照片库程序。我目前对这套产品唯一明显不满的地方在于：它的某些功能过于强大了，另外，语言编码支持方面仍有潜在的bug。</li>
<li>Serendipity：一套网志系统。</li>
<li>Drupal：一套内容管理系统。</li>
<li>Fudforum：一套论坛系统。</li>
<li>APCAPC：一个关于缓存的PHP扩展。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/11/php%e5%88%9b%e5%a7%8b%e4%ba%barasmus-lerdorf%e6%ac%a3%e8%b5%8f%e7%9a%847%e5%a5%97php%e4%ba%a7%e5%93%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>动态语言</title>
		<link>http://www.geoinformatics.cn/2006/11/%e5%8a%a8%e6%80%81%e8%af%ad%e8%a8%80/</link>
		<comments>http://www.geoinformatics.cn/2006/11/%e5%8a%a8%e6%80%81%e8%af%ad%e8%a8%80/#comments</comments>
		<pubDate>Sun, 19 Nov 2006 23:26:01 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/20061119343.html</guid>
		<description><![CDATA[可以简单的理解为直接被解释执行的语言称为动态语言; 而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。 当前静态语言有:Java、C/C++、C#、Delphi、VB等。 动态语言有:ASP、PHP、CGI、lisp、Perl、python,Smalltalk、Ruby等。 Perl语言过时了，虽然还有一些公司在使用，但早已不是主流。python、Ruby最近几年开始火起来的动态语言，但不被看好，虽然是很优秀的语言，但是优秀并不帶表会成为主流mainstream。 未来动态语言并不会取代静态语言。应该是动态语言与静态语言互相辅助，各在其擅长的方面发挥作用。比如多线程，目前的动态语言支持都不如静态语言的好，很多还不支持。 对于语言的选择，一般性的应用，完全可以采用动态语言完成，也可以采用静态语言，这要看撑握语言的人或是需求而决定。更为灵活，更容易扩展及复用的方式是采用动态语言+静态语言的方式。前台功能采用动态语言实现，后台服务采用静态语言实现，充分利用各自的优势。动态语言必将大行其道，但是不是独行，而将与静态语言相辅相成。 php 动态语言之精典 对于php语言，笔者的个人感情较浓，从第一次接触它就被其简单、灵活、功能之强大所征服。更快的处理效率，迅速的部署及PHP的跨平台的特性让其应用更为广泛，相信俱有跨平台特性的动态语言中没有任何一个语言能及php语言的普及率高。很多大的网站使用着PHP，历史证明，它是一个经得起考验的动态语言。另外，php的开源环境也相当出色。世界各地数以万计的程序员，采用PHP编写程序。你可以从PHP相关的网站、社区等找到各类优秀的开源程序代码。 最近IBM、Oracle 正尝试把PHP 应用到SOA 之中，再一次证明了PHP的优秀。虽然PHP存在着维护困难，复用性低等问题，但这些并不能影响其最终成为主流的动态语言。前不久IBM还基于Apache Geronimo项目推出了为it WebSphere Application Server Community Edition开发的PHP集成工具集。该工具集能让开发人员在SOA中开发服务时使用PHP和Java。zend也推出了php的开发框架，这些技术将帮助软件公司创建企业级PHP应用。　PHP会变得更加广泛，从当前网站技术上的胜行，到企业级WEB应用，php必将成为最有竞争力的动态语言。 在java的基础上产生新的语言 java语言的发展是有目共睹的，早已成为时下最为主流的开发语言。JRuby也在大家的期待中展现雏形。在Lang.net 2006 会议上, Sun公司宣布将积极参与让JVM支持动态语言的开发项目.将会增加一个新的JVM 指令——invokedynamic，用来设计对动态语言对象的支持。然而主仅仅是一个开始。由于SUN及IBM公司的推动，反微软企业的支持，还有企业的认可，基于java语言所产生的动态语言也必将会成为动态语言家族中有力的竞争对手。 .net的动态语言 微软的动态语言用的人最多的应该是asp，现在发展到ASP.NET。看微软在开发语言方面的发展，他们一定不会放弃这块肥肉，并会加大投入力度，与其它的动态语言提供商火拼到底。只要是有利可图的地方，没有微软不想伸脚的，更何况这是一块大肥肉呢。 微软的动态语言列为最可能成为主流动态语言的原因是因为其Windows的平台无所不在。这是无法否认的。微软势比处投入重手，增强竞争能力。以微软的人力、财力，想不分给微软一块蛋糕是不可能的。有钱就是好，投入大笔的资金，什么都可以做。]]></description>
			<content:encoded><![CDATA[<p>可以简单的理解为直接被解释执行的语言称为动态语言; 而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。</p>
<ul>
<li>当前静态语言有:Java、C/C++、C#、Delphi、VB等。</li>
<li>动态语言有:ASP、PHP、CGI、lisp、Perl、python,Smalltalk、Ruby等。</li>
</ul>
<p>Perl语言过时了，虽然还有一些公司在使用，但早已不是主流。python、Ruby最近几年开始火起来的动态语言，但不被看好，虽然是很优秀的语言，但是优秀并不帶表会成为主流mainstream。<br />
未来动态语言并不会取代静态语言。应该是动态语言与静态语言互相辅助，各在其擅长的方面发挥作用。比如多线程，目前的动态语言支持都不如静态语言的好，很多还不支持。<br />
对于语言的选择，一般性的应用，完全可以采用动态语言完成，也可以采用静态语言，这要看撑握语言的人或是需求而决定。更为灵活，更容易扩展及复用的方式是采用动态语言+静态语言的方式。前台功能采用动态语言实现，后台服务采用静态语言实现，充分利用各自的优势。<strong>动态语言必将大行其道，但是不是独行，而将与静态语言相辅相成。</strong></p>
<p><strong>php 动态语言之精典</strong><br />
对于php语言，笔者的个人感情较浓，从第一次接触它就被其简单、灵活、功能之强大所征服。更快的处理效率，迅速的部署及PHP的跨平台的特性让其应用更为广泛，相信俱有跨平台特性的动态语言中没有任何一个语言能及php语言的普及率高。很多大的网站使用着PHP，历史证明，它是一个经得起考验的动态语言。另外，php的开源环境也相当出色。世界各地数以万计的程序员，采用PHP编写程序。你可以从PHP相关的网站、社区等找到各类优秀的开源程序代码。<span id="more-343"></span><br />
最近IBM、Oracle 正尝试把PHP 应用到SOA 之中，再一次证明了PHP的优秀。虽然PHP存在着维护困难，复用性低等问题，但这些并不能影响其最终成为主流的动态语言。前不久IBM还基于Apache Geronimo项目推出了为it WebSphere Application Server Community Edition开发的PHP集成工具集。该工具集能让开发人员在SOA中开发服务时使用PHP和Java。zend也推出了php的开发框架，这些技术将帮助软件公司创建企业级PHP应用。　PHP会变得更加广泛，从当前网站技术上的胜行，到企业级WEB应用，php必将成为最有竞争力的动态语言。<br />
<strong>在java的基础上产生新的语言</strong><br />
java语言的发展是有目共睹的，早已成为时下最为主流的开发语言。JRuby也在大家的期待中展现雏形。在Lang.net 2006 会议上, Sun公司宣布将积极参与让JVM支持动态语言的开发项目.将会增加一个新的JVM 指令——invokedynamic，用来设计对动态语言对象的支持。然而主仅仅是一个开始。由于SUN及IBM公司的推动，反微软企业的支持，还有企业的认可，基于java语言所产生的动态语言也必将会成为动态语言家族中有力的竞争对手。<br />
<strong>.net的动态语言</strong><br />
微软的动态语言用的人最多的应该是asp，现在发展到ASP.NET。看微软在开发语言方面的发展，他们一定不会放弃这块肥肉，并会加大投入力度，与其它的动态语言提供商火拼到底。只要是有利可图的地方，没有微软不想伸脚的，更何况这是一块大肥肉呢。<br />
微软的动态语言列为最可能成为主流动态语言的原因是因为其Windows的平台无所不在。这是无法否认的。微软势比处投入重手，增强竞争能力。以微软的人力、财力，想不分给微软一块蛋糕是不可能的。有钱就是好，投入大笔的资金，什么都可以做。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/11/%e5%8a%a8%e6%80%81%e8%af%ad%e8%a8%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geoinformatics 2007的网站即将推出</title>
		<link>http://www.geoinformatics.cn/2006/11/geoinformatics-2007%e7%9a%84%e7%bd%91%e7%ab%99%e5%8d%b3%e5%b0%86%e6%8e%a8%e5%87%ba/</link>
		<comments>http://www.geoinformatics.cn/2006/11/geoinformatics-2007%e7%9a%84%e7%bd%91%e7%ab%99%e5%8d%b3%e5%b0%86%e6%8e%a8%e5%87%ba/#comments</comments>
		<pubDate>Mon, 06 Nov 2006 01:53:38 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/opensource/20061105320.html</guid>
		<description><![CDATA[老李在昨晚超图走进南大的宣讲会上，宣布了CPGIS举办的Geoinformatics 2007将在南大举行，并且发表的论文将被IE检索。同时老李讲了，即将推出网站。我相信，这又是我们的一个机遇。 我是一个对网站偏执的人，记得初中的时候就创办了自己的网站，当然当时仅仅是用frontpage来做的，而且很简单，基本都是html语句。后来用了opera提供的blog，以至再后来接触了php，开源等。就对wordpress，drupal以及一些CMS产生了兴趣。最近老李说做关于Geoinformatics 2007的网站，我主力推荐使用Joomla！我非常欣赏Joomla的广告语：because open source matters。我们越来越多的把注意里投给开源，开源软件确实也不负众望，在很多领域，包括CMS，也是同样非常的matters，呵呵。       以下简单介绍一下Joomla！，希望对大家都有所启发和帮助，特别是如何使用CMS在开源环境下构建网络平台方面： Joomla!是什么？ Joomla!是一套在国外相当知名的内容管理系统（Content Management System, CMS），它属于Portal（企业入口网站）类型，顾名思义，就是比较适合作为商业类型的网站程序。一般人对这类型的内容管理系统可能会有以下的别名来称呼：Joomla!是使用PHP语言加上MySQL数据库所开发的软件系统，可以在Linux、Windows、MacOSX等各种不同的平台上执行。目前是由Open Source Matters (www.opensourcematters.org)这个开放源码组织进行开发与支持，这个组织的成员来自全世界各地，小组成员约有150人，包含了开发者、设计者、系统管理者、文件撰写者，以及超过2万名的参与会员。 Joomla!的优秀特点 当然每个知名的开源码程序都会有其吸引人的优点，反之当然会有缺点。以下整理出在网络上来自使用者对Joomla!程序的喜好重点： 先进的网站技术的运用： Joomla!应用了非常多的网站进步的新技术，像是「网站快取技术」可以加速网站的反应与效能。「RSS新闻联播与新闻读取」是最近十分热门的网站新闻读取的技术，在部落格程序中（Blog）中十分常见。「SEO搜寻引擎最佳化」这个是目前所有网站必备的技术之一，这个功能主要是让搜寻引擎更容易的浏览您网站上的数据，让更多人在搜寻引擎上找到您的网站，相当于为自己的网站带来更多的人潮和商机。 庞大的附加套件及商机：来自全球上千种不同网站应用的附加套件及美工设计布景，都是以这套系统为基础而开发。使用者可以很方便的安装上这些附加套件，如同在桌上计算机中的Windows操作系统中，安装新的软件一般。开发社群总是发挥无止尽的创意，不断的开发符合使用社群需求的产品。Joomla!的商用套件市场目前也有许多价廉物美的软件及美工设计布景主题。 简单且丰富的操作接口：Joomla!的操作接口除了美观之外，也花了很多心力在设计这些接口的简易操作性。虽然初次使用者，需要花一点时间学习一下操作的方式，才能运用自如。但相信学会使用之后，这是很值得的。另外可搭配的多种所视即所得编辑程序，更可让对网页设计语言不熟悉的管理者，很简易的就可以管理和编辑网站上的文章。 高度的客制和开发的弹性：对于网站程序开发者和美工设计者，Joomla!保留了最大的客制化弹性和整合能力。全世界的网站相关开发人员，都十分关注与推荐这套系统。是由于这套系统不断在强大能力与客制弹性之间找寻平衡点，受到许多知名厂商的使用。 全世界超过一万个网站的使用见证：自从Mambo 1.0版本以后，全世界有超过一万个网站使用这个系统作为架站用的核心系统，其中不乏大公司的网站，例如最有名的保时捷网站（巴西）、三菱公司全球网站、麦克杰克森的官方网站等等，。 根据Joomla!官方的统计，2006年3月份在官方的社群上已有超过26000的注册会员。代表目前对于这个系统的重视与积极参与的人是很多的。藉由使用社群和开发社群的良好互动，充分发挥了开源码程序的开发正向回馈，目前有愈来愈多优秀的美工设计及程序研发人才投入开发的行列。 官方核心开发小组目前有22名，都是来自全世界的开源码程序精英。其它分有以下的小组，总人数超过100人： 文件小组：负责文件的撰写。 翻译小组：来自全世界40多个语系的负责小组，负责翻译语系及在当地推广。 网站管理小组：管理官方网站的上稿、程序写作与论坛的维护。 公关小组：参与全世界各地（大部份在欧美）的开源码活动，推广Joomla!程序。 Joomla!名称的由来 这个名称来自非洲斯瓦希里语的方言&#8221;Jumla&#8221;，意思是&#8221;一起&#8221;（All together）或&#8221;as a whole&#8221;. 可以使用非常多的外挂功能组件（上千多种），让网站上的应用更丰富。另外Joomla!有很独特的布景样版系统，可以让你设计与众不同的网站外观。这也是Joomla!在这个市场最为人津津乐道的一个优点。 Joomla!的历史 Mambo软件最早在2001年五月份由澳洲Miro公司所开发，由于Miro公司有商业化的考虑，原先发布并采用GNU/GPL授权的软件版本，在版本3.0.5之后就不再支持。 后来由Robert Castley（现已离开核心小组）接手后续的开发原始码版本，并招募新的志愿者。Mambo发展至4.5.1版本之后，整合了许多新的网站技术，以及新的操作接口，在2004年获得Linux User &#038; Developer Award 2004的「Best Linux or Open Source Software」奖项，自此大放异彩从此，在开源码的内容管理系统中占有一席之地，受到使用社群的高度重视。 Mambo 2005年8月后由于原先的所有人Miro公司，希望能深入参与开发工作及决定未来的发展方向，引起和核心开发小组之间的意见不合，前开发小组领导人Eddie Andrew带领几乎八成的原小组成员，成立新的开源码计划Joomla!。而原有的Mambo计划，则由Miro公司重新招募成员与自行雇用开发人员，继续发展下去。目前Joomla!发布的1.0.x版本与Mambo4.5.2版本功能相差无几。 Joomla!的技术规格 [...]]]></description>
			<content:encoded><![CDATA[<p>老李在昨晚超图走进南大的宣讲会上，宣布了CPGIS举办的Geoinformatics 2007将在南大举行，并且发表的论文将被IE检索。同时老李讲了，即将推出网站。我相信，这又是我们的一个机遇。<br />
我是一个对网站偏执的人，记得初中的时候就创办了自己的网站，当然当时仅仅是用frontpage来做的，而且很简单，基本都是html语句。后来用了opera提供的blog，以至再后来接触了php，开源等。就对wordpress，drupal以及一些CMS产生了兴趣。最近老李说做关于Geoinformatics 2007的网站，我主力推荐使用<a href="http://www.joomla.org/" target="_blank">Joomla！</a>我非常欣赏Joomla的广告语：because open source matters。我们越来越多的把注意里投给开源，开源软件确实也不负众望，在很多领域，包括CMS，也是同样非常的matters，呵呵。<a href="http://www.joomla.org/" target="_blank"><br />
</a>      以下简单介绍一下Joomla！，希望对大家都有所启发和帮助，特别是如何使用CMS在开源环境下构建网络平台方面：<br />
<strong><br />
Joomla!是什么？</strong><img src="/wp-content/uploads/joomla061105.jpg" align="right" /><strong><br />
</strong><br />
<a href="http://www.joomla.org/" target="_blank">Joomla!</a>是一套在国外相当知名的内容管理系统（Content Management System, CMS），它属于Portal（企业入口网站）类型，顾名思义，就是比较适合作为商业类型的网站程序。一般人对这类型的内容管理系统可能会有以下的别名来称呼：Joomla!是使用PHP语言加上MySQL数据库所开发的软件系统，可以在Linux、Windows、MacOSX等各种不同的平台上执行。目前是由Open Source Matters (www.opensourcematters.org)这个开放源码组织进行开发与支持，这个组织的成员来自全世界各地，小组成员约有150人，包含了开发者、设计者、系统管理者、文件撰写者，以及超过2万名的参与会员。<span id="more-320"></span></p>
<p><strong>Joomla!的优秀特点</strong></p>
<p>当然每个知名的开源码程序都会有其吸引人的优点，反之当然会有缺点。以下整理出在网络上来自使用者对Joomla!程序的喜好重点：</p>
<ol>
<li>先进的网站技术的运用： Joomla!应用了非常多的网站进步的新技术，像是「网站快取技术」可以加速网站的反应与效能。「RSS新闻联播与新闻读取」是最近十分热门的网站新闻读取的技术，在部落格程序中（Blog）中十分常见。「SEO搜寻引擎最佳化」这个是目前所有网站必备的技术之一，这个功能主要是让搜寻引擎更容易的浏览您网站上的数据，让更多人在搜寻引擎上找到您的网站，相当于为自己的网站带来更多的人潮和商机。</li>
<li>庞大的附加套件及商机：来自全球上千种不同网站应用的附加套件及美工设计布景，都是以这套系统为基础而开发。使用者可以很方便的安装上这些附加套件，如同在桌上计算机中的Windows操作系统中，安装新的软件一般。开发社群总是发挥无止尽的创意，不断的开发符合使用社群需求的产品。Joomla!的商用套件市场目前也有许多价廉物美的软件及美工设计布景主题。</li>
<li>简单且丰富的操作接口：Joomla!的操作接口除了美观之外，也花了很多心力在设计这些接口的简易操作性。虽然初次使用者，需要花一点时间学习一下操作的方式，才能运用自如。但相信学会使用之后，这是很值得的。另外可搭配的多种所视即所得编辑程序，更可让对网页设计语言不熟悉的管理者，很简易的就可以管理和编辑网站上的文章。</li>
<li>高度的客制和开发的弹性：对于网站程序开发者和美工设计者，Joomla!保留了最大的客制化弹性和整合能力。全世界的网站相关开发人员，都十分关注与推荐这套系统。是由于这套系统不断在强大能力与客制弹性之间找寻平衡点，受到许多知名厂商的使用。</li>
<li>全世界超过一万个网站的使用见证：自从Mambo 1.0版本以后，全世界有超过一万个网站使用这个系统作为架站用的核心系统，其中不乏大公司的网站，例如最有名的保时捷网站（巴西）、三菱公司全球网站、麦克杰克森的官方网站等等，。</li>
</ol>
<p>根据Joomla!官方的统计，2006年3月份在官方的社群上已有超过26000的注册会员。代表目前对于这个系统的重视与积极参与的人是很多的。藉由使用社群和开发社群的良好互动，充分发挥了开源码程序的开发正向回馈，目前有愈来愈多优秀的美工设计及程序研发人才投入开发的行列。</p>
<p>官方核心开发小组目前有22名，都是来自全世界的开源码程序精英。其它分有以下的小组，总人数超过100人：</p>
<ol>
<li>文件小组：负责文件的撰写。</li>
<li>翻译小组：来自全世界40多个语系的负责小组，负责翻译语系及在当地推广。</li>
<li>网站管理小组：管理官方网站的上稿、程序写作与论坛的维护。</li>
<li>公关小组：参与全世界各地（大部份在欧美）的开源码活动，推广Joomla!程序。</li>
</ol>
<p><strong>Joomla!名称的由来</strong></p>
<p>这个名称来自非洲斯瓦希里语的方言&#8221;Jumla&#8221;，意思是&#8221;一起&#8221;（All together）或&#8221;as a whole&#8221;. 可以使用非常多的外挂功能组件（上千多种），让网站上的应用更丰富。另外Joomla!有很独特的布景样版系统，可以让你设计与众不同的网站外观。这也是Joomla!在这个市场最为人津津乐道的一个优点。</p>
<p><strong>Joomla!的历史</strong></p>
<p>Mambo软件最早在2001年五月份由澳洲Miro公司所开发，由于Miro公司有商业化的考虑，原先发布并采用GNU/GPL授权的软件版本，在版本3.0.5之后就不再支持。<br />
后来由Robert Castley（现已离开核心小组）接手后续的开发原始码版本，并招募新的志愿者。Mambo发展至4.5.1版本之后，整合了许多新的网站技术，以及新的操作接口，在2004年获得Linux User &#038; Developer Award 2004的「Best Linux or Open Source Software」奖项，自此大放异彩从此，在开源码的内容管理系统中占有一席之地，受到使用社群的高度重视。<br />
Mambo 2005年8月后由于原先的所有人Miro公司，希望能深入参与开发工作及决定未来的发展方向，引起和核心开发小组之间的意见不合，前开发小组领导人Eddie Andrew带领几乎八成的原小组成员，成立新的开源码计划Joomla!。而原有的Mambo计划，则由Miro公司重新招募成员与自行雇用开发人员，继续发展下去。目前Joomla!发布的1.0.x版本与Mambo4.5.2版本功能相差无几。</p>
<p><strong>Joomla!的技术规格</strong><br />
Joomla! 1.0.x的技术规格如下：</p>
<ul>
<li>开放原始码程序</li>
<li>具有大型且健全的使用及开发社群</li>
<li>有针对注册用户提供简单的文件审核等级</li>
<li>在线说明文件</li>
<li>网页快取机制，可以提升忙碌网站的效能</li>
<li>资源管理功能</li>
<li>广告管理（广告广告牌功能…其它）</li>
<li>媒体（图片、档案）上传与管理功能</li>
<li>内容显示排程功能</li>
<li>内容联合供稿（RSS）</li>
<li>适合于搜寻引擎连结技术（SEF）</li>
<li>多国语言化（接口）</li>
<li>内容自动化程序技术（又称作mambots）</li>
<li>进阶及分离式的管理系统</li>
<li>进阶的套件/附加程序/样版布署系统</li>
<li>简单但功能强大的样版系统（大部份是以HTML码撰写，没有复杂的样版式语法需要先学习，只有一些PHP的宣告码需要加进去）</li>
<li>阶层式的用户存取群组</li>
<li>简单的访客统计功能</li>
<li>支持多种所视即所得（WYSIWYG）内容编辑程序</li>
<li>简单的投票功能</li>
<li>内容评等系统</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/11/geoinformatics-2007%e7%9a%84%e7%bd%91%e7%ab%99%e5%8d%b3%e5%b0%86%e6%8e%a8%e5%87%ba/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>runPHP in wordpress</title>
		<link>http://www.geoinformatics.cn/2006/08/runphp-in-wordpress/</link>
		<comments>http://www.geoinformatics.cn/2006/08/runphp-in-wordpress/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 02:10:36 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/20060814134.html</guid>
		<description><![CDATA[runPHP is a WordPress plug-in that allows users to embed PHP code directly into their posts. runPHP是不错的插件，可以在帖子中运行php代码，给我们了很大的发挥空间。而且新的版本强化了用户的权限，给不同的用户以不同的权限。 download new version: runPHP 2.1b]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nosq.com/blog/2006/01/runphp-plugin-for-wordpress/" target="_blank">runPHP</a> is a WordPress plug-in that allows users to embed PHP code directly into their posts.<br />
runPHP是不错的插件，可以在帖子中运行php代码，给我们了很大的发挥空间。而且新的版本强化了用户的权限，给不同的用户以不同的权限。<br />
download new version: <a href="http://www.nosq.com/download/runPHP2.1b.zip" target="_blank">runPHP 2.1b<br />
</a><img width="450" src="/wp-content/uploads/npsq.JPG" /><a href="http://www.nosq.com/download/runPHP2.1b.zip" target="_blank"><br />
</a><a href="http://www.nosq.com/download/runPHP2.1b.zip" target="_blank"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/08/runphp-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu下Apache2＋PHP设置的问题。</title>
		<link>http://www.geoinformatics.cn/2006/08/ubuntu%e4%b8%8bapache2%ef%bc%8bphp%e8%ae%be%e7%bd%ae%e7%9a%84%e9%97%ae%e9%a2%98%e3%80%82/</link>
		<comments>http://www.geoinformatics.cn/2006/08/ubuntu%e4%b8%8bapache2%ef%bc%8bphp%e8%ae%be%e7%bd%ae%e7%9a%84%e9%97%ae%e9%a2%98%e3%80%82/#comments</comments>
		<pubDate>Tue, 08 Aug 2006 01:54:24 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/linux/2006080739.html</guid>
		<description><![CDATA[在陶谷这里忙碌了3天有余了，终于解决了在Ubuntu 6.06下设置Apache2和php的问题。把自己的经验发出来吧。已被日后不测。 在解决问题之前首先要有一下两个准备： 1 时刻和ubuntu源进行互联，这就是为什么我没有在宿舍或者实验室进行配置的原因。跟据二八原理，如果我在校园网的环境下完成设置工作，将大大浪费我宝贵的时间。 2 持之以恒的决心和耐力，相信自己一定能够完成，如果对自己都没有信心，或者不坚持到底，那么一定是不能达到目的的。 呵呵，下面是需要主义的问题： 1 总体安装：用命令行的方式进行。在ubuntu中有篇《LAMP服务器的配置》的文章很不错。 2 按照上文还是有一些问题，首先还需要再设置php5.load 和php5.conf的软链接到mod-enabled的文件夹里。可以参考文章《[求助]apache2不能解析php》。“就是/etc/apache2/mods-available/下面没有php5.load和php5.conf，两个文本文件，我也不知道为什么没有。 在别人机器上拷过来一份(其实可以自己写，很简单的两个文件)，再把这两个文件软链接到/etc/apache2/mods-enable/下（文件名不变），就好了。” 3 再者，还需要修改了/etc/apache2/httpd.conf ，添加如下代码： AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml  LoadModule php5_module /usr/lib/apache2/modules/libphp5.so 该步操作可以参考文章《[问题]请教Apache+PHP问题》 这样，在/var/www/中添加页面phptest.php, 写入代码,就可以进行测试了。这只是一个大致的过程，希望对自己和他人有用。]]></description>
			<content:encoded><![CDATA[<p>在陶谷这里忙碌了3天有余了，终于解决了在Ubuntu 6.06下设置Apache2和php的问题。把自己的经验发出来吧。已被日后不测。</p>
<p>在解决问题之前首先要有一下两个准备：</p>
<ul>
<li>1 时刻和ubuntu源进行互联，这就是为什么我没有在宿舍或者实验室进行配置的原因。跟据二八原理，如果我在校园网的环境下完成设置工作，将大大浪费我宝贵的时间。</li>
<li>2 持之以恒的决心和耐力，相信自己一定能够完成，如果对自己都没有信心，或者不坚持到底，那么一定是不能达到目的的。</li>
</ul>
<p>呵呵，下面是需要主义的问题：</p>
<ul>
<li>1 总体安装：用命令行的方式进行。在ubuntu中有篇<a target="_blank" href="http://wiki.ubuntu.org.cn/LAMP服务器的配置?highlight=%28lamp%29">《LAMP服务器的配置》</a>的文章很不错。</li>
<li>2 按照上文还是有一些问题，首先还需要再设置php5.load 和php5.conf的软链接到mod-enabled的文件夹里。可以参考文章<a target="_blank" href="http://forum.ubuntu.org.cn/about12906.html&#038;sid=84169bf240859125e66ea1d8355b3e45">《[求助]apache2不能解析php》。</a>“就是/etc/apache2/mods-available/下面没有php5.load和php5.conf，两个文本文件，我也不知道为什么没有。<br />
在别人机器上拷过来一份(其实可以自己写，很简单的两个文件)，再把这两个文件软链接到/etc/apache2/mods-enable/下（文件名不变），就好了。”</li>
</ul>
<ul>
<li>3 再者，还需要<span class="postbody">修改了/etc/apache2/httpd.conf </span>，添加如下代码：</li>
</ul>
<p>AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php .phtml<br />
<span class="postbody"> LoadModule php5_module /usr/lib/apache2/modules/libphp5.so </span></p>
<p><span class="postbody" />该步操作可以参考文章<a target="_blank" href="http://forum.ubuntu.org.cn/about11940.html&#038;sid=f8c5e8bdfede7cdf38438d7ac541a8b9">《<span class="postdetails">[问题]请教Apache+PHP问题</span>》</a></p>
<p>这样，在/var/www/中添加页面phptest.php, 写入代码<coolcode lang="php" linenum="off"><? php phpinfo(); ?></coolcode>,就可以进行测试了。这只是一个大致的过程，希望对自己和他人有用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/08/ubuntu%e4%b8%8bapache2%ef%bc%8bphp%e8%ae%be%e7%bd%ae%e7%9a%84%e9%97%ae%e9%a2%98%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>httpd.conf 中文版</title>
		<link>http://www.geoinformatics.cn/2006/08/httpdconf-%e4%b8%ad%e6%96%87%e7%89%88/</link>
		<comments>http://www.geoinformatics.cn/2006/08/httpdconf-%e4%b8%ad%e6%96%87%e7%89%88/#comments</comments>
		<pubDate>Mon, 07 Aug 2006 20:37:42 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/linux/2006080736.html</guid>
		<description><![CDATA[http://linux-down.kmip.net/ # # 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。 #参见以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。 # #这些配置指令被分为下面三个部分： #1. 控制整个Apache服务器行为的部分（即全局环境变量） #2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”）， #服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot #的值附加在文件名的前面，例如，对“logs/foo.log&#8221;，如果ServerRoot的值 #为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log” # ##第一区：全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为； #例如Apache能够处理的并发请求的数量等。 # #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 # #注意！如果你想要将它指定为NFS或其它网络上的位置， #请一定要去阅读与LockFile有关的文档（可能在 #)。 #这将会使你自己也能解决很多问题。 # #路径的结尾不要添加斜线。 # ServerRoot &#8220;/usr/loacl/apache2&#8243; # #串行访问的锁文件必须保存在本地磁盘上 # #LockFile logs/accept.lock #ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中， #并且它不能被第三方软件所使用。 #如果指定了，要确保不能使用两个Apache使用同一个记分板文件， #这个记分板文件必须保存在本地磁盘上。 # #ScoreBoardFile [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://linux-down.kmip.net/" target="_blank">http://linux-down.kmip.net/</a></p>
<p>#<br />
# 基于 NCSA 服务的配置文件。<br />
#<br />
#这是Apache服务器主要配置文件。<br />
#它包含服务器的影响服务器运行的配置指令。<br />
#参见<URL:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息<br />
#<br />
#不要只是简单的阅读这些指令信息而不去理解它。<br />
#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。<br />
#<br />
#这些配置指令被分为下面三个部分：<br />
#1. 控制整个Apache服务器行为的部分（即全局环境变量）<br />
#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数<br />
#3. 虚拟主机的设置参数<br />
#<br />
#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），<br />
#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot<br />
#的值附加在文件名的前面，例如，对“logs/foo.log&#8221;，如果ServerRoot的值<br />
#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”<br />
#<br />
##第一区：全局环境参数<br />
#<br />
#这里设置的参数将影响整个Apache服务器的行为；<br />
#例如Apache能够处理的并发请求的数量等。<br />
#<br />
#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。<br />
#<br />
#注意！如果你想要将它指定为NFS或其它网络上的位置，<br />
#请一定要去阅读与LockFile有关的文档（可能在<br />
#<URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>)。<br />
#这将会使你自己也能解决很多问题。<br />
#<br />
#路径的结尾不要添加斜线。<br />
#<br />
ServerRoot &#8220;/usr/loacl/apache2&#8243;<br />
#<br />
#串行访问的锁文件必须保存在本地磁盘上<br />
#<br />
<IfModule !mpm_winnt.c><br />
<IfModule !mpm_neware.c><br />
#LockFile logs/accept.lock<br />
</IfModule><br />
</IfModule></p>
<p>#ScoreBoardFile:用来保存内部服务进程信息的文件。<br />
#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，<br />
#并且它不能被第三方软件所使用。<br />
#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，<br />
#这个记分板文件必须保存在本地磁盘上。<br />
#<br />
<IfModule !mpm_netware.c><br />
<IfModule !perchild.c><br />
#ScoreBoardFile logs/apache_runtime_status<br />
<IfModule><br />
<IfModule></p>
<p>#<br />
#PidFile:记录服务器启动进程号的文件。<br />
#<br />
<IfModule !mpm_neware.c><br />
PidFile logs/httpd.pid<br />
</IfModule></p>
<p>#<br />
#Timeout:接收和发送前超时秒数<br />
#<br />
Timeout 300</p>
<p>#<br />
#KeepAlive:是否允许稳固的连接（每个连接有多个请求），<br />
#设为&#8221;Off&#8221;则停用。<br />
#<br />
KeepAlive On</p>
<p>#<br />
#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，<br />
#设为0表示无限制接入。<br />
#我们推荐你将其设为一个较大的值，以便提高性能<br />
MaxKeepAliveRequests 100</p>
<p>#<br />
#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数<br />
#<br />
KeepAliveTimeout 15</p>
<p>##<br />
##Server-Pool大小设定（针对MPM的）<br />
##</p>
<p># prefork MPM<br />
# StartServers:启动时服务器启动的进程数<br />
# MinSpareServers:保有的备用进程的最小数目<br />
# MaxSpareServers:保有的备用进程的最大数目<br />
# MaxClients:服务器允许启动的最大进程数<br />
# MaxRequestsPerChild:一个服务进程允许的最大请求数<br />
<IfModule prefork.c><br />
StartServers 5<br />
MinSpareServers 5<br />
MaxSpareServers 10<br />
MaxClients 150<br />
MaxRequestPerChild 0<br />
</IfModule></p>
<p># worker MPM<br />
# StartServers:服务器启动时的服务进程数目<br />
# MaxClients:允许同时连接的最大用户数目<br />
# MinSpareThreads:保有的最小工作线程数目<br />
# MaxSpareThreads:允许保有的最大工作线程数目<br />
# ThreadsPerChild:每个服务进程中的工作线程常数<br />
# MaxRequestsPerChild:服务进程中允许的最大请求数目<br />
<IfModule worker.c><br />
StartServers 2<br />
MaxClients 150<br />
MinSpareThreads 25<br />
MaxSpareThreads 75<br />
ThreadsPerChild 25<br />
MaxRequestsPerChild 0<br />
</IfModule></p>
<p># perchild MPM<br />
# NumServers:服务进程数量<br />
# StartThreads:每个服务进程中的起始线程数量<br />
# MinSpareThreads:保有的最小线程数量<br />
# MaxSpareThreads:保有的最大线程数量<br />
# MaxThreadsPerChild:每个服务进程允许的最大线程数<br />
# MaxRequestsPerChild:每个服务进程允许连接的最大数量<br />
<IfModule perchild.c><br />
NumServers 5<br />
StartThreads 5<br />
MinSpareThreads 5<br />
MaxSpareThreads 10<br />
MaxThreadsPerChild 20<br />
MaxRequestsPerChild 0<br />
</IfModule></p>
<p># WinNT MPM<br />
# ThreadsPerChild:服务进程中工作线程常数<br />
# MaxRequestsPerChild:服务进程允许的最大请求数<br />
<IfModule mpm_winnt.c><br />
ThreadsPerChild 250<br />
MaxRequestsPerChild 0<br />
</IfModule></p>
<p># BeOS MPM<br />
# StartThreads:服务器启动时启动的线程数<br />
# MaxClients:可以启动的最大线程数（一个线程等于一个用户）<br />
# MaxRequestsPerThread:每个线程允许的最大请求数<br />
<IfModule beos.c><br />
StartThreads 10<br />
MaxClients 50<br />
MaxRequestsPerThread 10000<br />
</IfModule></p>
<p># NetWare MPM<br />
# ThreadStachSize:为每个工作线程分配的堆栈尺寸<br />
# StartThreads:服务器启动时启动的线程数<br />
# MinSpareThreads:用于处理实发请求的空闲线程数<br />
# MaxSpareThreads:空闲线程的最大数量<br />
# MaxThreads:在同一时间活动的最大线程数<br />
# MaxRequestPerChild:一个线程服务请求的最大数量，<br />
# 推荐将其设置为0，以实现无限制的接入<br />
<IfModule mpm_netware.c><br />
ThreadStackSize 65536<br />
StartThreads 250<br />
MinSpareThreads 25<br />
MaxSpareThreads 250<br />
MaxThreads 1000<br />
MaxRequestPerChild 0<br />
</IfModule></p>
<p># OS/2 MPM<br />
# StartServers:启动的服务进程数量<br />
# MinSpareThreads:每个进程允许的最小空闲线程<br />
# MaxSpareThreads:每个进程允许的最大空闲线程<br />
# MaxRequestsPerChild:每个服务进程允许的最大连接数<br />
<IfModule mpmt_os2.c><br />
StartServers 2<br />
MinSpareThreads 5<br />
MaxSpareThreads 10<br />
MaxRequestsPerChild 0<br />
</IfModule></p>
<p>#<br />
# Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值<br />
# 参见<VirtualHost>指令<br />
# 使用如下命令使Apache只在指定的IP地址上监听，<br />
# 以防止它在IP地址0.0.0.0上监听<br />
#<br />
# Listen 12.34.56.78:80</p>
<p>Listen 80</p>
<p>#<br />
# 动态共享支持（DSO）<br />
#<br />
# 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，<br />
# 因此，在这里包含了这些指令，以便能在使用它之前激活。<br />
# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)<br />
#<br />
# 示例：<br />
# LoadModule foo_module modules/mod_foo.so<br />
#</p>
<p>#<br />
# ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态<br />
# 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。<br />
# 默认为off<br />
#<br />
# ExtendedStatus On</p>
<p>### 第二区：“主”服务配置<br />
#<br />
# 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost><br />
# 定义处理的任何请求。<br />
# 这些数值也提供默认值给后面定义的<VirtualHost>容器。<br />
# 如果<VirtualHost>中有定义，那么这里定义的指令值将被<br />
# <VirtualHost>中的定义所覆盖。<br />
#</p>
<p><IfModule !mpm_winnt.c><br />
<IfModule !mpm_neware.c><br />
#<br />
# 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动<br />
# 然后再将它切换为你想要使用的用户或组。<br />
#<br />
# User/Group:运行httpd的用户和组<br />
# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”<br />
# 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。<br />
# 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，<br />
#节在这些系统上不要使用“Group #-1”。<br />
#<br />
User nobody<br />
Group #-1<br />
</IfModule><br />
</IfModule></p>
<p>#<br />
# ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。<br />
# 作为一个出错文档，这个地址显示在server-generated页上，<br />
# 例如：admin@your-domain.com<br />
#<br />
ServerAdmin kreny@sina.com</p>
<p>#<br />
# ServerName指定Apache用于识别自身的名字和端口号。<br />
# 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错<br />
#<br />
# 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。<br />
# 参见UseCanonicalName指令<br />
#<br />
# 如果你的主机没有注册DNS名，在这里键入它的IP地址<br />
# 无论如何，你必须使用它的IP地址来提供服务，<br />
# 这里使用一种容易理解的方式重定向服务<br />
ServerName www.dalouis.com:80</p>
<p>#<br />
# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。<br />
# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。<br />
# 当设置为“On”,Apache会使用ServerName指令的值。<br />
#<br />
UseCanonicalName Off</p>
<p>#<br />
# DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。<br />
# 但是可以使用符号链接和别名来指向到其他的位置。<br />
#<br />
DocumentRoot &#8220;/home/redhat/public_html&#8221;</p>
<p>#<br />
# Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。<br />
#<br />
# 首先，我们配置一个高限制的特征。</p>
<p># 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。<br />
# 如下所示<br />
<Directory /><br />
Order Deny,Allow<br />
Deny from all<br />
</Directory></p>
<p>#<br />
# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。<br />
# &#8211; 所以，如果Apache没有象你所期待的那样工作的话,<br />
# 请检查你是否在下面明确的指定它可用。<br />
#</p>
<p>#<br />
# 这将改变到你设置的DocumentRoot<br />
#<br />
<Directory "/home/redhat/public_html"></p>
<p>#<br />
# Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：<br />
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews<br />
#<br />
# 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。<br />
#<br />
# 这个指令既复杂又重要，请参见<br />
#“http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。<br />
#<br />
Options FollowSymLinks</p>
<p>#<br />
# AllowOverride控制那些被放置在.htaccess文件中的指令。<br />
# 它可以是“All”，“None”，或者下列指令的组合：<br />
# Options FileInfo AuthConfig Limit<br />
#<br />
AllowOverride None</p>
<p>#<br />
# 控制谁可以获得服务。<br />
#<br />
Order allow,deny<br />
Allow from all</p>
<p></Directory></p>
<p>#<br />
# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。<br />
#</p>
<p>UserDir public_html</p>
<p># 为防止在UserDir指令上的漏洞，对root用户设置<br />
# 象“./”这样的UserDir是非常有用的。<br />
# 如果你使用Apache 1.3或以上版本，我们强烈建议你<br />
# 在你的服务器配置文件中包含下面的行</p>
<p>UserDir disabled root</p>
<p>#<br />
# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：<br />
#<br />
# <Directory /home/*/public_html><br />
# AllowOverride FileInfo AuthConfig Limit Indexes<br />
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec<br />
# <Limit GET POST OPTIONS PROPFIND><br />
# Order allow,deny<br />
# Allow from all<br />
# </Limit><br />
# <LimitExcept GET POST OPTIONS PROPFIND><br />
# Order deny,allow<br />
# Deny from all<br />
# </LimitExcept><br />
# </Directory></p>
<p>#<br />
# DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名<br />
#<br />
# index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，<br />
# 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。<br />
#<br />
DirectoryIndex index.php index.html index.html.var</p>
<p>#<br />
# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。<br />
# 参见AllowOverride指令。<br />
#<br />
AccessFileName .htaccess</p>
<p>#<br />
# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。<br />
#<br />
<Files ~ "^\.ht"><br />
Order allow,deny<br />
Deny from all<br />
</Files></p>
<p>#<br />
# Typeconfig:定义在哪里查询mime.types文件。<br />
#<br />
TypeConfig conf/mime.types</p>
<p>#<br />
# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。<br />
# 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；<br />
# 如果大多是二进制文档，诸如软件或图像，你应使用<br />
# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。<br />
#<br />
DefaultType text/plain</p>
<p>#<br />
# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），<br />
# 这个MIMEMagicFile指令定义hints定义所在的文件。<br />
#<br />
<IfModule mod_mime_magic.c><br />
MIMEMagicFile conf/magic<br />
</IfModule></p>
<p>#<br />
# HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时<br />
# 记录主机名，如www.apache.org；为off时记录IP地址，204.62.129.132。<br />
# 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会<br />
# 至少造成对 nameserver 进行一次查询。<br />
#<br />
HostnameLookups Off</p>
<p>#<br />
# EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。<br />
# 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。<br />
# 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；<br />
# 具体情况请参阅http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap<br />
#<br />
# EnableMMAP off</p>
<p>#<br />
# EnableSendfile:控制是否使用sendfile kernel支持发送文件<br />
# （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统<br />
# （NFS）上，请你关闭它。<br />
# 参见http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile<br />
#<br />
# EnableSendfile off</p>
<p>#<br />
# ErrorLog:错误日志文件定位。<br />
# 如果你没有在<VirtualHost>内定义ErrorLog指令，这个虚拟主机的错误信息<br />
# 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所<br />
# 定义的文件里，而不是这儿定义的文件。<br />
#<br />
ErrorLog logs/error_log</p>
<p>#<br />
# LogLevel:控制记录在错误日志文件中的日志信息数量。<br />
# 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。<br />
#<br />
LogLevel warn</p>
<p>#<br />
# 下面的指令为CustomLog指令定义格式别名。<br />
#<br />
LogFormat &#8220;%h %l %u %t \&#8221;%r\&#8221; %>s %b \&#8221;%{Referer}i\&#8221; \&#8221;%{User-Agent}i\&#8221;" combined<br />
LogFormat &#8220;%h %l %u %t \&#8221;%r\&#8221; %>s %b&#8221; common<br />
LogFormat &#8220;%{Referer}i -> %U&#8221; referer<br />
LogFormat &#8220;%{User-agent}i&#8221; agent</p>
<p># 你需要安装了mod_logio.c模块才能使用%I和%O。<br />
# LogFormat &#8220;%h %l %u %t \&#8221;%r\&#8221; %>s %b \&#8221;%{Referer}i\&#8221; \&#8221;%{User-Agent}i\&#8221; %I %O&#8221; combinedio</p>
<p>#<br />
# 指定接入日志文件的定位和格式（一般日志格式）。<br />
# 如果你没有在<VirtualHost>内定义这个指令，传输信息将记录在这里，<br />
# 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。<br />
#<br />
CustomLog logs/access_log common</p>
<p>#<br />
# 如果你想要记录agent和referer信息，可以使用下面的指令<br />
#<br />
# CustomLog logs/referer_log referer<br />
# CustomLog logs/agent_log agent</p>
<p>#<br />
# 如果你想要使用一个文件记录access，agent和referer信息，<br />
# 你可以如下定义这个指令：<br />
#<br />
# CustomLog logs/access_log combined</p>
<p>#<br />
# ServerTokens<br />
# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，<br />
# 这表示在回应头中将包含模块中的操作系统类型和编译信息。<br />
# 可以设为列各值中的一个：<br />
# Full | OS | Minor | Minimal | Major | Prod<br />
# Full传达的信息最多，而Prod最少。<br />
#<br />
ServerTokens Full</p>
<p>#<br />
# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中<br />
# （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误<br />
# 或自定义的错误文档以外）。<br />
# 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。<br />
# 可以为如下值：On | Off | EMail<br />
#<br />
ServerSignature On</p>
<p>#<br />
# Aliases:在这时添加你需要的别名，格式如下：<br />
# Alias 别名 真实名<br />
#<br />
# 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。<br />
# 因此，“/icons”不是这个示例中的别名。<br />
# 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，<br />
# 如果别名中省略了结尾的“/”，那么真实名也必须省略。<br />
#<br />
# 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、<br />
# FancyIndexing，你可以注释掉它。<br />
#<br />
# Alias /icons/ &#8220;/usr/local/apache2/icons/&#8221;</p>
<p># <Directory "/usr/local/apache2/icons"><br />
# Options Indexes MultiViews<br />
# AllowOverride None<br />
# Order allow,deny<br />
## Allow from all<br />
# </Directory></p>
<p>#<br />
# 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，<br />
# 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，<br />
# 你可以注释掉它。<br />
#<br />
Alias /manual &#8220;/usr/loacl/apache2/manual&#8221;</p>
<p><Directory "/usr/local/apache2/manual"><br />
Options Indexes FollowSymLinks MultiViews IncludesNoExec<br />
AddOutputFilter Includes html<br />
Order allow,deny<br />
Allow from all<br />
</Directory></p>
<p>#<br />
# ScriptAlias:指定包含服务脚本的目录。<br />
# ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。<br />
# 尾部的“/”规则与Alias一样<br />
#<br />
ScriptAlias /cgi-bin/ &#8220;/usr/loacl/apache2/cgi-bin/&#8221;</p>
<p># 这里是添加php 4支持的指令<br />
AddType application/x-httpd-php .php<br />
LoadModule php4_module modules/libphp4.so</p>
<p><IfModule mod_cgid.c><br />
#<br />
# 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的<br />
# 脚本接口路径。<br />
#<br />
# Scriptsock logs/cgisock<br />
</IfModule></p>
<p>#<br />
# 将&#8221;/usr/local/apache2/cgi-bin&#8221;改为你的ScriptAliased指定的CGI目录，<br />
# 如果你配置了的话。<br />
#<br />
<Directory "/usr/local/apache2/cgi-bin"><br />
AllowOverride None<br />
Options None<br />
Order allow,deny<br />
Allow from all<br />
</Directory></p>
<p>#<br />
# Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，<br />
# 而不是现在的，这帮助客户定位那些改变了位置的文档。<br />
# 例如：<br />
# Redirect permanent /foo http://www.example.com/bar</p>
<p>#<br />
# 控制server-generated目录列表显示的指令<br />
#</p>
<p>#<br />
# IndexOptions:控制server-generated目录列表显示特征。<br />
#<br />
IndexOptions FancyIndexing VersionSort</p>
<p>#<br />
# AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，<br />
# 只适用于FancyIndexed指令<br />
#<br />
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip<br />
AddIconByType (TXT,/icons/text.gif) text/*<br />
AddIconByType (IMG,/icons/image2.gif) image/*<br />
AddIconByType (SND,/icons/sound2.gif) audio/*<br />
AddIconByType (VID,/icons/movie.gif) video/*</p>
<p>AddIcon /icons/binary.gif .bin .exe<br />
AddIcon /icons/binhex.gif .hqx<br />
AddIcon /icons/tar.gif .tar<br />
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv<br />
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip<br />
AddIcon /icons/a.gif .ps .ai .eps<br />
AddIcon /icons/layout.gif .html .shtml .htm .pdf<br />
AddIcon /icons/text.gif .txt<br />
AddIcon /icons/c.gif .c<br />
AddIcon /icons/p.gif .pl .py<br />
AddIcon /icons/f.gif .for<br />
AddIcon /icons/dvi.gif .dvi<br />
AddIcon /icons/uuencoded.gif .uu<br />
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl<br />
AddIcon /icons/tex.gif .tex<br />
AddIcon /icons/bomb.gif core</p>
<p>AddIcon /icons/back.gif ..<br />
AddIcon /icons/hand.right.gif README<br />
AddIcon /icons/folder.gif ^^DIRECTORY^^<br />
AddIcon /icons/blank.gif ^^BLANKICON^^</p>
<p>#<br />
# DefaultIcon 为那些没有显式定义图标的文件提供处理<br />
#<br />
DefaultIcon /icons/unknown.gif</p>
<p>#<br />
# AddDescription允许你在server-generated索引后放置一个简短的说明。<br />
# 只对FancyIndexed指令有效。<br />
# 格式：AddDescription &#8220;说明&#8221; 文件名<br />
#<br />
# AddDescription &#8220;GZIP compressed document&#8221; .gz<br />
# AddDescription &#8220;tar archive&#8221; .tar<br />
# AddDescription &#8220;GZIP compressed tar archive&#8221; .tgz</p>
<p>#<br />
# ReadmeName指定服务器默认查找的README文件的名字，并添加到目录列表中<br />
#<br />
# HeaderName指定目录列表前缀文件的文件名<br />
ReadmeName README.html<br />
HeaderName HEADER.html</p>
<p>#<br />
# IndexIgnore指定目录索引忽略并且不包含在列表中的文件名集合，<br />
# 支持shell类型的通配符。<br />
#<br />
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t</p>
<p>#<br />
# AddEncoding允许你在信息传送中使用(Mosaic/X 2.1+)解压缩信息，<br />
# 注意：不是所有的浏览器都支持这个选项。<br />
# 尽管名字相似，但是下列的指令与上面的FancyIndexing定制指令不同。<br />
#<br />
AddEncoding x-compress Z<br />
AddEncoding x-gzip gz tgz</p>
<p>#<br />
# DefaultLanguage和AddLanguage允许你指定文档的语言。<br />
# 这使你可以让用户用容易理解的语言浏览文档。<br />
#<br />
# 指定默认的语言，这意味着所有没有指定语言的包都将使用该语言。<br />
# 多数情况下，你也许并不想设置它，除非你确信这样做是正确的。<br />
# 通常，不使用确定的语言比使用错误的语言要好。<br />
#<br />
# DefaultLanguage nl<br />
#<br />
# 注意1：作为语言关键字的词缀毫无疑问是不能一样的&#8211;采用波兰<br />
# 文的文档（网络标准语言代码是pl）将希望使用“AddLanguage pl .po”<br />
# 来避免与perl脚本的一般词缀产生二义性。<br />
#<br />
# 注意2: 下面的例子举例说明在一些范例中语言的二字符缩写与它的国家<br />
# 的二字符缩写不相同,例如 “Danmark/dk” 和 “Danmark/da” 的比较.<br />
#<br />
# 注意3: 在 “ltz” 的情况下我们使用三字符词缀，违犯了 RFC的规定，<br />
# 运行中将修复它并使用RFC1766标准取得参考数据。<br />
#<br />
# Danish (da) &#8211; Dutch (nl) &#8211; English (en) &#8211; Estonian (et)<br />
# French (fr) &#8211; German (de) &#8211; Greek-Modern (el)<br />
# Italian (it) &#8211; Norwegian (no) &#8211; Norwegian Nynorsk (nn) &#8211; Korean (ko)<br />
# Portugese (pt) &#8211; Luxembourgeois* (ltz)<br />
# Spanish (es) &#8211; Swedish (sv) &#8211; Catalan (ca) &#8211; Czech(cz)<br />
# Polish (pl) &#8211; Brazilian Portuguese (pt-br) &#8211; Japanese (ja)<br />
# Russian (ru) &#8211; Croatian (hr)<br />
#<br />
AddLanguage da .dk<br />
AddLanguage nl .nl<br />
AddLanguage en .en<br />
AddLanguage et .et<br />
AddLanguage fr .fr<br />
AddLanguage de .de<br />
AddLanguage he .he<br />
AddLanguage el .el<br />
AddLanguage it .it<br />
AddLanguage ja .ja<br />
AddLanguage pl .po<br />
AddLanguage ko .ko<br />
AddLanguage pt .pt<br />
AddLanguage nn .nn<br />
AddLanguage no .no<br />
AddLanguage pt-br .pt-br<br />
AddLanguage ltz .ltz<br />
AddLanguage ca .ca<br />
AddLanguage es .es<br />
AddLanguage sv .sv<br />
AddLanguage cz .cz<br />
AddLanguage ru .ru<br />
AddLanguage tw .tw<br />
AddLanguage zh-tw .tw<br />
AddLanguage hr .hr</p>
<p># LanguagePriority允许你在会话过程中优先使用一些语言。<br />
#<br />
# 以优先次序递减的方式列出它们。我们或多或少地采用按字母排列顺序的方式<br />
# 排列它们。也许你想要改变这个顺序。<br />
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw</p>
<p>#<br />
# ForceLanguagePriority 允许你为MULTIPLE CHOICES(Prefer)[在通讯的情况下]<br />
# 或NOT ACCEPTABLE(Fallback)[没有可接受的语言匹配的情况]提供一个结果页。<br />
#<br />
ForceLanguagePriority Prefer Fallback</p>
<p>#<br />
# 为发送出的所有页指定默认的字符集，这总是一个好主意，并且为你的<br />
# web站点的国际化打开了大门，这不正是你曾经想要的吗。同样地，指定<br />
# 默认字符集有一些小的损害，如一个使用iso-8859-1(latin1)标准命令<br />
# 的页面，除非以别的方式指定例如你仅仅以显式方式声明它。<br />
# 也有一些与那些总是鼓励你使用默认字符集的javascropt和URL语法有关<br />
# 的浏览器安全原因。<br />
#<br />
#AddDefaultCharset ISO-8859-1<br />
AddDefaultCharse GB2312</p>
<p>#<br />
# 一般以文件扩展名的方式使用字符集。也许你想要避免与语言扩展发生<br />
# 碰撞，除非你在每次改变后都做了很好的测试。<br />
# 参见http://www.iana.org/assignments/character-sets以取得字符集<br />
# 的名字列表和它们各自的RFCs。<br />
#<br />
AddCharset ISO-8859-1 .iso8859-1 .latin1<br />
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen<br />
AddCharset ISO-8859-3 .iso8859-3 .latin3<br />
AddCharset ISO-8859-4 .iso8859-4 .latin4<br />
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru<br />
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb<br />
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk<br />
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb<br />
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk<br />
AddCharset ISO-2022-JP .iso2022-jp .jis<br />
AddCharset ISO-2022-KR .iso2022-kr .kis<br />
AddCharset ISO-2022-CN .iso2022-cn .cis<br />
AddCharset Big5 .Big5 .big5<br />
# 对于俄语，使用了多个字符集（如何使用主要依靠客户端）：<br />
AddCharset WINDOWS-1251 .cp-1251 .win-1251<br />
AddCharset CP866 .cp866<br />
AddCharset KOI8-r .koi8-r .koi8-ru<br />
AddCharset KOI8-ru .koi8-uk .ua<br />
AddCharset ISO-10646-UCS-2 .ucs2<br />
AddCharset ISO-10646-UCS-4 .ucs4<br />
AddCharset UTF-8 .utf8</p>
<p># 下面的字符集没有映射到一个特定的标准(iso)上，但是它们在浏览器<br />
# 中被广泛的支持。注意那些大写字母。<br />
# (它不应该,但是它是为兼容一些浏览器而做)<br />
#<br />
# 参见http://www.iana.org/assianments/character-sets以取得<br />
# 它们的列表。但是浏览器支持较少。<br />
#<br />
AddCharset GB2312 .gb2312 .gb<br />
AddCharset utf-7 .utf7<br />
AddCharset utf-8 .utf8<br />
AddCharset big5 .big5 .b5<br />
AddCharset EUC-TW .euc-tw<br />
AddCharset EUC-JP .euc-jp<br />
AddCharset EUC-KR .euc-kr<br />
AddCharset shift_jis .sjis</p>
<p>#<br />
# AddType允许你为指定的文件类型添加或覆盖mime.types文件中配置的MIME<br />
#<br />
AddType application/x-tar .tgz<br />
AddType image/x-icon .ico</p>
<p>#<br />
# AddHandler允许你映射确定的文件扩展名到“handlers”:<br />
# 与文件类型无关的行为。这既能编译到服务器中也可以添加到Action指令<br />
# 中（看下面）。<br />
# 为了在ScriptAliased指令指定的以外使用CGI脚本：<br />
#（要使它可用，你还需要在Options中添加“ExecCGI”。<br />
#<br />
# AddHandler cgi-script .cgi</p>
<p>#<br />
# 对于那些包含他们自己的HTTP头的文件<br />
#<br />
# AddHandler send-as-is asis</p>
<p>#<br />
# 对于server-parsed imagemap文件：<br />
#<br />
# AddHandler imap-file map</p>
<p>#<br />
# agemap 文件:<br />
#<br />
#AddHandler imap- 文件映像</p>
<p>#<br />
# 对于类型映像转移资源)<br />
#(这是默认的设定以允许Apache的“It Worked”页能多种语言分发)。<br />
#<br />
AddHandler type-map var</p>
<p>#<br />
# 过滤器允许你在将它发送到客户端前进行处理。<br />
#<br />
# 为了在服务器端分析包含(SSI)的.shtml文档：<br />
# （要执行这个指令，你还需要在Options指令中添加“Includes”。）<br />
#<br />
# AddType text/html .shtml<br />
# AddOutputFilter INCLUDES .shtml</p>
<p>#<br />
# Action让你定义当调用匹配的媒体文件时将要执行的脚本。这将减少<br />
# 那些经常使用的CGI脚本的URL路径名的重复输入。<br />
# 格式：Action media/type /cgi-script/location<br />
# 格式：Action handler-name /cgi-script/location<br />
#</p>
<p>#<br />
# 可配置的错误应答有三种风格：<br />
# 1）plain text 2)local redirects 3) external redirects<br />
#<br />
# 一些示例：<br />
# ErrorDocument 500 &#8220;The server made a boo boo.&#8221;<br />
# ErrorDocument 404 /missing.html<br />
# ErrorDocument 404 &#8220;/cgi-bin/missing_handler.pl&#8221;<br />
# ErrorDocument 402 http://www.example.com/subscription_info.html<br />
#</p>
<p>#<br />
# 综合应用这些指令，我们可以创建一个国际化的出错应答。<br />
#<br />
# 我们使用Alias来重定向任意/error/HTTP_<error>.html.var应答到<br />
# 我们的多语言错误消息集合。使用正确的文本替代它。<br />
#<br />
# 通过加入下面的行，你就能够改变这些消息的显示，而不必改变<br />
# HTTP_<error>.html.var文件。<br />
#<br />
# Alias /error/include/ &#8220;/your/include/path/&#8221;<br />
#<br />
# 以将/usr/local/apache2/error/include/下的文件拷贝到/your/inclue/path/下<br />
# 开始，你可以创建你自己的文件集合，甚至是其于每个虚拟主机的。<br />
# 不管你的ServerSignature如何设置，默认的包含文件将显示你的<br />
# Aapche版本号和你的ServerAdmin邮件地址<br />
#<br />
# 国际化的错误文档需要mod_alias，mod_include和mod_negotiation三个<br />
# 模块。要激活它们，取消下面30行的注释符号</p>
<p># Alias /error/ &#8220;/usr/local/apache2/error/&#8221;<br />
#<br />
# <Directory "/usr/local/apache2/error"><br />
# AllowOverride None<br />
# Options IncludesNoExec<br />
# AddOutputFilter Includes html<br />
# AddHandler type-map var<br />
# Order allow,deny<br />
# Allow from all<br />
# LanguagePriority en de es fr it nl sv<br />
# ForceLanguagePriority Prefer Fallback<br />
# </Directory><br />
#<br />
# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var<br />
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var<br />
ErrorDocument 403 /error.php<br />
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var<br />
# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var<br />
# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var<br />
# ErrorDocument 410 /error/HTTP_GONE.html.var<br />
# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var<br />
# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var<br />
# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var<br />
# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var<br />
# ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var<br />
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var<br />
# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var<br />
# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var<br />
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var<br />
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var</p>
<p>#<br />
# 下面的命令更改标准的HTTP应答行为以处理己知的浏览器问题。<br />
#<br />
BrowserMatch &#8220;Mozilla/2&#8243; nokeepalive<br />
BrowserMatch &#8220;MSIE 4\.0b2;&#8221; nokeepalive downgrade-1.0 force-response-1.0<br />
BrowserMatch &#8220;RealPlayer 4\.0&#8243; force-response-1.0<br />
BrowserMatch &#8220;Java/1\.0&#8243; force-response-1.0<br />
BrowserMatch &#8220;JDK/1\.0&#8243; force-response-1.0</p>
<p>#<br />
# 下面命令关闭对那些没有尾部“/”的目录的非GET请求的重定向，<br />
# 这些命令修复了微软的采用DAV方法不能正确处理重定向的WEB文件夹的问题。<br />
# Apple下的DAV文件系统和Gnome下的VFS对DAV的支持也是采用这样的方法<br />
# 进行处理的。<br />
#<br />
BrowserMatch &#8220;Microsoft Data Access Internet Publishing Provider&#8221; redirect-carefully<br />
BrowserMatch &#8220;^WebDrive&#8221; redirect-carefully<br />
BrowserMatch &#8220;^WebDAVFS/1.[012]&#8221; redirect-carefully<br />
BrowserMatch &#8220;^gnome-vfs&#8221; redirect-carefully</p>
<p>#<br />
# 允许你使用URL：http://servername/server-status来通过mod_status生<br />
# 成并报告服务器状态信息。改变.example.com为你自己的域名。<br />
#<br />
# <Location /server-status><br />
# SetHandler server-status<br />
# Order deny,allow<br />
# Deny from all<br />
# Allow from .example.com<br />
# </Location></p>
<p>#<br />
# 允许使用URL:http://servername/server-info来远程报告服务器配置信息<br />
# （需要mod_info.c支持）。改变“.example.com”为你自己的域名。<br />
#<br />
# <Location /server-info><br />
# SetHandler server-info<br />
# Order deny,allow<br />
# Deny from all<br />
# Allow from .example.com<br />
# </Location></p>
<p>#<br />
# 代理服务器命令，去掉下面的行使代理服务可用。<br />
#<br />
# <IfModule mod_proxy.c><br />
# ProxyRequests On<br />
# <Proxy *><br />
# Order deny,allow<br />
# Deny from all<br />
# Allow from .example.com<br />
# </Proxy></p>
<p>#<br />
# 安装或关闭HTTP/1.1“通道”头处理。<br />
# （“Full”添加服务器版本信息，“Block”移掉所有输出“通道”头信息。<br />
# 可以设为下面各选项之一：Off | On | Full | Block<br />
#<br />
# ProxyVia On</p>
<p># 最好为代理服务安装高速缓冲，去掉下面几行的注释符号：<br />
# （没有CacheRoot则不缓冲）<br />
#<br />
# CacheRoot &#8220;/usr/local/apache2/proxy&#8221;<br />
# CacheSize 5<br />
# CacheGcInterval 4<br />
# CacheMaxExpire 24<br />
# CacheLastModifiedFactor 01<br />
# CacheDefaultExpire 1<br />
# NoCache a-domain.com another-domain.edu joes.garage-sale.com</p>
<p># </IfModule><br />
# 代理命令结束。</p>
<p>#<br />
# 附加的特定模块配置。<br />
#<br />
<IfModule mod_ssl.c><br />
Include conf/ssl.conf<br />
</IfModule></p>
<p>## 第三区：虚拟主机<br />
#<br />
# VirtualHost:你可以通过设置虚拟主机容器以实现在你的主机上保有多个<br />
# 域名/主机名。大多数配置信息只使用基于名字的虚拟主机，因此服务器<br />
# 不必担心IP地址的问题，下面的命令以*号代替虚拟主机名。<br />
#<br />
# 在你试着配置你的虚拟主机以前，请参见<br />
# URL:http://httpd.apache.org/docs-2.0/vhosts/>以取得更多的信息。<br />
#<br />
# 你可以使用命令行选项“-S”来检验你的虚拟主机配置。</p>
<p>#<br />
# 使用基于名字的虚拟主机。<br />
#<br />
# NameVirtualHost *</p>
<p>#<br />
# 虚拟主机示例：<br />
# 几乎所有的Apache命令都可以在虚拟主机容器中使用。<br />
# 第一个虚拟主机区是用于向服务名未知的请求进行应答的配置。<br />
#<br />
# <VirtualHost *><br />
# ServerAdmin webmaster@dummy-host.example.com<br />
# DocumentRoot /www/docs/dummy-host.example.com<br />
# ServerName dummy-host.example.com<br />
# ErrorLog logs/dummy-host.example.com-error_log<br />
# CustomLog logs/dummy-host.example.com-access_log commom<br />
# </virtualHost></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/08/httpdconf-%e4%b8%ad%e6%96%87%e7%89%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syndicate Plugin</title>
		<link>http://www.geoinformatics.cn/2006/08/syndicate-plugin/</link>
		<comments>http://www.geoinformatics.cn/2006/08/syndicate-plugin/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 19:32:35 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/blog/2006080631.html</guid>
		<description><![CDATA[演示看右边的Syndicate   插件下载 首先，下载并解压缩到您的 WordPress 插件，然后在您的 WordPress 中激活该插件就可以了。 在适当的位置中加入以下代码既可.一般是加入到模板Sidebar 这个文件里. [UNKNOWN NODETYPE 7]?>?>?>?>?>]]></description>
			<content:encoded><![CDATA[<p>演示看右边的Syndicate   <a href="http://www.sb123.org/downloads/sem-subscribe-me.zip" target="_blank">插件下载</a></p>
<p>首先，下载并解压缩到您的 WordPress 插件，然后在您的 WordPress 中激活该插件就可以了。<br />
在适当的位置中加入以下代码既可.一般是加入到模板Sidebar 这个文件里.</p>
<p>[UNKNOWN NODETYPE 7]?>?>?>?>?></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/08/syndicate-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>htaccess 学习笔记</title>
		<link>http://www.geoinformatics.cn/2006/08/htaccess-%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0/</link>
		<comments>http://www.geoinformatics.cn/2006/08/htaccess-%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 17:05:47 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/category/blog/2006080629.html</guid>
		<description><![CDATA[转载自Windix Apache的配置文件.htaccess是个难点，也是个重点。一直都没安下心来好好学学，甚至一直以为Redirect方法是属于mod_rewrite，用到的时候也都是糊里糊涂的。今天找到了一个很好的教程，一边学，一边写点心得。 updated: 不断修正一些小问题 Source: Comprehensive guide to .htaccess Officical reference: Directive Quick Reference 1 Introduction 介绍 文件名 .htaccess 属性 644 (RW-R–R–) htaccess会影响它所在目录下的所有子目录 注意大多数内容都要求保持在一行之内，不要换行，否则会引起错误 2 Error Documents 错误文档 Official document: ErrorDocument Directive ErrorDocument code document 例子 ErrorDocument 400 /errors/badrequest.html ErrorDocument 404 http://yoursite/errors/notfound.html ErrorDocument 401 “ Authorization Required ” (注意之后内容如果出现的双引号需要转义为 \”) 常见HTTP状态码 Successful Client Requests 200 [...]]]></description>
			<content:encoded><![CDATA[<p>转载自<a href="http://www.douzi.org/wp/index.php/articles/104" target="_blank">Windix</a><br />
Apache的配置文件.htaccess是个难点，也是个重点。一直都没安下心来好好学学，甚至一直以为Redirect方法是属于mod_rewrite，用到的时候也都是糊里糊涂的。今天找到了一个很好的教程，一边学，一边写点心得。</p>
<p>updated: 不断修正一些小问题</p>
<p>Source: <a href="http://www.javascriptkit.com/howto/htaccess.shtml" target="_blank">Comprehensive guide to .htaccess</a></p>
<p>Officical reference: <a href="http://httpd.apache.org/docs/2.0/mod/quickreference.html" target="_blank">Directive Quick Reference</a></p>
<p>1 Introduction 介绍<br />
文件名 .htaccess 属性 644 (RW-R–R–)<br />
htaccess会影响它所在目录下的所有子目录<br />
注意大多数内容都要求保持在一行之内，不要换行，否则会引起错误</p>
<p>2 Error Documents 错误文档<br />
Official document: <a href="http://httpd.apache.org/docs/2.0/mod/core.html#errordocument" target="_blank">ErrorDocument Directive</a></p>
<p>ErrorDocument code document<br />
例子<br />
ErrorDocument 400 /errors/badrequest.html<br />
ErrorDocument 404 http://yoursite/errors/notfound.html<br />
ErrorDocument 401 “</p>
<h1>Authorization Required</h1>
<p>”<br />
(注意之后内容如果出现的双引号需要转义为 \”)</p>
<p>常见HTTP状态码</p>
<p>Successful Client Requests</p>
<p>200 OK<br />
201 Created<br />
202 Accepted<br />
203 Non-Authorative Information<br />
204 No Content<br />
205 Reset Content<br />
206 Partial Content</p>
<p>Client Request Redirected</p>
<p>300 Multiple Choices<br />
301 Moved Permanently<br />
302 Moved Temporarily<br />
303 See Other<br />
304 Not Modified<br />
305 Use Proxy</p>
<p>Client Request Errors</p>
<p>400 Bad Request<br />
401 Authorization Required<br />
402 Payment Required (not used yet)<br />
403 Forbidden<br />
404 Not Found<br />
405 Method Not Allowed<br />
406 Not Acceptable (encoding)<br />
407 Proxy Authentication Required<br />
408 Request Timed Out<br />
409 Conflicting Request<br />
410 Gone<br />
411 Content Length Required<br />
412 Precondition Failed<br />
413 Request Entity Too Long<br />
414 Request URI Too Long<br />
415 Unsupported Media Type</p>
<p>Server Errors</p>
<p>500 Internal Server Error<br />
501 Not Implemented<br />
502 Bad Gateway<br />
503 Service Unavailable<br />
504 Gateway Timeout<br />
505 HTTP Version Not Supported</p>
<p>3 Password Protection 密码保护<br />
Official document: Authentication, Authorization and Access Control</p>
<p>假设密码文件为.htpasswd</p>
<p>AuthUserFile /usr/local/safedir/.htpasswd (这里必须使用全路径名)<br />
AuthName EnterPassword<br />
AuthType Basic</p>
<p>两种常见验证方式:<br />
Require user windix<br />
(仅允许用户windix登陆)<br />
Require valid-user<br />
(所有合法用户都可登陆)</p>
<p>Tip: 如何生成密码文件<br />
使用htpasswd命令(apache自带)</p>
<p>第一次生成需要创建密码文件<br />
htpasswd -c .htpasswd user1</p>
<p>之后增加新用户<br />
htpasswd .htpasswd user2</p>
<p>4 Enabling SSI Via htaccess 通过htaccess允许SSI(Server Side Including)功能<br />
AddType text/html .shtml<br />
AddHandler server-parsed .shtml<br />
Options Indexes FollowSymLinks Includes</p>
<p>DirectoryIndex index.shtml index.html</p>
<p>5 Blocking users by IP 根据IP阻止用户访问<br />
order allow,deny<br />
deny from 123.45.6.7<br />
deny from 12.34.5. (整个C类地址)<br />
allow from all</p>
<p>6 Blocking users/sites by referrer 根据referrer阻止用户/站点访问<br />
需要mod_rewrite模块</p>
<p>例1. 阻止单一referrer: badsite.com<br />
RewriteEngine on<br />
# Options +FollowSymlinks<br />
RewriteCond %{HTTP_REFERER} badsite\.com [NC]<br />
RewriteRule .* &#8211; [F]</p>
<p>例2. 阻止多个referrer: badsite1.com, badsite2.com<br />
RewriteEngine on<br />
# Options +FollowSymlinks<br />
RewriteCond %{HTTP_REFERER} badsite1\.com [NC,OR]<br />
RewriteCond %{HTTP_REFERER} badsite2\.com<br />
RewriteRule .* &#8211; [F]</p>
<p>[NC] &#8211; 大小写不敏感(Case-insensite)<br />
[F] &#8211; 403 Forbidden</p>
<p>注意以上代码注释掉了”Options +FollowSymlinks”这个语句。如果服务器未在 httpd.conf 的 段落设置 FollowSymLinks, 则需要加上这句，否则会得到”500 Internal Server error”错误。</p>
<p>7 Blocking bad bots and site rippers (aka offline browsers) 阻止坏爬虫和离线浏览器<br />
需要mod_rewrite模块</p>
<p>坏爬虫? 比如一些抓垃圾email地址的爬虫和不遵守robots.txt的爬虫(如baidu?)<br />
可以根据 HTTP_USER_AGENT 来判断它们<br />
(但是还有更无耻的如”中搜 zhongsou.com”之流把自己的agent设置为 “Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)” 太流氓了，就无能为力了)</p>
<p>RewriteEngine On<br />
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]<br />
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]<br />
RewriteCond %{HTTP_USER_AGENT} ^Zeus<br />
RewriteRule ^.* &#8211; [F,L]</p>
<p>[F] &#8211; 403 Forbidden<br />
[L] &#8211; ?</p>
<p>8 Change your default directory page 改变缺省目录页面<br />
DirectoryIndex index.html index.php index.cgi index.pl</p>
<p>9 Redirects 转向<br />
单个文件<br />
Redirect /old_dir/old_file.html http://yoursite.com/new_dir/new_file.html</p>
<p>整个目录<br />
Redirect /old_dir http://yoursite.com/new_dir</p>
<p>效果: 如同将目录移动位置一样<br />
http://yoursite.com/old_dir -> http://yoursite.com/new_dir<br />
http://yoursite.com/old_dir/dir1/test.html -> http://yoursite.com/new_dir/dir1/test.html</p>
<p>Tip: 使用用户目录时Redirect不能转向的解决方法</p>
<p>当你使用Apache默认的用户目录，如 http://mysite.com/~windix，当你想转向 http://mysite.com/~windix/jump时，你会发现下面这个Redirect不工作:<br />
Redirect /jump http://www.google.com</p>
<p>正确的方法是改成<br />
Redirect /~windix/jump http://www.google.com</p>
<p>(source: .htaccess Redirect in “Sites” not redirecting: why?)</p>
<p>10 Prevent viewing of .htaccess file 防止.htaccess文件被查看</p>
<p>order allow,deny<br />
deny from all</p>
<p>11 Adding MIME Types 添加 MIME 类型<br />
AddType application/x-shockwave-flash swf</p>
<p>Tips: 设置类型为 application/octet-stream 将提示下载</p>
<p>12 Preventing hot linking of images and other file types 防盗链<br />
需要mod_rewrite模块</p>
<p>RewriteEngine on<br />
RewriteCond %{HTTP_REFERER} !^$<br />
RewriteCond %{HTTP_REFERER} !^http://(www/\.)?mydomain.com/.*$ [NC]<br />
RewriteRule \.(gif|jpg|js|css)$ &#8211; [F]</p>
<p>解析:<br />
若 HTTP_REFERER 非空 (来源为其他站点，非直接连接) 并且<br />
若 HTTP_REFERER 非(www.)mydomain.com开头(忽略大小写[NC]) (来源非本站)<br />
对于所有含有 .gif/.jpg/.js/.css 结尾的文件给出 403 Forbidden 错误[F]</p>
<p>也可指定响应，如下例显示替换图片</p>
<p>RewriteRule \.(gif|jpg)$ http://www.mydomain.com/angry.gif [R,L]</p>
<p>[R] &#8211; 转向(Redirect)<br />
[L] &#8211; 连接(Link)</p>
<p>13 Preventing Directory Listing 防止目录列表时显示<br />
IndexIgnore *</p>
<p>IndexIgnore *.jpg *.gif</p>
<p>Tips:<br />
允许目录列表显示: Options +Indexes<br />
禁止牧师列表显示: Options -Indexes<br />
显示提示信息: 页首 文件HEADER, 页尾 文件README</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/08/htaccess-%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache的rewrite技术</title>
		<link>http://www.geoinformatics.cn/2006/08/apache%e7%9a%84rewrite%e6%8a%80%e6%9c%af/</link>
		<comments>http://www.geoinformatics.cn/2006/08/apache%e7%9a%84rewrite%e6%8a%80%e6%9c%af/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 15:32:04 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/blog/27.html</guid>
		<description><![CDATA[做PHP项目中需要用到URL重定向技术，基本上的需求就是把比如 /user/heiyeluren 重定向到 /user.php?uid=heiyeluren 之类的URL上，当然，你也可以把 /article/200707291011.html重定向到 /article.php?id=200507291011 之类的，模拟好像是静态页面，能够隐藏URL真实地址，有助于雨鞋基本的安全防范等等。那么好像rewrite是个很好的解决办法。 要在Apache里运行rewrite的话，必须先安装mod_rewrite的组件，就是一个mod_rewrite.c文件，然后必须在./configure的时候要放上mod_rewrite就能安装。 一般配置rewrite的话，可以在httpd.conf里面配置，也能在网页当前目录的.htaccess文件里进行定义来决定重定向去那个文件，那样的话，就非常具有灵活性了，同样也能够适合虚拟主机用户来做。 我们看一个.htaccess文件的例子： 1 2 RewriteEngine On 3 RewriteBase / 4 RewriteCond %{REQUEST_FILENAME} -f [OR] 5 RewriteCond %{REQUEST_FILENAME} -d 6 RewriteRule ^.*$ &#8211; [S=42] 7 8 #RewriteRule ^share/$ /share.php [QSA,L] 9 RewriteRule ^tag/([^/]+)/?$ /user_tags.php?tag=$1 [QSA,L] 10 RewriteRule ^city/([^/]+)/?$ /user_city.php?tag=$1 [QSA,L] 11 #RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&#038;s=1&#038;selTime=$2 [QSA,L] 12 #RewriteRule [...]]]></description>
			<content:encoded><![CDATA[<p>做PHP项目中需要用到URL重定向技术，基本上的需求就是把比如 /user/heiyeluren 重定向到 /user.php?uid=heiyeluren 之类的URL上，当然，你也可以把 /article/200707291011.html重定向到 /article.php?id=200507291011 之类的，模拟好像是静态页面，能够隐藏URL真实地址，有助于雨鞋基本的安全防范等等。那么好像rewrite是个很好的解决办法。</p>
<p>要在Apache里运行rewrite的话，必须先安装mod_rewrite的组件，就是一个mod_rewrite.c文件，然后必须在./configure的时候要放上mod_rewrite就能安装。<br />
一般配置rewrite的话，可以在httpd.conf里面配置，也能在网页当前目录的.htaccess文件里进行定义来决定重定向去那个文件，那样的话，就非常具有灵活性了，同样也能够适合虚拟主机用户来做。</p>
<p>我们看一个.htaccess文件的例子：</p>
<p>1 <IfModule mod_rewrite.c><br />
2 RewriteEngine On<br />
3 RewriteBase /<br />
4 RewriteCond %{REQUEST_FILENAME} -f [OR]<br />
5 RewriteCond %{REQUEST_FILENAME} -d<br />
6 RewriteRule ^.*$ &#8211; [S=42]<br />
7<br />
8 #RewriteRule ^share/$ /share.php [QSA,L]<br />
9 RewriteRule ^tag/([^/]+)/?$ /user_tags.php?tag=$1 [QSA,L]<br />
10 RewriteRule ^city/([^/]+)/?$ /user_city.php?tag=$1 [QSA,L]<br />
11 #RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&#038;s=1&#038;selTime=$2 [QSA,L]<br />
12 #RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&#038;s=1&#038;selTime=$2 [QSA,L]<br />
13<br />
14 RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&#038;s=1&#038;selTime=$2 [QSA,L]<br />
15 RewriteRule ^([^/]+)/week/([^/]+)/?$ /user_share.php?id=$1&#038;s=2&#038;selTime=$2 [QSA,L]<br />
16 RewRiteRule ^([^/]+)/month/([^/]+)/?$ /user_share.php?id=$1&#038;s=3&#038;selTime=$2 [QSA,L]<br />
17<br />
18 RewriteRule ^([^/]+)/day/?$ /user_share.php?id=$1&#038;s=1    [QSA,L]<br />
19 RewriteRule ^([^/]+)/week/?$ /user_share.php?id=$1&#038;s=2   [QSA,L]<br />
20 RewriteRule ^([^/]+)/month/?$ /user_share.php?id=$1&#038;s=3  [QSA,L]<br />
21<br />
22 RewriteRule ^([^/]+)/?$ /user_share.php?id=$1    [QSA,L]<br />
23 </IfModule></p>
<p>比较长吧，我们就简单关注一下关键的内容。<IfModule></IfModule>之间就是定义的内容，RewriteEngine就是确定是否运行URL重写功能，RewriteBase就是基本的路径是什么，最关键的就是下面的RewriteRule，就是我们需要重写的规则了，这里应用了兼容Perl规则的正则表达式：</p>
<p>Text:<br />
.           匹配任意单个字符<br />
[chars]     匹配当前字符<br />
[^chars]    不匹配当前字符<br />
text1|text2 包含text1或者text2任何一个</p>
<p>Quantifiers:<br />
?           零个或者一个?号前的字符<br />
*           零个或者任意个任意长度的任意字符<br />
+           一个或者任意个任意长度的字符</p>
<p>Grouping:<br />
(text)      Grouping of text<br />
(either to set the borders of an alternative or<br />
for making backreferences where the Nth group can<br />
be used on the RHS of a RewriteRule with $N)</p>
<p>Anchors:<br />
^           匹配内容开始标记<br />
$           匹配内容结束标记</p>
<p>Escaping:<br />
\char       使用\来进行特殊字符的转义，包括&#8221;.[]()&#8221;等字符的转义</p>
<p>基本规则如上，比如下面的正则表达式：^/([^/]+)/~([^/]+)/(.*)$ 就是能够匹配象 /Language/~ Realname/&#8230;/File 这样的路径。</p>
<p>那么从这个角度去看上面的内容就比较容易理解了。我们简单看一下RewriteRule指令的规则：<br />
RewriteRule   访问的路径    需要指向的真实路径<br />
这样就很清楚了，比如说我要把/user/heiyeluren重定向到/user.php?uid=heiyeluren那么我的规则就必须这样：<br />
RewriteRule ^user/([^/]+)$  ^/user.php?uid=$2 [QSA,L]</p>
<p>举一反三，就很容易理解规则如何去写，也就能够理解上面规则脚本的内容了。</p>
<p>没有清楚的，请参考附上的链接，更深入的了解具体内容。写的不好请见谅。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/08/apache%e7%9a%84rewrite%e6%8a%80%e6%9c%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器间传递地图</title>
		<link>http://www.geoinformatics.cn/2006/05/%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%97%b4%e4%bc%a0%e9%80%92%e5%9c%b0%e5%9b%be/</link>
		<comments>http://www.geoinformatics.cn/2006/05/%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%97%b4%e4%bc%a0%e9%80%92%e5%9c%b0%e5%9b%be/#comments</comments>
		<pubDate>Sat, 20 May 2006 15:26:36 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WebGIS]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/2006081151.html</guid>
		<description><![CDATA[呵呵，今天终于搞定了。其实没有什么的。TerraServer没有提供图像名称的API，所以就不能读取。自己把从远程服务的图像，转给本地，然后给它个名称。Ajax可以调用该远程图像。。呵呵，终于把Ajax引擎用到了我的地图设计之上。 [UNKNOWN NODETYPE 7]?>?>?>?>?> $im = imagecreatefromjpeg(&#8216;http://terraservice.net/ogcmap.ashx? version=1.1.1&#038;request=GetMap&#038;Layers=UrbanArea&#038;Styles=&#038;SRS=EPSG:26910 &#038;BBOX=547900,4183900,549500,4185500&#038;width=700&#038;height=700&#038;format=image/jpeg&#8217;); Header(&#8216;Content-type: image/png&#8217;); Imagejpeg($im, &#8216;baseimage.jpg&#8217;); ?>]]></description>
			<content:encoded><![CDATA[<p>呵呵，今天终于搞定了。其实没有什么的。TerraServer没有提供图像名称的API，所以就不能读取。自己把从远程服务的图像，转给本地，然后给它个名称。Ajax可以调用该远程图像。。呵呵，终于把Ajax引擎用到了我的地图设计之上。<br />
[UNKNOWN NODETYPE 7]?>?>?>?>?>  $im = imagecreatefromjpeg(&#8216;http://terraservice.net/ogcmap.ashx?<br />
version=1.1.1&#038;request=GetMap&#038;Layers=UrbanArea&#038;Styles=&#038;SRS=EPSG:26910<br />
&#038;BBOX=547900,4183900,549500,4185500&#038;width=700&#038;height=700&#038;format=image/jpeg&#8217;);<br />
Header(&#8216;Content-type: image/png&#8217;);<br />
Imagejpeg($im, &#8216;baseimage.jpg&#8217;);<br />
?></p>
<p><img src="/baseimage.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/05/%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%97%b4%e4%bc%a0%e9%80%92%e5%9c%b0%e5%9b%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浅谈PHP开发团队的管理之道</title>
		<link>http://www.geoinformatics.cn/2006/05/%e6%b5%85%e8%b0%88php%e5%bc%80%e5%8f%91%e5%9b%a2%e9%98%9f%e7%9a%84%e7%ae%a1%e7%90%86%e4%b9%8b%e9%81%93/</link>
		<comments>http://www.geoinformatics.cn/2006/05/%e6%b5%85%e8%b0%88php%e5%bc%80%e5%8f%91%e5%9b%a2%e9%98%9f%e7%9a%84%e7%ae%a1%e7%90%86%e4%b9%8b%e9%81%93/#comments</comments>
		<pubDate>Mon, 01 May 2006 17:21:08 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Teamwork]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/2006081163.html</guid>
		<description><![CDATA[最近想搞一个php开发团队，不知道这篇文章是否有所借鉴。[转载自华军网] 看了标题，也许很多程序员会反感的说：“程序员的做人问题先不用谈，你想出来这个标题，那你做人是不是有问题吧！” 笔者本人并不反驳这样的说法，每个人都有自己的做人原则。法国人的那句俗话说的好：“我不苟同你的思想，但是我绝对捍卫你思想的自由”。 是，这是站在个人的立场上可以那么说。但是如果站在一个团队的立场上呢？一切不尽然了！ 无论马拉车的原理也好，还是木桶原理也好，西方人整出来那些比喻确实是值得赞赏的。但是个人认为还是欠缺一些！ 其实作为一个完整的团队，有几个出类拔萃的技术人才是非常必要的。技术团队在技术上必须要有阶梯，否则对于一手抓金钱，一手抓发展的程序员而言，抓不住他的心啊！所以说，这些西方人的东西放到政治中，或者下放到没有什么研发必要，只是熟练工的环境中，是必须的，必要的。但是在技术团队中，并不是最优的。 引导一个正确的技术方向，对于整个团队的发展及壮大有举足轻重的必要。既然今天主要谈PHP，那么班门弄斧的多说2句PHP的东西。 首先要规范大家编码习惯，采取拿来主义就可以了！ 数据库层建议全部使用ADODB的数据库类，以尽量减少程序员直接写SQL语句的可能性为目的。这对于以后数据库移植及本身的安全都有好处，最关键的还是规范大家的书写习惯。虽然很多人抱怨效率不太好，但是笔者始终认为一个稳定高于效率、个人必须服从团。如果还抱怨效率问题，那加个CPU，换上2GB的内存。不知道抱怨的主儿，是否不用ADODB写出的代码比加个CPU还要快？ 数据库建议还是使用MYSQL吧！ 起码要4.1以上的版本。支持事务是非常有必要的。 采用MYSQL的原因有很多。第一：兼容性好；第二：功能相对完善；第三：容易配置；第四：支持开源。MYSQL5，这里就不多说了。因为国内程序员开发依然以MYSQL4+PHP4为主，笔者不想给团队造成开发成果不兼容的现象。 Apache是笔者坚决的选择。从国际市场占有率62%就知道了：）安全，高效的突出特点无疑是IIS无法企及的。虽然最近WINDOWS2003 SERVER抢占了一些市场分额，但是依然难以撼动Apache的地位。这中间还有一个更主要的角色，那就是LIUNX。 这里不过多讨论LIUNX了，但是作为一个好的PHP程序员，如果他一点都不了解LIUNX，那无疑也是郁闷的事情。笔者用自己的情况可以大概说说：几年前，笔者开发一个LIUNX虚拟主机的管理软件，拿到需求后，就做技术方案的可行性分析，发现涉及大量的对MYSQL数据库及APACHE的操作，如何完成这些操作呢？这其中要求你必须对LIUNX系统有一定的了解，否则项目根本无法进行！当然还有很多例子，例如PHP的负载均衡解决方案；数据库双备份方案…&#8230;太多了。 PHP依然以4.0版本为主要开发工具，但是起码需要掌握SMARTY。逻辑业务和页面是必须要分离的。在这里要尤其谈到PEAR。 这里还是有人提出执行效率的问题。笔者依然强调，那个不是问题。PEAR也有自己的数据库类。程序员完全可以考虑和ADODB交换使用，无所谓了。看个人的开发嗜好。 但是PEAR丰富的类库，让笔者垂涎三尺啊：） 提到PHP。不能不说说ZEND。 ZEND是好人啊！ 没有ZEND就没有PHP的今天，那么大家也就没有了今天的饭碗，今天的这篇文字。 ZEND 的系列工具及解决方案都是每个PHP程序员必须去理解的。 起码在一个团队中，ZEND STUDIO 应该能被熟练的运用，这对项目的管理及开发都有深远的意义。ZEND 系列产品有版本管理，代码优化，代码加密等等优秀功能举不胜举。这里不多说的。大家有机会可以去http://www.phpchina.cn 或 http://www.zend.com 去自己看。 最后说到SVN或CVS做版本管理，那也是必不可少的。为什么还用说吗？ 最后总结下来，无非就是编码的规范和统一。从技术上获得了思想的统一，大家在协作开发的时候才能心有灵犀，才能事半功倍。没有一个程序员会使用自己不感冒的开发工具去做出赏心悦目的作品来的！ 对于团队的管理，具体下来还是对人的管理。程序员无非要2种东西，钱和发展。 控制好给予的量，是整个团队是否能和谐的关键！ 落后的要扶起来，太冒进了要压下去。你保护的是大家的利益，而不是某个人的利益。公平，公正才是一个管理者必须掌握的。 至于私下的交情，要学会通融和谅解，但是一旦事情进入程序中，也就是说一旦提到一定高度的时候，就必须要放弃私情而寻大义了。 好了，以上是在管理者的角度去谈了很多团队的管理问题。基本上是自己的一些理解和想法。]]></description>
			<content:encoded><![CDATA[<p>最近想搞一个php开发团队，不知道这篇文章是否有所借鉴。[转载自华军网]</p>
<p>看了标题，也许很多程序员会反感的说：“程序员的做人问题先不用谈，你想出来这个标题，那你做人是不是有问题吧！”<br />
笔者本人并不反驳这样的说法，每个人都有自己的做人原则。法国人的那句俗话说的好：“我不苟同你的思想，但是我绝对捍卫你思想的自由”。 是，这是站在个人的立场上可以那么说。但是如果站在一个团队的立场上呢？一切不尽然了！</p>
<p>无论马拉车的原理也好，还是木桶原理也好，西方人整出来那些比喻确实是值得赞赏的。但是个人认为还是欠缺一些！ 其实作为一个完整的团队，有几个出类拔萃的技术人才是非常必要的。技术团队在技术上必须要有阶梯，否则对于一手抓金钱，一手抓发展的程序员而言，抓不住他的心啊！所以说，这些西方人的东西放到政治中，或者下放到没有什么研发必要，只是熟练工的环境中，是必须的，必要的。但是在技术团队中，并不是最优的。</p>
<p>引导一个正确的技术方向，对于整个团队的发展及壮大有举足轻重的必要。既然今天主要谈PHP，那么班门弄斧的多说2句PHP的东西。</p>
<p>首先要规范大家编码习惯，采取拿来主义就可以了！<span id="more-63"></span></p>
<p>数据库层建议全部使用ADODB的数据库类，以尽量减少程序员直接写SQL语句的可能性为目的。这对于以后数据库移植及本身的安全都有好处，最关键的还是规范大家的书写习惯。虽然很多人抱怨效率不太好，但是笔者始终认为一个稳定高于效率、个人必须服从团。如果还抱怨效率问题，那加个CPU，换上2GB的内存。不知道抱怨的主儿，是否不用ADODB写出的代码比加个CPU还要快？</p>
<p>数据库建议还是使用MYSQL吧！ 起码要4.1以上的版本。支持事务是非常有必要的。</p>
<p>采用MYSQL的原因有很多。第一：兼容性好；第二：功能相对完善；第三：容易配置；第四：支持开源。MYSQL5，这里就不多说了。因为国内程序员开发依然以MYSQL4+PHP4为主，笔者不想给团队造成开发成果不兼容的现象。</p>
<p>Apache是笔者坚决的选择。从国际市场占有率62%就知道了：）安全，高效的突出特点无疑是IIS无法企及的。虽然最近WINDOWS2003 SERVER抢占了一些市场分额，但是依然难以撼动Apache的地位。这中间还有一个更主要的角色，那就是LIUNX。 这里不过多讨论LIUNX了，但是作为一个好的PHP程序员，如果他一点都不了解LIUNX，那无疑也是郁闷的事情。笔者用自己的情况可以大概说说：几年前，笔者开发一个LIUNX虚拟主机的管理软件，拿到需求后，就做技术方案的可行性分析，发现涉及大量的对MYSQL数据库及APACHE的操作，如何完成这些操作呢？这其中要求你必须对LIUNX系统有一定的了解，否则项目根本无法进行！当然还有很多例子，例如PHP的负载均衡解决方案；数据库双备份方案…&#8230;太多了。<br />
PHP依然以4.0版本为主要开发工具，但是起码需要掌握SMARTY。逻辑业务和页面是必须要分离的。在这里要尤其谈到PEAR。 这里还是有人提出执行效率的问题。笔者依然强调，那个不是问题。PEAR也有自己的数据库类。程序员完全可以考虑和ADODB交换使用，无所谓了。看个人的开发嗜好。</p>
<p>但是PEAR丰富的类库，让笔者垂涎三尺啊：）</p>
<p>提到PHP。不能不说说ZEND。</p>
<p>ZEND是好人啊！ 没有ZEND就没有PHP的今天，那么大家也就没有了今天的饭碗，今天的这篇文字。</p>
<p>ZEND 的系列工具及解决方案都是每个PHP程序员必须去理解的。</p>
<p>起码在一个团队中，ZEND STUDIO 应该能被熟练的运用，这对项目的管理及开发都有深远的意义。ZEND 系列产品有版本管理，代码优化，代码加密等等优秀功能举不胜举。这里不多说的。大家有机会可以去http://www.phpchina.cn 或 http://www.zend.com 去自己看。</p>
<p>最后说到SVN或CVS做版本管理，那也是必不可少的。为什么还用说吗？</p>
<p>最后总结下来，无非就是编码的规范和统一。从技术上获得了思想的统一，大家在协作开发的时候才能心有灵犀，才能事半功倍。没有一个程序员会使用自己不感冒的开发工具去做出赏心悦目的作品来的！<br />
对于团队的管理，具体下来还是对人的管理。程序员无非要2种东西，钱和发展。</p>
<p>控制好给予的量，是整个团队是否能和谐的关键！ 落后的要扶起来，太冒进了要压下去。你保护的是大家的利益，而不是某个人的利益。公平，公正才是一个管理者必须掌握的。</p>
<p>至于私下的交情，要学会通融和谅解，但是一旦事情进入程序中，也就是说一旦提到一定高度的时候，就必须要放弃私情而寻大义了。</p>
<p>好了，以上是在管理者的角度去谈了很多团队的管理问题。基本上是自己的一些理解和想法。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/05/%e6%b5%85%e8%b0%88php%e5%bc%80%e5%8f%91%e5%9b%a2%e9%98%9f%e7%9a%84%e7%ae%a1%e7%90%86%e4%b9%8b%e9%81%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>国内的PHP发展真快！zz</title>
		<link>http://www.geoinformatics.cn/2006/02/%e5%9b%bd%e5%86%85%e7%9a%84php%e5%8f%91%e5%b1%95%e7%9c%9f%e5%bf%ab%ef%bc%81zz/</link>
		<comments>http://www.geoinformatics.cn/2006/02/%e5%9b%bd%e5%86%85%e7%9a%84php%e5%8f%91%e5%b1%95%e7%9c%9f%e5%bf%ab%ef%bc%81zz/#comments</comments>
		<pubDate>Sat, 18 Feb 2006 15:30:21 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/index.php/category/php/2006021879.html</guid>
		<description><![CDATA[记得2002年刚上网的时候，找个php文章系统都找不到，论坛也只有vb，phpbb几个国外的比较流行，而现在呢，php程序多的都数不清了，而且大部分都很强大，不知道用哪个好。 先说说php论坛吧，现在已经形成了三足鼎立的局面：discuz，phpwind，molyx，国外的phpbb，vb，ipb逐渐淡出市场。akkc，celeste也渐渐无人问津，discuz、phpwind、molyx都是专门为中国人定制的，默认就有积分，精华，收藏夹等功能，现在连blog都加上了，国人都喜欢功能强大的论坛，特别是那些娱乐论坛，都想把论坛弄成一个社区，整天加插件，把论坛装扮的花花绿绿的。在娱乐插件方面，那些国外的论坛望尘莫及，像phpbb默认连附件功能都没有。discuz、phpwind、molyx都走上了一条正规发展道路，免费版和商业版并发，都形成了自己的特色，discuz稳定，phpwind快速，molyx规范，官方论坛讨论的人多，出了问题很容易解决。vb和ipb都开始商业化，phpbb满足不了国人的功能需求，同时现在网络商业味太重，很少人去搞免费的汉化了，而且国外的程序对中文用户的技术支持跟不上，功能再强大也无法和国产三大论坛竞争了。 伴随着论坛程序的更新换代，国内的php CMS发展更迅速，2002年我找不到免费的php文章系统，虽然有个商业的inews，但用户太少，技术支持太差，没人敢问津。2003年有幸出了个phparticle，让很多人欣喜若狂，2003年10月，准备了一年的IWPC 2.2发布，短短几个月就赢得了不少用户。2004年初，用phparticle的网站有数千个，很多人等着3.0商业版的发布，但作者的开发速度太慢，让很多人对phparticle失去了希望。2004年是国内php cms成长最快的一年，老牌的inews也开始浮出水面，3.0一下跳到了4.0。2004年4月份，号称“国内最强的cms&#8221;：icms开始大势宣传，让很多人趋之若鹜。7月份，沉寂了几个月的iwpc突然更新换代，功能和效率都番了几番，程序也改名为cmsware，成了icms的有力对手。同时，一直沉默的帝国新闻系统(ecms)2.0也在这个月发布，功能有了突飞猛进的增长。10月份，一直走高端路线的xplus也推出了自己的第二代产品：cmsez，开始走向大众化。在这个月，一个不为人所知的开源产品dedecms v0.8发布，短短几个月，这个程序现在已经成为php免费cms里最流行的程序。2004年还有一些其他php 新闻系统在不段前进，比如博库CMS，9466Article，冰山cms等，由于和这些作者不熟，这里就不介绍了。 2005到现在为止国内只出了两个新的php cms，一个是3月份发布的9466的换代产品phpcms，一个是5月1日发布的ss-cms。 目前看来，免费市场里dedecms渐渐成为主流，商业程序里cmsware和ecms成为竞争对手，CMSware 2.5和 ecms 3.5都已经进入了最后的开发期，两个系统都已经成为全能的cms，强大的自定义字段功能可以用来做任何类型的网站了。Ecms同时推出有限制的免费版，发展势头很不错；Cmsez继续立足高端市场，适合做傻瓜化的综合性网站；inews还是那么低调，主要为几个固定的大型客户服务； icms团队已经解散，逐渐销声匿迹，留下一个骗子的名声；UltraCMS主要面对企业。 介绍了这么多，我们最不能忘记的是这些php程序员，是他们让php这种单一的脚本语言有了新的活力，看看国外那些单调的程序你就知道我们国家的php技术已经到了什么水平。 国内的php目前缺少的不是技术，是缺少php自由，共享的精神，程序员缺少团队合作，都单枪匹马干，也很少去和别人分享自己的一些心得，造成这种情况都是因为有一些卑劣的人在破坏着行业规矩，拿别人写的程序改头换面当作自己的，有的甚至拿去卖钱，所以开源程序少，商业程序必加密，程序员不敢放出自己的代码和别人分享，形成了现在这种闭关自守的局面。 不写了，再写就有人要扔砖头了，没人愿意听一个php菜鸟在这里发牢骚.]]></description>
			<content:encoded><![CDATA[<p>记得2002年刚上网的时候，找个php文章系统都找不到，论坛也只有vb，phpbb几个国外的比较流行，而现在呢，php程序多的都数不清了，而且大部分都很强大，不知道用哪个好。</p>
<p>先说说php论坛吧，现在已经形成了三足鼎立的局面：discuz，phpwind，molyx，国外的phpbb，vb，ipb逐渐淡出市场。akkc，celeste也渐渐无人问津，discuz、phpwind、molyx都是专门为中国人定制的，默认就有积分，精华，收藏夹等功能，现在连blog都加上了，国人都喜欢功能强大的论坛，特别是那些娱乐论坛，都想把论坛弄成一个社区，整天加插件，把论坛装扮的花花绿绿的。在娱乐插件方面，那些国外的论坛望尘莫及，像phpbb默认连附件功能都没有。discuz、phpwind、molyx都走上了一条正规发展道路，免费版和商业版并发，都形成了自己的特色，discuz稳定，phpwind快速，molyx规范，官方论坛讨论的人多，出了问题很容易解决。vb和ipb都开始商业化，phpbb满足不了国人的功能需求，同时现在网络商业味太重，很少人去搞免费的汉化了，而且国外的程序对中文用户的技术支持跟不上，功能再强大也无法和国产三大论坛竞争了。</p>
<p>伴随着论坛程序的更新换代，国内的php CMS发展更迅速，2002年我找不到免费的php文章系统，虽然有个商业的inews，但用户太少，技术支持太差，没人敢问津。2003年有幸出了个phparticle，让很多人欣喜若狂，2003年10月，准备了一年的IWPC 2.2发布，短短几个月就赢得了不少用户。2004年初，用phparticle的网站有数千个，很多人等着3.0商业版的发布，但作者的开发速度太慢，让很多人对phparticle失去了希望。2004年是国内php cms成长最快的一年，老牌的inews也开始浮出水面，3.0一下跳到了4.0。2004年4月份，号称“国内最强的cms&#8221;：icms开始大势宣传，让很多人趋之若鹜。7月份，沉寂了几个月的iwpc突然更新换代，功能和效率都番了几番，程序也改名为cmsware，成了icms的有力对手。同时，一直沉默的帝国新闻系统(ecms)2.0也在这个月发布，功能有了突飞猛进的增长。10月份，一直走高端路线的xplus也推出了自己的第二代产品：cmsez，开始走向大众化。在这个月，一个不为人所知的开源产品dedecms v0.8发布，短短几个月，这个程序现在已经成为php免费cms里最流行的程序。2004年还有一些其他php 新闻系统在不段前进，比如博库CMS，9466Article，冰山cms等，由于和这些作者不熟，这里就不介绍了。</p>
<p>2005到现在为止国内只出了两个新的php cms，一个是3月份发布的9466的换代产品phpcms，一个是5月1日发布的ss-cms。</p>
<p>目前看来，免费市场里dedecms渐渐成为主流，商业程序里cmsware和ecms成为竞争对手，CMSware 2.5和 ecms 3.5都已经进入了最后的开发期，两个系统都已经成为全能的cms，强大的自定义字段功能可以用来做任何类型的网站了。Ecms同时推出有限制的免费版，发展势头很不错；Cmsez继续立足高端市场，适合做傻瓜化的综合性网站；inews还是那么低调，主要为几个固定的大型客户服务； icms团队已经解散，逐渐销声匿迹，留下一个骗子的名声；UltraCMS主要面对企业。</p>
<p>介绍了这么多，我们最不能忘记的是这些php程序员，是他们让php这种单一的脚本语言有了新的活力，看看国外那些单调的程序你就知道我们国家的php技术已经到了什么水平。</p>
<p>国内的php目前缺少的不是技术，是缺少php自由，共享的精神，程序员缺少团队合作，都单枪匹马干，也很少去和别人分享自己的一些心得，造成这种情况都是因为有一些卑劣的人在破坏着行业规矩，拿别人写的程序改头换面当作自己的，有的甚至拿去卖钱，所以开源程序少，商业程序必加密，程序员不敢放出自己的代码和别人分享，形成了现在这种闭关自守的局面。</p>
<p>不写了，再写就有人要扔砖头了，没人愿意听一个php菜鸟在这里发牢骚.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2006/02/%e5%9b%bd%e5%86%85%e7%9a%84php%e5%8f%91%e5%b1%95%e7%9c%9f%e5%bf%ab%ef%bc%81zz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

