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

<channel>
	<title>一个程序猿 &#187; MYSQL</title>
	<atom:link href="http://www.sunboyu.cn/category/original/mysql-original/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sunboyu.cn</link>
	<description>时光不会倒流,脚步总要前进</description>
	<lastBuildDate>Tue, 27 Jul 2010 06:24:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>撞在墙上的一个思路</title>
		<link>http://www.sunboyu.cn/2010/01/16/%e6%92%9e%e5%9c%a8%e5%a2%99%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e6%80%9d%e8%b7%af.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/16/%e6%92%9e%e5%9c%a8%e5%a2%99%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e6%80%9d%e8%b7%af.shtml#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:59:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1159</guid>
		<description><![CDATA[今天一天没干别的，没写程序，没玩游戏，除了中午参加公司的一个吹气球比赛得了第一，获得“**公司第一吹”的称号。
一天都在考虑使用完全开源的方案来解决dz sessions表的性能问题。中午大脑极度紧张，以至于撞在关兄的工位，工位几近散架。
在轻度震荡中想到一个优化方案，就是分离sessions表的一些功能，把sessions会话和统计功能分离，并且统计使用异步提交。
这样，如果sessions会话生存期10分钟的量计算，20万人同时在线，sessions会话存memcached，而统计只用少量字段在独立的表中。因为php的sessions操作速度高，而统计信息调用并不是非常频繁，并且查找也是简单的int型查询，速度快，并且也进行memcached缓存。
下午吴同学详细讲述了我们的统计系统的负载和数据量，在大量实际应用的基础上，我的方案应该能很好的实施。
这样算来，连接瓶颈跟存储瓶颈似乎都能解决。明天集中时间实现这个方案。
]]></description>
			<content:encoded><![CDATA[<p>今天一天没干别的，没写程序，没玩游戏，除了中午参加公司的一个吹气球比赛得了第一，获得“**公司第一吹”的称号。</p>
<p>一天都在考虑使用完全开源的方案来解决dz sessions表的性能问题。中午大脑极度紧张，以至于撞在关兄的工位，工位几近散架。</p>
<p>在轻度震荡中想到一个优化方案，就是分离sessions表的一些功能，把sessions会话和统计功能分离，并且统计使用异步提交。</p>
<p>这样，如果sessions会话生存期10分钟的量计算，20万人同时在线，sessions会话存memcached，而统计只用少量字段在独立的表中。因为php的sessions操作速度高，而统计信息调用并不是非常频繁，并且查找也是简单的int型查询，速度快，并且也进行memcached缓存。</p>
<p>下午吴同学详细讲述了我们的统计系统的负载和数据量，在大量实际应用的基础上，我的方案应该能很好的实施。</p>
<p>这样算来，连接瓶颈跟存储瓶颈似乎都能解决。明天集中时间实现这个方案。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/16/%e6%92%9e%e5%9c%a8%e5%a2%99%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e6%80%9d%e8%b7%af.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关于discuz的优化纠结</title>
		<link>http://www.sunboyu.cn/2010/01/15/%e5%85%b3%e4%ba%8ediscuz%e7%9a%84%e4%bc%98%e5%8c%96%e7%ba%a0%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/15/%e5%85%b3%e4%ba%8ediscuz%e7%9a%84%e4%bc%98%e5%8c%96%e7%ba%a0%e7%bb%93.shtml#comments</comments>
		<pubDate>Fri, 15 Jan 2010 07:23:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1155</guid>
		<description><![CDATA[最近一直在寻找一个开源的方案来解决discuz的性能瓶颈。在做完几个关键表的分表后，sessions表又成了最大的瓶颈。因为页面每次刷新，至少两个sql语句在session表上，究其原因，session表的最大作用在于对用户行为的统计。
曾经尝试过使用php的session，不过支持phpsession的几个sever都不支持条件查询，除非是遍历匹配。这样也不能起到提高性能的作用。
在以上条件下，我寻找了两套方案：ttserver mongodb。
在session表100w数据的测试下，得出以下数据：

连接测试-只测试连接释放
tt:40.0904033184
mysqldb:0.0669066905975
mongodb:226.840053558
mysqldb:0.154407262802
经过一万次的连接测试，同一个脚本中，
ttserver连接耗时 40.09 秒，而mysql连接耗时0.07秒 linux下测试
mongodb 连接耗时 226.8 秒，而mysql连接耗时0.15秒 linux下测试
但是在500次的查询测试中，同一个脚本中，主键查询和索引优化后的复杂查询
mongodb 查询耗时 0.021 秒
mysql   查询耗时 0.123 秒

可以看出，tt和mongo两个功能上完全支持此表优化的数据库，在连接性能上远不如mysql，而web为频繁连接中断的服务，显然并不适合做这项功能。
继续寻找支持此功能的开源方案，欢迎大家提供线索。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在寻找一个开源的方案来解决discuz的性能瓶颈。在做完几个关键表的分表后，sessions表又成了最大的瓶颈。因为页面每次刷新，至少两个sql语句在session表上，究其原因，session表的最大作用在于对用户行为的统计。</p>
<p>曾经尝试过使用php的session，不过支持phpsession的几个sever都不支持条件查询，除非是遍历匹配。这样也不能起到提高性能的作用。</p>
<p>在以上条件下，我寻找了两套方案：ttserver mongodb。</p>
<p>在session表100w数据的测试下，得出以下数据：</p>
<blockquote><p>
连接测试-只测试连接释放<br />
tt:40.0904033184<br />
mysqldb:0.0669066905975</p>
<p>mongodb:226.840053558<br />
mysqldb:0.154407262802</p>
<p>经过一万次的连接测试，同一个脚本中，<br />
ttserver连接耗时 40.09 秒，而mysql连接耗时0.07秒 linux下测试<br />
mongodb 连接耗时 226.8 秒，而mysql连接耗时0.15秒 linux下测试</p>
<p>但是在500次的查询测试中，同一个脚本中，主键查询和索引优化后的复杂查询<br />
mongodb 查询耗时 0.021 秒<br />
mysql   查询耗时 0.123 秒
</p></blockquote>
<p>可以看出，tt和mongo两个功能上完全支持此表优化的数据库，在连接性能上远不如mysql，而web为频繁连接中断的服务，显然并不适合做这项功能。</p>
<p>继续寻找支持此功能的开源方案，欢迎大家提供线索。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/15/%e5%85%b3%e4%ba%8ediscuz%e7%9a%84%e4%bc%98%e5%8c%96%e7%ba%a0%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>完全缓存discuz论坛数据</title>
		<link>http://www.sunboyu.cn/2009/12/06/%e5%ae%8c%e5%85%a8%e7%bc%93%e5%ad%98discuz%e8%ae%ba%e5%9d%9b%e6%95%b0%e6%8d%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/06/%e5%ae%8c%e5%85%a8%e7%bc%93%e5%ad%98discuz%e8%ae%ba%e5%9d%9b%e6%95%b0%e6%8d%ae.shtml#comments</comments>
		<pubDate>Sun, 06 Dec 2009 14:15:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1072</guid>
		<description><![CDATA[最近一直在琢磨discuz的优化，想出一些数据缓存的策略：
index.php  部分数据已经进行了缓存，但需要全部缓存，只有当 页面刷新数/更新时间 >>>>  发帖数/更新时间 ，则有必要做此缓存，此处缓存更新最为频繁，适合做内存缓存，但 更新时间不宜太久，此时间根据首页更新频度确定。
forumdisplay.php  更新频繁，优化策略同上，只是更新频度略低于首页。
viewthread.php  回复更新频繁，内容更新频度低，适合做硬盘缓存。但分页部分不可做缓存，否则……
space.php  更新不频繁，适合做硬盘缓存。
faq.php  做个静态即可。
以上分析只是根据平时维护总结，临时脑子一蹦，未作具体分析，欢迎广大站长讨论试用。版权所有，欢迎盗版。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在琢磨discuz的优化，想出一些数据缓存的策略：</p>
<p>index.php  部分数据已经进行了缓存，但需要全部缓存，只有当 页面刷新数/更新时间 >>>>  发帖数/更新时间 ，则有必要做此缓存，此处缓存更新最为频繁，适合做内存缓存，但 更新时间不宜太久，此时间根据首页更新频度确定。</p>
<p>forumdisplay.php  更新频繁，优化策略同上，只是更新频度略低于首页。</p>
<p>viewthread.php  回复更新频繁，内容更新频度低，适合做硬盘缓存。但分页部分不可做缓存，否则……</p>
<p>space.php  更新不频繁，适合做硬盘缓存。</p>
<p>faq.php  做个静态即可。</p>
<p>以上分析只是根据平时维护总结，临时脑子一蹦，未作具体分析，欢迎广大站长讨论试用。版权所有，欢迎盗版。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/06/%e5%ae%8c%e5%85%a8%e7%bc%93%e5%ad%98discuz%e8%ae%ba%e5%9d%9b%e6%95%b0%e6%8d%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpmyadmin语句定界符的问题</title>
		<link>http://www.sunboyu.cn/2009/11/11/phpmyadmin%e8%af%ad%e5%8f%a5%e5%ae%9a%e7%95%8c%e7%ac%a6%e7%9a%84%e9%97%ae%e9%a2%98.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/11/phpmyadmin%e8%af%ad%e5%8f%a5%e5%ae%9a%e7%95%8c%e7%ac%a6%e7%9a%84%e9%97%ae%e9%a2%98.shtml#comments</comments>
		<pubDate>Wed, 11 Nov 2009 09:59:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1034</guid>
		<description><![CDATA[用phpmyadmin写触发器的朋友，不知道有没有碰见这个问题：用pma导出的语句，死活倒不进去，mysqldump导出的，也不能用pma倒入。
反正问题多多，很令人头疼。
今天再次碰到这个问题后，偶然发现个问题，就是sql输入框下的一个小的内容：语句定界符。
平时导出sql，语句定界符默认是分号，而编辑触发器的时候，是两个斜杠//。
蹊跷就在这里，导入的时候使用的定界符必须跟倒出时候的定界符保持一致，否则就会出现错误。
问题发现后，老王是相当的高兴啊。
]]></description>
			<content:encoded><![CDATA[<p>用phpmyadmin写触发器的朋友，不知道有没有碰见这个问题：用pma导出的语句，死活倒不进去，mysqldump导出的，也不能用pma倒入。</p>
<p>反正问题多多，很令人头疼。</p>
<p>今天再次碰到这个问题后，偶然发现个问题，就是sql输入框下的一个小的内容：语句定界符。</p>
<p>平时导出sql，语句定界符默认是分号，而编辑触发器的时候，是两个斜杠//。</p>
<p>蹊跷就在这里，导入的时候使用的定界符必须跟倒出时候的定界符保持一致，否则就会出现错误。</p>
<p>问题发现后，老王是相当的高兴啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/11/phpmyadmin%e8%af%ad%e5%8f%a5%e5%ae%9a%e7%95%8c%e7%ac%a6%e7%9a%84%e9%97%ae%e9%a2%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>discuz论坛优化</title>
		<link>http://www.sunboyu.cn/2009/11/05/discuz%e8%ae%ba%e5%9d%9b%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/05/discuz%e8%ae%ba%e5%9d%9b%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Thu, 05 Nov 2009 10:19:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1031</guid>
		<description><![CDATA[discuz论坛在国内非常流行，用户众多。优秀的用户体验和超强的负载，也赢得了众多的好评。
但discuz毕竟是为中小型网站设计，很容易达到性能的瓶颈。在最近对discuz的改造和表结构的分析，做了以下的探讨，来提升论坛的性能。
第一步，当然就是分表。
技术实力不太强的用户（严重依赖mysql的用户），分表是最直接的做法（当然，有些功能会损失）。
分析一个运营两年的discuz数据库，库表大概是十几个G左右，posts数据表已经几个千万。
首先可以拆分的，就是post表了。根据情况，post表可以分10张，百张，规则可以哈希，也可以阶段自增（分表主键使用tid（帖子id））。分完表，可以看到一排post_**的表，每个表的数据量降到百万以下，速度就无太大影响。
第二个可以拆分的，是threads表，此表分表，可以水平分割方式水平的分割，可以根据论坛版块id进行分表，这样可以使每个表的数据量减小，但这样也损失了一个功能：全站标题检索。
通过以上两个表的改造论坛的承载能力能迅速见长。
底下会讨论高级优化改造得方法，且听下次分解。
]]></description>
			<content:encoded><![CDATA[<p>discuz论坛在国内非常流行，用户众多。优秀的用户体验和超强的负载，也赢得了众多的好评。</p>
<p>但discuz毕竟是为中小型网站设计，很容易达到性能的瓶颈。在最近对discuz的改造和表结构的分析，做了以下的探讨，来提升论坛的性能。</p>
<p>第一步，当然就是分表。<br />
技术实力不太强的用户（严重依赖mysql的用户），分表是最直接的做法（当然，有些功能会损失）。</p>
<p>分析一个运营两年的discuz数据库，库表大概是十几个G左右，posts数据表已经几个千万。</p>
<p>首先可以拆分的，就是post表了。根据情况，post表可以分10张，百张，规则可以哈希，也可以阶段自增（分表主键使用tid（帖子id））。分完表，可以看到一排post_**的表，每个表的数据量降到百万以下，速度就无太大影响。</p>
<p>第二个可以拆分的，是threads表，此表分表，可以水平分割方式水平的分割，可以根据论坛版块id进行分表，这样可以使每个表的数据量减小，但这样也损失了一个功能：全站标题检索。</p>
<p>通过以上两个表的改造论坛的承载能力能迅速见长。</p>
<p>底下会讨论高级优化改造得方法，且听下次分解。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/05/discuz%e8%ae%ba%e5%9d%9b%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mysql触发器管理</title>
		<link>http://www.sunboyu.cn/2009/10/14/mysql%e8%a7%a6%e5%8f%91%e5%99%a8%e7%ae%a1%e7%90%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/10/14/mysql%e8%a7%a6%e5%8f%91%e5%99%a8%e7%ae%a1%e7%90%86.shtml#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:45:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1016</guid>
		<description><![CDATA[mysql没有一个像mssql的客户端去管理，所以有了PHPMYADMIN，管理mysql不再单纯依靠命令行，但PHPMYADMIN似乎不是那么万能，偶尔也会耍耍版本细节的脾气。
最近使用mysql触发器，不想使用命令行编辑，但phpmyadmin调试缺比较麻烦，原来想的是先建立一个空的触发器，然后修改，后来发现修改迁移问题多的要死，在老王同学的帮助下，经过几个晚上努力，整理出一些规律。
调试的时候，可以在空的触发器上逐条增加语句，一点一点调试，这样很容易定位问题，迅速修改。
迁移的时候，不能直接编辑触发器拷贝里边的代码，我用的phpmyadmin是2.11.9*版本的，生成的代码虽然他自己认，但一迁移就出了问题，我还没去阅读PHPMYADMIN的代码，不知道代码如何产生，但begin end里的内容大致相同，不同的是两头的辅助语句。
两头的内容跟版本密切相关，用mysqldump导出的语句做模板，把过程添加到里边，基本就没什么问题了。
不同版本的语法稍有出入，没有详细总结，总之掌握了调试的方法，解决问题速度就会提升。
使用触发器后，原来十几次的交互，一次就可以解决。我尝试了下出发器和存储过程，发现开发成本都差不多，复杂度也是类似的，所以没有用存储过程。
]]></description>
			<content:encoded><![CDATA[<p>mysql没有一个像mssql的客户端去管理，所以有了PHPMYADMIN，管理mysql不再单纯依靠命令行，但PHPMYADMIN似乎不是那么万能，偶尔也会耍耍版本细节的脾气。</p>
<p>最近使用mysql触发器，不想使用命令行编辑，但phpmyadmin调试缺比较麻烦，原来想的是先建立一个空的触发器，然后修改，后来发现修改迁移问题多的要死，在老王同学的帮助下，经过几个晚上努力，整理出一些规律。</p>
<p>调试的时候，可以在空的触发器上逐条增加语句，一点一点调试，这样很容易定位问题，迅速修改。</p>
<p>迁移的时候，不能直接编辑触发器拷贝里边的代码，我用的phpmyadmin是2.11.9*版本的，生成的代码虽然他自己认，但一迁移就出了问题，我还没去阅读PHPMYADMIN的代码，不知道代码如何产生，但begin end里的内容大致相同，不同的是两头的辅助语句。</p>
<p>两头的内容跟版本密切相关，用mysqldump导出的语句做模板，把过程添加到里边，基本就没什么问题了。</p>
<p>不同版本的语法稍有出入，没有详细总结，总之掌握了调试的方法，解决问题速度就会提升。</p>
<p>使用触发器后，原来十几次的交互，一次就可以解决。我尝试了下出发器和存储过程，发现开发成本都差不多，复杂度也是类似的，所以没有用存储过程。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/10/14/mysql%e8%a7%a6%e5%8f%91%e5%99%a8%e7%ae%a1%e7%90%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql5.1触发器小试</title>
		<link>http://www.sunboyu.cn/2009/08/25/mysql5-1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%b0%8f%e8%af%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/25/mysql5-1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%b0%8f%e8%af%95.shtml#comments</comments>
		<pubDate>Tue, 25 Aug 2009 14:51:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=961</guid>
		<description><![CDATA[我一直以为mysql5.0的触发器好似没那么强大，被一个搞mssql的老大给忽悠了，其实mysql触发器从5.0就变得很强大，当然包括5.1。
这里拿一个demo说事：
DROP TRIGGER IF EXISTS `ucenterhome`.`uchome_doing_test`;
DELIMITER //
CREATE TRIGGER `ucenterhome`.`uchome_doing_test` AFTER INSERT ON `ucenterhome`.`uchome_doing`
&#160;FOR EACH ROW BEGIN
&#160;&#160; &#160;INSERT INTO uchome_doing_1 SET doid= NEW.doid+3, uid= NEW.uid , username= NEW.username,`from`=NEW.`from`,dateline=NEW.dateline,message=NEW.message,ip=NEW.ip,replynum = NEW.replynum,mood=NEW.mood;&#160; &#160;
END
//
DELIMITER ;
每向uchome_doing表中插一条数据，就复制到uchome_dong_1表中一条。
有两个关键字：
OLD&#160; NEW
官方的解释：

The OLD and NEW keywords enable you to access columns in the rows affected by a trigger. (OLD and NEW are not case sensitive.) In [...]]]></description>
			<content:encoded><![CDATA[<p>我一直以为mysql5.0的触发器好似没那么强大，被一个搞mssql的老大给忽悠了，其实mysql触发器从5.0就变得很强大，当然包括5.1。</p>
<p>这里拿一个demo说事：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">DROP TRIGGER IF EXISTS `ucenterhome`.`uchome_doing_test`;</li>
<li>DELIMITER //</li>
<li>CREATE TRIGGER `ucenterhome`.`uchome_doing_test` AFTER INSERT ON `ucenterhome`.`uchome_doing`</li>
<li>&nbsp;FOR EACH ROW BEGIN</li>
<li>&nbsp;&nbsp; &nbsp;INSERT INTO uchome_doing_1 SET doid= NEW.doid+3, uid= NEW.uid , username= NEW.username,`from`=NEW.`from`,dateline=NEW.dateline,message=NEW.message,ip=NEW.ip,replynum = NEW.replynum,mood=NEW.mood;&nbsp; &nbsp;</li>
<li>END</li>
<li>//</li>
<li>DELIMITER ;</li></ol></div>
<p>每向uchome_doing表中插一条数据，就复制到uchome_dong_1表中一条。</p>
<p>有两个关键字：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">OLD&nbsp; NEW</li></ol></div>
<p>官方的解释：</p>
<blockquote><p>
The OLD and NEW keywords enable you to access columns in the rows affected by a trigger. (OLD and NEW are not case sensitive.) In an INSERT trigger, only NEW.col_name can be used; there is no old row. In a DELETE trigger, only OLD.col_name can be used; there is no new row. In an UPDATE trigger, you can use OLD.col_name to refer to the columns of a row before it is updated and NEW.col_name to refer to the columns of the row after it is updated.
</p></blockquote>
<p>还有两个关键字</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">BEFORE AFTER</li></ol></div>
<p>官方解释</p>
<blockquote><p>
The keyword BEFORE indicates the trigger action time. In this case, the trigger should activate before each row inserted into the table. The other allowable keyword here is AFTER.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/25/mysql5-1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%b0%8f%e8%af%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql数据抽象层-PDO</title>
		<link>http://www.sunboyu.cn/2009/08/20/mysql%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82-pdo.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/20/mysql%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82-pdo.shtml#comments</comments>
		<pubDate>Thu, 20 Aug 2009 08:02:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=953</guid>
		<description><![CDATA[好久不用PDO了，公司这边有的项目使用PDO，再熟悉一下，继续沿用之前的方法：
没用数据绑定和一些高级的功能，只是实现基础功能。
&#60; ?php
interface DateBaseConnect
{
	#数据库连接
	public function Connect( $host , $user , $pass , $datebase );
	#使用数据库
	public function selectDateBase( $datebase );
	#执行一个查询
	public function query( $sql );
	#取得一行
	public function fetch( $sql );
	#取得所有
	public function fetchAll( $sql );
	#取得影响行数
	public function affectedRow();
	#取得结果行数
	public function recordCount();
	#取得上次插入ID
	public function insertID();
	#释放资源
	public function close();
}
class sPDO implements DateBaseConnect
{
	#连接标识
	public $handle = false;
	#结果标识
	public $query;
	#查询次数
	public $exetime;
	#影响行数
	public $affectedRows;
	#statement
	public $statement;
	#数据库连接
	public function Connect( $host , $user , $pass , [...]]]></description>
			<content:encoded><![CDATA[<p>好久不用PDO了，公司这边有的项目使用PDO，再熟悉一下，继续沿用之前的方法：</p>
<p>没用数据绑定和一些高级的功能，只是实现基础功能。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt; ?php</li>
<li>interface DateBaseConnect</li>
<li>{</li>
<li>	#数据库连接</li>
<li>	public function Connect( $host , $user , $pass , $datebase );</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase );</li>
<li>	#执行一个查询</li>
<li>	public function query( $sql );</li>
<li>	#取得一行</li>
<li>	public function fetch( $sql );</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql );</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow();</li>
<li>	#取得结果行数</li>
<li>	public function recordCount();</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID();</li>
<li>	#释放资源</li>
<li>	public function close();</li>
<li>}</li>
<li>class sPDO implements DateBaseConnect</li>
<li>{</li>
<li>	#连接标识</li>
<li>	public $handle = false;</li>
<li>	#结果标识</li>
<li>	public $query;</li>
<li>	#查询次数</li>
<li>	public $exetime;</li>
<li>	#影响行数</li>
<li>	public $affectedRows;</li>
<li>	#statement</li>
<li>	public $statement;</li>
<li>	#数据库连接</li>
<li>	public function Connect( $host , $user , $pass , $datebase )</li>
<li>	{</li>
<li>		try</li>
<li>		{</li>
<li>			$this-&gt;handle = new PDO(&quot;mysql:dbname=&quot;.$datebase.&quot;;host=&quot;.$host, $user, $pass);</li>
<li>		}</li>
<li>		catch (PDOException $e)</li>
<li>		{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo 'Connection failed: ' . $e-&gt;getMessage();</li>
<li>		}</li>
<li>		$this-&gt;exetime = 0;</li>
<li>	}</li>
<li>	#选择数据库</li>
<li>	public function selectDateBase( $database )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; return true;</li>
<li>	}</li>
<li>	#执行一个查询</li>
<li>	public function query( $sql )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; $this-&gt;affectedRows = $this-&gt;handle-&gt;exec( $sql );</li>
<li>		$this-&gt;exetime++;</li>
<li>		return true;</li>
<li>	}</li>
<li>	#取得一行</li>
<li>	public function fetch( $sql )</li>
<li>	{</li>
<li>		$this-&gt;statement = $this-&gt;handle-&gt;query( $sql );</li>
<li>		return $this-&gt;statement-&gt;fetch(PDO::FETCH_ASSOC);</li>
<li>	}</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql )</li>
<li>	{</li>
<li>		$this-&gt;statement = $this-&gt;handle-&gt;query( $sql );</li>
<li>		return $this-&gt;statement-&gt;fetchAll(PDO::FETCH_ASSOC);</li>
<li>	}</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow()</li>
<li>	{</li>
<li>		return $this-&gt;affectedRows;</li>
<li>	}</li>
<li>	#取得结果行数</li>
<li>	public function recordCount()</li>
<li>	{</li>
<li>		return $this-&gt;statement-&gt;rowCount();</li>
<li>	}</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID()</li>
<li>	{</li>
<li>		$sql = sprintf(&quot;SELECT LAST_INSERT_ID() AS id&quot;);</li>
<li>		$pdostatement = $this-&gt;handle-&gt;query( $sql );</li>
<li>		$rs = $pdostatement-&gt;fetch();</li>
<li>		return $rs['id'];</li>
<li>	}</li>
<li>	#释放资源</li>
<li>	public function close()</li>
<li>	{</li>
<li>		unset($this-&gt;handle);</li>
<li>	}</li>
<li>	#析构函数</li>
<li>	function __destruct()</li>
<li>	{</li>
<li>		$this-&gt;close();</li>
<li>	}</li>
<li>}</li>
<li>#Demo</li>
<li>$db = new sPDO;</li>
<li>$db-&gt;Connect( 'localhost' , 'root' , '123456' , 'ucenterhome' );</li>
<li>$rs = $db-&gt;fetchAll( &quot;SELECT * FROM uchome_blogfield&quot; );</li>
<li>print_r( $rs );</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/20/mysql%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82-pdo.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个备份mysql的脚本，很简单</title>
		<link>http://www.sunboyu.cn/2009/07/29/%e4%b8%80%e4%b8%aa%e5%a4%87%e4%bb%bdmysql%e7%9a%84%e8%84%9a%e6%9c%ac%ef%bc%8c%e5%be%88%e7%ae%80%e5%8d%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/29/%e4%b8%80%e4%b8%aa%e5%a4%87%e4%bb%bdmysql%e7%9a%84%e8%84%9a%e6%9c%ac%ef%bc%8c%e5%be%88%e7%ae%80%e5%8d%95.shtml#comments</comments>
		<pubDate>Wed, 29 Jul 2009 13:43:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=927</guid>
		<description><![CDATA[帮朋友维护服务器的时候，习惯性得检查各项服务和维护，偶然间发现了这个脚本，冒着被BS的风险分享给大家，希望大家捧个钱场，施舍给老衲几万块钱买套房。
@echo off
C:
CD &#34;C:\Program Files\WinRAR&#34;
&#160;
net stop Mysql
winrar.exe a -ag&#34;-[YYYY-MM-DD-HH-MM-SS]&#34; -k -r -s -ibck -inul &#34;D:\MYSQL备份生成的文件.rar&#34; &#34;E:\bak\data\*.*&#34;
net start Mysql
]]></description>
			<content:encoded><![CDATA[<p>帮朋友维护服务器的时候，习惯性得检查各项服务和维护，偶然间发现了这个脚本，冒着被BS的风险分享给大家，希望大家捧个钱场，施舍给老衲几万块钱买套房。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">@echo off</li>
<li>C:</li>
<li>CD &quot;C:\Program Files\WinRAR&quot;</li>
<li>&nbsp;</li>
<li>net stop Mysql</li>
<li>winrar.exe a -ag&quot;-[YYYY-MM-DD-HH-MM-SS]&quot; -k -r -s -ibck -inul &quot;D:\MYSQL备份生成的文件.rar&quot; &quot;E:\bak\data\*.*&quot;</li>
<li>net start Mysql</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/29/%e4%b8%80%e4%b8%aa%e5%a4%87%e4%bb%bdmysql%e7%9a%84%e8%84%9a%e6%9c%ac%ef%bc%8c%e5%be%88%e7%ae%80%e5%8d%95.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux下APACHE MYSQL PHP FCgid Suexec 配置文档V1.0</title>
		<link>http://www.sunboyu.cn/2009/05/22/linux%e4%b8%8bapache-mysql-php-fcgid-suexec-%e9%85%8d%e7%bd%ae%e6%96%87%e6%a1%a3v10.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/22/linux%e4%b8%8bapache-mysql-php-fcgid-suexec-%e9%85%8d%e7%bd%ae%e6%96%87%e6%a1%a3v10.shtml#comments</comments>
		<pubDate>Fri, 22 May 2009 03:14:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[LAMP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=716</guid>
		<description><![CDATA[文档版本：V1.0
启动撰写时间: 2009年05月20日
目的：全面详细介绍LAMP fastcgi方式配置细节,基于之前的自动配置脚本，目的是把更多的细节转达给大家。
需要软件源码：
CentOS4.7
http://centos.ustc.edu.cn/centos/4.7/isos/i386/CentOS-4.7.ServerCD-i386.iso
http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso
Apache-2.2.9
http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz
MYSQL-5.2.6
http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.22.tar.gz
PHP-5.2.6
http://museum.php.net/php5/php-5.2.6.tar.gz
FCGID
http://ncu.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz
安装：
第一步：Linux系统安装,同时可以参照我原来的文档
http://www.sunboyu.cn/2008/06/13/centos5%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97%EF%BC%88%E7%AE%80%E5%8D%95%E7%AF%87%EF%BC%89.shtml

视频。我按照最小化进行安装。最后ping百度不通，是因为没有重启，重启后是正常的。从过程可疑看出，我用的vmware进行安装，所以，要根据你实际的网络情况进行调整配置。
Linux Centos 4.7 安装视频（下载）(关闭)

第二步：系统更新，组件安装。
首先更新一下yum源，具体查看这篇日志 http://www.sunboyu.cn/2009/01/07/centos4%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E4%B8%80%E4%BA%9B%E8%84%9A%E6%9C%AC.shtml
升级一下系统：
yum upgrade
安装一些必要的组件：
yum install gcc gcc-c++ gcc4-c++ autoconf gd gd-devel libxml2 libxml2-devel zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel expat expat-devel sqlite sqlite-devel png-devel jpeg-devel libtool libjpeg* libpng* freetype-devel
安装MYSQL-5.0.22
解压mysql
#tar -zxvf mysql-5.0.22.tar.gz
#cd cd mysql-5.0.22
#groupadd mysql
#useradd -g mysql mysql
#./configure &#8211;prefix=/opt/mysql-5.0.22 [...]]]></description>
			<content:encoded><![CDATA[<p>文档版本：V1.0</p>
<p>启动撰写时间: 2009年05月20日</p>
<p>目的：全面详细介绍LAMP fastcgi方式配置细节,基于之前的自动配置脚本，目的是把更多的细节转达给大家。</p>
<p>需要软件源码：</p>
<p>CentOS4.7</p>
<p>http://centos.ustc.edu.cn/centos/4.7/isos/i386/CentOS-4.7.ServerCD-i386.iso</p>
<p>http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso</p>
<p>Apache-2.2.9</p>
<p>http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz</p>
<p>MYSQL-5.2.6</p>
<p>http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.22.tar.gz</p>
<p>PHP-5.2.6</p>
<p>http://museum.php.net/php5/php-5.2.6.tar.gz</p>
<p>FCGID</p>
<p>http://ncu.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz</p>
<p>安装：</p>
<p>第一步：Linux系统安装,同时可以参照我原来的文档</p>
<p>http://www.sunboyu.cn/2008/06/13/centos5%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97%EF%BC%88%E7%AE%80%E5%8D%95%E7%AF%87%EF%BC%89.shtml</p>
<p><span id="more-716"></span></p>
<p>视频。我按照最小化进行安装。最后ping百度不通，是因为没有重启，重启后是正常的。从过程可疑看出，我用的vmware进行安装，所以，要根据你实际的网络情况进行调整配置。</p>
<p><a href="http://www.sunboyu.cn/upfiles/v/lamp.avi">Linux Centos 4.7 安装视频（下载）</a>(关闭)</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="353" height="291" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://player.youku.com/player.php/sid/XMTExMTU3NzE2/v.swf" /><embed type="application/x-shockwave-flash" width="353" height="291" src="http://player.youku.com/player.php/sid/XMTExMTU3NzE2/v.swf"></embed></object></p>
<p>第二步：系统更新，组件安装。</p>
<p>首先更新一下yum源，具体查看这篇日志 http://www.sunboyu.cn/2009/01/07/centos4%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E4%B8%80%E4%BA%9B%E8%84%9A%E6%9C%AC.shtml</p>
<p>升级一下系统：</p>
<p>yum upgrade</p>
<p>安装一些必要的组件：</p>
<p>yum install gcc gcc-c++ gcc4-c++ autoconf gd gd-devel libxml2 libxml2-devel zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel expat expat-devel sqlite sqlite-devel png-devel jpeg-devel libtool libjpeg* libpng* freetype-devel</p>
<p>安装MYSQL-5.0.22</p>
<p>解压mysql</p>
<p>#tar -zxvf mysql-5.0.22.tar.gz</p>
<p>#cd cd mysql-5.0.22</p>
<p>#groupadd mysql</p>
<p>#useradd -g mysql mysql</p>
<p>#./configure &#8211;prefix=/opt/mysql-5.0.22 \<br />
&#8211;without-debug \<br />
&#8211;enable-thread-safe-client \<br />
&#8211;with-client-ldflags=-all-static \<br />
&#8211;with-mysqld-ldflags=-all-static \<br />
&#8211;enable-local-infile \<br />
&#8211;enable-largefile \<br />
&#8211;with-charset=utf8 \<br />
&#8211;with-collation=utf8_unicode_ci \<br />
&#8211;with-extra-charsets=complex \<br />
&#8211;with-pic \<br />
&#8211;with-mysqld-libs \<br />
&#8211;with-comment \<br />
&#8211;with-query-cache \<br />
&#8211;with-bench \<br />
&#8211;with-big-tables \<br />
&#8211;with-innodb \<br />
&#8211;with-mysqld-use=mysql</p>
<p>#make</p>
<p>#make install</p>
<p>#cp ./support-files/my-medium.cnf /etc/my.cnf</p>
<p>#cp ./support-files/mysql.server /etc/init.d/mysqld</p>
<p>#chmod 755 /etc/init.d/mysqld</p>
<p>#/opt/mysql-5.0.22/bin/mysql_install_db &#8211;user=mysql &amp;</p>
<p>#echo &#8220;/opt/mysql-5.0.22/bin/mysqld_safe &#8211;user=mysql &amp;&#8221;&gt;&gt;/etc/rc.local</p>
<p>#service mysqld start</p>
<p>#/opt/mysql-5.0.22/bin/mysqladmin -u root password &#8216;123456&#8242;</p>
<p>#cd ..</p>
<p>安装APACHE</p>
<p>#groupadd apache</p>
<p>#useradd -g apache apache</p>
<p>#tar -zxvf httpd-2.2.9.tar.gz</p>
<p>#cd httpd-2.2.9</p>
<p>#./configure &#8211;prefix=/opt/httpd-2.2.9 \<br />
&#8211;enable-dav \<br />
&#8211;enable-dav-fs \<br />
&#8211;enable-modules=all \<br />
&#8211;enable-mods-shared=all \<br />
&#8211;disable-auth-basic \<br />
&#8211;enable-include \<br />
&#8211;enable-substitute \<br />
&#8211;enable-authz-dbm \<br />
&#8211;enable-log-config \<br />
&#8211;enable-headers \<br />
&#8211;enable-setenvif \<br />
&#8211;with-ssl \<br />
&#8211;enable-static-ab \<br />
&#8211;enable-http \<br />
&#8211;enable-mime \<br />
&#8211;enable-status \<br />
&#8211;enable-isapi \<br />
&#8211;enable-imagemap \<br />
&#8211;enable-actions \<br />
&#8211;enable-speling \<br />
&#8211;enable-userdir \<br />
&#8211;enable-alias \<br />
&#8211;enable-vhost-alias \<br />
&#8211;enable-dir \<br />
&#8211;enable-rewrite \<br />
&#8211;enable-dumpio \<br />
&#8211;enable-echo \<br />
&#8211;enable-so \<br />
&#8211;enable-example \<br />
&#8211;enable-case-filter \<br />
&#8211;enable-substitute \<br />
&#8211;enable-log-config \<br />
&#8211;enable-logio \<br />
&#8211;enable-env \<br />
&#8211;with-mpm=worker \<br />
&#8211;with-included-apr \<br />
&#8211;with-apr \<br />
&#8211;with-apr-util \<br />
&#8211;with-z \<br />
&#8211;enable-proxy \<br />
&#8211;enable-proxy-connect \<br />
&#8211;enable-proxy-ftp \<br />
&#8211;enable-proxy-http \<br />
&#8211;enable-proxy-ajp \<br />
&#8211;enable-proxy-balancer \<br />
&#8211;enable-suexec \<br />
&#8211;with-suexec-caller=apache \<br />
&#8211;with-suexec-userdir=www \<br />
&#8211;with-suexec-docroot=/home \<br />
&#8211;with-suexec-uidmin=100 \<br />
&#8211;with-suexec-gidmin=100 \<br />
&#8211;with-suexec-logfile=/var/log/suexec_log</p>
<p>#make</p>
<p>#make install</p>
<p>#ln -s /opt/httpd-2.2.9/bin/apachectl /etc/init.d/httpd</p>
<p>#cd ..</p>
<p>修改apache配置文件 /opt/httpd-2.2.9/conf/httpd.conf</p>
<p>找到</p>
<p>User daemon<br />
Group daemon</p>
<p>修改为</p>
<p>User apache<br />
Group apache</p>
<p>安装 fcgid</p>
<p>#tar -zxvf mod_fcgid.2.2.tgz</p>
<p>#cd mod_fcgid.2.2</p>
<p>修改Makefile</p>
<p>top_dir = /usr/local/apache2 为 top_dir = /opt/httpd-2.2.9</p>
<p>#make</p>
<p>#make install</p>
<p>#cd ..</p>
<p>修改apache配置文件 httpd.conf</p>
<p>增加 LoadModule fcgid_module modules/mod_fcgid.so</p>
<p>安装PHP，记得增加cgi支持</p>
<p>#tar -zxvf php-5.2.6.tar.gz</p>
<p>#cd php-5.2.6</p>
<p>#./configure &#8211;prefix=/opt/php-5.2.6 &#8211;with-libxml-dir &#8211;enable-cli &#8211;enable-cgi &#8211;enable-fastcgi &#8211;enable-bcmath &#8211;enable-force-cgi-redirect &#8211;enable-discard-path &#8211;enable-path-info-check &#8211;with-openssl &#8211;with-pcre-regex &#8211;enable-calendar &#8211;enable-dom &#8211;enable-ftp &#8211;with-openssl-dir=/usr/local/ssl &#8211;enable-gd-jis-conv &#8211;enable-hash &#8211;with-iconv &#8211;enable-json &#8211;enable-mbstring &#8211;enable-mbregex &#8211;enable-pdo &#8211;enable-posix &#8211;enable-libxml &#8211;enable-simplexml &#8211;with-sqlite &#8211;enable-tokenizer &#8211;enable-xmlreader &#8211;enable-xmlwriter &#8211;enable-sockets &#8211;with-zlib &#8211;with-freetype-dir &#8211;with-gd &#8211;with-jpeg-dir=/usr/lib &#8211;with-png-dir=/usr/lib &#8211;with-mime-magic &#8211;with-mysql=/opt/mysql-5.0.22 &#8211;with-zlib-dir=/usr/lib/libz.so &#8211;with-pdo-mysql=/opt/mysql-5.0.22 &#8211;with-pdo-sqlite &#8211;enable-posix &#8211;enable-soap</p>
<p>#make</p>
<p>#make install</p>
<p>修改apache配置文件httpd.conf</p>
<p>找到</p>
<p># Virtual hosts<br />
#Include conf/extra/httpd-vhosts.conf</p>
<p>修改为</p>
<p># Virtual hosts<br />
Include conf/extra/httpd-vhosts.conf</p>
<p>修改apache配置文件 conf/extra/httpd-vhosts.conf</p>
<p>删除所有的虚拟主机</p>
<p>现在配置虚拟主机：</p>
<p>所有虚拟主机的组为 vhost</p>
<p>增加一个用户名为sunboyu的虚拟主机</p>
<p>#groupadd vhost</p>
<p>#useradd -g vhost sunboyu</p>
<p>用户主目录默认为 /home/sunboyu</p>
<p>增加两个目录</p>
<p>#mkdir /home/sunboyu/www</p>
<p>#mkdir /home/sunboyu/logs</p>
<p>增加虚拟主机配置文件</p>
<p>SuexecUserGroup sunboyu vhost<br />
ServerAdmin sunboyu@gmail.com<br />
DocumentRoot &#8220;/home/sunboyu/www&#8221;<br />
ServerName 192.168.0.4<br />
ServerAlias sunboyu.cn<br />
ErrorLog &#8220;/home/sunboyu/logs/error_log&#8221;<br />
CustomLog &#8220;|/opt/httpd-2.2.9/bin/rotatelogs /home/sunboyu/logs/%Y_%m_%d_log 86400 +480&#8243; common</p>
<p>AddHandler fcgid-script .php<br />
#AddHandler cgi-script .pl .cgi<br />
FCGIWrapper /home/sunboyu/php-cgi .php<br />
Options ExecCGI FollowSymLinks<br />
AllowOverride all<br />
Order deny,allow<br />
Allow from all</p>
<p>创建文件 /home/sunboyu/php-cgi 文件内容为</p>
<p>#!/bin/sh<br />
export PHPRC=/home/sunboyu<br />
export PHP_FCGI_CHILDREN=4<br />
export PHP_FCGI_MAX_REQUESTS=5000<br />
exec /opt/php-5.2.6/bin/php-cgi &#8220;$@&#8221;</p>
<p>#chmod 755 -R /home/sunboyu</p>
<p>#chown sunboyu:vhost -R /home/sunboyu</p>
<p>配置到现在，重启apache</p>
<p>#service httpd restart</p>
<p>在虚拟目录根下 /home/sunboyu/www 下写文件 info.php 内容为 phpinfo() 修改权限为755 用户组为 sunboyu:vhost</p>
<p>现在访问应该是phpinfo的信息。</p>
<p>在写这篇文档的时候，基本是按照数续依次安装。</p>
<p>如果有问题，希望帮忙，请提前修改你服务器root密码，我们可以一起调试。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/22/linux%e4%b8%8bapache-mysql-php-fcgid-suexec-%e9%85%8d%e7%bd%ae%e6%96%87%e6%a1%a3v10.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.sunboyu.cn/upfiles/v/lamp.avi" length="17880876" type="video/x-msvideo" />
		</item>
		<item>
		<title>Python写的数据库备份程序</title>
		<link>http://www.sunboyu.cn/2009/04/22/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e7%a8%8b%e5%ba%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/22/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e7%a8%8b%e5%ba%8f.shtml#comments</comments>
		<pubDate>Tue, 21 Apr 2009 17:55:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[mysqldump]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=664</guid>
		<description><![CDATA[下载地址:mysqlbak
#!/var/opt/python-2.5/bin/python
import os
import time
import MySQLdb
&#160;
&#160;
CFG = {}
CFG['root'] = {}
CFG['root']['hostname'] = 'localhost'
CFG['root']['username'] = 'root'
CFG['root']['password'] = 'test'
&#160;
&#160;
CFG['mysqldump'] = '/opt/mysql-5.0.22/bin/mysqldump'
&#160;
CFG['time'] = time.strftime(&#34;%Y-%m-%d&#34;, time.localtime(time.time()) ) 
&#160;
CFG['bakpath'] = '/tmp/' + CFG['time']
CFG['mainbak'] = '/home/sunboyu/databak/' + CFG['time']
&#160;
&#160;
if os.path.exists( CFG['bakpath'] ) == False:
&#160;&#160; &#160;os.mkdir( CFG['bakpath'] )
if os.path.exists( CFG['mainbak'] ) == False:
&#160;&#160; &#160;os.mkdir( CFG['mainbak'] )
&#160;
def mysql_database_bak( database ):
&#160;&#160; &#160;global CFG
&#160;&#160; &#160;DIR = CFG['bakpath'] + &#34;/&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>下载地址:<a href='http://www.sunboyu.cn/upfiles/2009/04/mysqlbak.rar'>mysqlbak</a></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">#!/var/opt/python-2.5/bin/python</li>
<li>import os</li>
<li>import time</li>
<li>import MySQLdb</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>CFG = {}</li>
<li>CFG['root'] = {}</li>
<li>CFG['root']['hostname'] = 'localhost'</li>
<li>CFG['root']['username'] = 'root'</li>
<li>CFG['root']['password'] = 'test'</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>CFG['mysqldump'] = '/opt/mysql-5.0.22/bin/mysqldump'</li>
<li>&nbsp;</li>
<li>CFG['time'] = time.strftime(&quot;%Y-%m-%d&quot;, time.localtime(time.time()) ) </li>
<li>&nbsp;</li>
<li>CFG['bakpath'] = '/tmp/' + CFG['time']</li>
<li>CFG['mainbak'] = '/home/sunboyu/databak/' + CFG['time']</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>if os.path.exists( CFG['bakpath'] ) == False:</li>
<li>&nbsp;&nbsp; &nbsp;os.mkdir( CFG['bakpath'] )</li>
<li>if os.path.exists( CFG['mainbak'] ) == False:</li>
<li>&nbsp;&nbsp; &nbsp;os.mkdir( CFG['mainbak'] )</li>
<li>&nbsp;</li>
<li>def mysql_database_bak( database ):</li>
<li>&nbsp;&nbsp; &nbsp;global CFG</li>
<li>&nbsp;&nbsp; &nbsp;DIR = CFG['bakpath'] + &quot;/&quot; + database</li>
<li>&nbsp;&nbsp; &nbsp;if os.path.exists( DIR )==False:</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;os.mkdir( DIR )</li>
<li>&nbsp;&nbsp; &nbsp;conn = MySQLdb.connect( host = CFG['root']['hostname'] , user = CFG['root']['username'] , passwd = CFG['root']['password'] , db = database )</li>
<li>&nbsp;&nbsp; &nbsp;db = conn.cursor()</li>
<li>&nbsp;&nbsp; &nbsp;sql = &quot;show tables&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;db.execute( sql )</li>
<li>&nbsp;&nbsp; &nbsp;result = {}</li>
<li>&nbsp;&nbsp; &nbsp;for recordline in db.fetchall():</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;os.system( CFG['mysqldump'] + &quot; --opt&nbsp; &quot; + database + &quot; &quot; + recordline[0] + &quot; -u&quot; + CFG['root']['username'] + &quot; -p&quot; + CFG['root']['password'] + &quot; &gt; &quot; + DIR + &quot;/&quot; + database + &quot;_&quot; + recordline[0] + &quot;.sql&quot; )</li>
<li>&nbsp;&nbsp; &nbsp;os.system( &quot;tar cvf &quot; + CFG['bakpath'] + &quot;/&quot; + database + &quot;.tar.gz &quot; +&nbsp; CFG['bakpath'] + &quot;/&quot; + database )</li>
<li>&nbsp;&nbsp; &nbsp;os.system( &quot;mv &quot; + CFG['bakpath'] + &quot;/&quot; + database + &quot;.tar.gz &quot; + CFG['mainbak'] + '/' )</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>conn = MySQLdb.connect( host = CFG['root']['hostname'] , user = CFG['root']['username'] , passwd = CFG['root']['password'] , db = 'test' )</li>
<li>sql = &quot;show databases&quot;;</li>
<li>db = conn.cursor()</li>
<li>db.execute( sql )</li>
<li>result = {}</li>
<li>bigcount = 0</li>
<li>for recordline in db.fetchall():</li>
<li>	littlecount = 0</li>
<li>	result[bigcount] = {}</li>
<li>	for colnum in db.description:</li>
<li>	&nbsp; &nbsp; result[bigcount][colnum[0]] = recordline[littlecount]</li>
<li>	&nbsp; &nbsp; littlecount += 1</li>
<li>	bigcount += 1</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>for tables in result:</li>
<li>&nbsp;&nbsp; &nbsp;mysql_database_bak( result[tables]['Database'] )</li>
<li>&nbsp;</li>
<li>os.system( &quot;rm -rf /tmp/&quot; + CFG['time'] )&nbsp; #警告 rm -rf 这个命令相当危险，使用一定要谨慎</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/22/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e7%a8%8b%e5%ba%8f.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>mysql索引优化</title>
		<link>http://www.sunboyu.cn/2009/02/15/mysql%e7%b4%a2%e5%bc%95%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/15/mysql%e7%b4%a2%e5%bc%95%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Sun, 15 Feb 2009 06:01:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=568</guid>
		<description><![CDATA[做复杂的数据报表经常要很多sql语句连续执行，不是超时就是把mysql跑挂。不过现在硬件廉价，这些软件完美得兼容了多核多线程，虽然一个mysql进程负载高，但只占用一个内核，其他的查询依然可以使用其他的内核进行运算，服务器不会整体挂掉。
mysql优化，主要是索引，大量消耗资源的查询一定要做相关索引优化，具体优化思想我是阅读的这本书－http://www.douban.com/subject/3039216/ 里边mysql优化部分讲得非常简洁明了。而对于cpu的优化，就是尽力把整体时间拉开，cpu会比较平稳。具体做法是用sleep把sql语句分隔，这样用时间换取了稳定。当然，有些报表数据一旦作出就不会再变，这时最好把这些数据文本缓存，以后查询只读取文本即可。
]]></description>
			<content:encoded><![CDATA[<p>做复杂的数据报表经常要很多sql语句连续执行，不是超时就是把mysql跑挂。不过现在硬件廉价，这些软件完美得兼容了多核多线程，虽然一个mysql进程负载高，但只占用一个内核，其他的查询依然可以使用其他的内核进行运算，服务器不会整体挂掉。</p>
<p>mysql优化，主要是索引，大量消耗资源的查询一定要做相关索引优化，具体优化思想我是阅读的这本书－http://www.douban.com/subject/3039216/ 里边mysql优化部分讲得非常简洁明了。而对于cpu的优化，就是尽力把整体时间拉开，cpu会比较平稳。具体做法是用sleep把sql语句分隔，这样用时间换取了稳定。当然，有些报表数据一旦作出就不会再变，这时最好把这些数据文本缓存，以后查询只读取文本即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/15/mysql%e7%b4%a2%e5%bc%95%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQL5新特性，分区表</title>
		<link>http://www.sunboyu.cn/2008/11/15/mysql5%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%8c%e5%88%86%e5%8c%ba%e8%a1%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/15/mysql5%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%8c%e5%88%86%e5%8c%ba%e8%a1%a8.shtml#comments</comments>
		<pubDate>Sat, 15 Nov 2008 09:57:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[分区]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=385</guid>
		<description><![CDATA[CU上看了一个介绍mysql5分区表的帖子，很感兴趣，如果有了分区的应用，那么设计数据库结构可以更加紧凑，而在应用上更加灵活，减少了一些不必要的视图，而在速度上也很好的提升。
分区的好处是，在物理上根据规则对表进行分离。
水平分区其实是B树索引物理上又增加了一级，当然要提高检索速度了，因为又多了一个手工索引。
垂直分区，在一些应用上会更加方便，比如discuz程序，帖子标题跟正文都是分离的，目的是降低单表容量，而有了垂直分区，可以在物理上对字段进行分离，而访问的时候又是类似视图的访问，无比爽也！！
目前还没测试分区到底有多少性能潜力可开发，回头用大的数据查询测试一下。
相关资料：http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html
]]></description>
			<content:encoded><![CDATA[<p>CU上看了一个介绍mysql5分区表的帖子，很感兴趣，如果有了分区的应用，那么设计数据库结构可以更加紧凑，而在应用上更加灵活，减少了一些不必要的视图，而在速度上也很好的提升。<br />
分区的好处是，在物理上根据规则对表进行分离。<br />
水平分区其实是B树索引物理上又增加了一级，当然要提高检索速度了，因为又多了一个手工索引。<br />
垂直分区，在一些应用上会更加方便，比如discuz程序，帖子标题跟正文都是分离的，目的是降低单表容量，而有了垂直分区，可以在物理上对字段进行分离，而访问的时候又是类似视图的访问，无比爽也！！<br />
目前还没测试分区到底有多少性能潜力可开发，回头用大的数据查询测试一下。<br />
相关资料：http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/15/mysql5%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%8c%e5%88%86%e5%8c%ba%e8%a1%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql数据库抽象层操作类</title>
		<link>http://www.sunboyu.cn/2008/09/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%e6%93%8d%e4%bd%9c%e7%b1%bb.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%e6%93%8d%e4%bd%9c%e7%b1%bb.shtml#comments</comments>
		<pubDate>Mon, 08 Sep 2008 06:26:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[抽象层]]></category>
		<category><![CDATA[类]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=308</guid>
		<description><![CDATA[DB.InterFace.php
&#60;?php
/*&#160; DB.InterFace.php
&#160;*&#160; DB
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 28&#160; sunboyu@gmail.com
&#160;*&#160; Demo
&#160;*/
interface DateBaseConnect
{
&#160;&#160; &#160;#数据库连接
&#160;&#160; &#160;public function Connect( $host , $user , $pass , $datebase );
	#使用数据库
	public function selectDateBase( $datebase );
	#执行一个查询
	public function Query( $sql );
	#取得一行
	public function fetchRow( $sql );
	#取得所有
	public function fetchAll( $sql );
	#取得影响行数
	public function affectedRow();
	#取得结果行数
	public function recordCount();
	#取得上次插入ID
	public function insertID();
	#释放资源
	public function [...]]]></description>
			<content:encoded><![CDATA[<p>DB.InterFace.php</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>/*&nbsp; DB.InterFace.php</li>
<li>&nbsp;*&nbsp; DB</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>interface DateBaseConnect</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;#数据库连接</li>
<li>&nbsp;&nbsp; &nbsp;public function Connect( $host , $user , $pass , $datebase );</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase );</li>
<li>	#执行一个查询</li>
<li>	public function Query( $sql );</li>
<li>	#取得一行</li>
<li>	public function fetchRow( $sql );</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql );</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow();</li>
<li>	#取得结果行数</li>
<li>	public function recordCount();</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID();</li>
<li>	#释放资源</li>
<li>	public function close();</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p><span id="more-308"></span><br />
DB.Mysql.Class.php</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>/*&nbsp; DB.Mysql.Class.php</li>
<li>&nbsp;*&nbsp; Mysql</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>require_once(ROOT.&quot;/Include/Class/DB.InterFace.php&quot;);</li>
<li>class Mysql implements DateBaseConnect</li>
<li>{</li>
<li>	#连接标识</li>
<li>	public $handle = false;</li>
<li>	#结果标识</li>
<li>	public $query;</li>
<li>	#查询次数</li>
<li>	public $exetime;</li>
<li>	#数据库连接</li>
<li>&nbsp;&nbsp; &nbsp;public function Connect( $host , $user , $pass , $datebase )</li>
<li>	{</li>
<li>		$this-&gt;handle = @mysql_connect( $host , $user , $pass , false ) or die(&quot;Can't connetc to the DateBse.&quot;.mysql_error());</li>
<li>		$this-&gt;selectDateBase( $datebase );</li>
<li>		$this-&gt;exetime = 0;</li>
<li>	}</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase )</li>
<li>	{</li>
<li>		@mysql_select_db( $datebase , $this-&gt;handle ) or die(&quot;Can't select the DateBase&quot;.mysql_error());</li>
<li>	}</li>
<li>	#执行一个查询</li>
<li>	public function Query( $sql )</li>
<li>	{</li>
<li>		$this-&gt;query = mysql_query( $sql , $this-&gt;handle ) or die(&quot;query error&quot;.mysql_error());</li>
<li>		$this-&gt;exetime++;</li>
<li>		return true;</li>
<li>	}</li>
<li>	#取得一行</li>
<li>	public function fetchRow( $sql )</li>
<li>	{</li>
<li>		$this-&gt;Query( $sql );</li>
<li>		while( $row = mysql_fetch_array( $this-&gt;query, MYSQL_ASSOC ) )</li>
<li>		{</li>
<li>			return $row;</li>
<li>	&nbsp; &nbsp; }</li>
<li>		return false;</li>
<li>	}</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql )</li>
<li>	{</li>
<li>		$this-&gt;Query( $sql );</li>
<li>		$rows = false;</li>
<li>		while( $rs = mysql_fetch_array( $this-&gt;query, MYSQL_ASSOC ) )</li>
<li>		{</li>
<li>			$rows[] = $rs;</li>
<li>		}</li>
<li>		return $rows;</li>
<li>	}</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow()</li>
<li>	{</li>
<li>		return mysql_affected_rows( $this-&gt;query );</li>
<li>	}</li>
<li>	#取得结果行数</li>
<li>	public function recordCount()</li>
<li>	{</li>
<li>		return mysql_num_rows( $this-&gt;query );</li>
<li>	}</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID()</li>
<li>	{</li>
<li>		return (mysql_insert_id()&gt;0) ? mysql_insert_id() : false;</li>
<li>	}</li>
<li>	#释放资源</li>
<li>	public function close()</li>
<li>	{</li>
<li>		@mysql_close( $this-&gt;handle );</li>
<li>	}</li>
<li>	#析构函数</li>
<li>	/*</li>
<li>	function __destruct()</li>
<li>	{</li>
<li>		$this-&gt;close();</li>
<li>	}</li>
<li>	*/</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>DB.Mysql.Fact.Class.php</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>/*&nbsp; DB.Mysql.Fact.Class.php</li>
<li>&nbsp;*&nbsp; Mysql</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>require_once(ROOT.&quot;/Include/Class/DB.Mysql.Class.php&quot;);</li>
<li>class DB extends Mysql</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;#插入操作</li>
<li>	/*</li>
<li>	$array = array(</li>
<li>	&nbsp; &nbsp; 'name' = &quot;sunboyu&quot;,</li>
<li>		'pass' = &quot;123456&quot;</li>
<li>	);</li>
<li>	*/</li>
<li>	function __insert( $array , $table )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; $sql = &quot;INSERT INTO {$table} (&quot;;</li>
<li>	&nbsp; &nbsp; if(!is_array($array))</li>
<li>		{</li>
<li>		&nbsp; &nbsp; die('the array is not a array!');</li>
<li>		}</li>
<li>		$keys = array_keys( $array );</li>
<li>		$sql .= implode( ',' , $keys );</li>
<li>		$sql .= &quot;) VALUES (&quot;;</li>
<li>		foreach( $array as $key=&gt;$value )</li>
<li>		{</li>
<li>		&nbsp; &nbsp; if(is_int( $array[$key] ))</li>
<li>			{</li>
<li>			&nbsp; &nbsp; $sql .= $array[$key];</li>
<li>			}</li>
<li>			else if(is_string( $array[$key] ))</li>
<li>			{</li>
<li>			&nbsp; &nbsp; $sql .= &quot;'{$array[$key]}'&quot;;</li>
<li>			}</li>
<li>			$sql .= &quot;,&quot;;</li>
<li>		}</li>
<li>		$sql = substr_replace( $sql , &quot;&quot; , -1 );</li>
<li>		$sql .= &quot;)&quot;;</li>
<li>		return $this-&gt;Query( $sql );</li>
<li>	}</li>
<li>	</li>
<li>}</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%e6%93%8d%e4%bd%9c%e7%b1%bb.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql视图应用</title>
		<link>http://www.sunboyu.cn/2008/08/28/mysql%e8%a7%86%e5%9b%be%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/28/mysql%e8%a7%86%e5%9b%be%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Thu, 28 Aug 2008 12:55:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[视图]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=290</guid>
		<description><![CDATA[mysql视图创建方法，以我的OpenOA为例，创建user表left jion user_info表的视图
CREATE VIEW v_user AS SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)
然后查看
mysql&#62;use oa
mysql&#62;show tables
结果显示，v_user是库oa中的一个表。因此我们使用的时候，可以直接使用语句 SELECT * FROM v_user
而这句也就等于 SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)
而实习在系统中，v_user 只有这么一个文件v_user.frm  也就是只有结构，没有数据和索引.打开后，可以看到详细的存储的内容
TYPE=VIEW
query=select `oa`.`user`.`id` AS `id`,`oa`.`user`.`username` AS `username`,`oa`.`user`.`nickname` AS `nickname`,`oa`.`user`.`password` AS `password`,`oa`.`user`.`lastlogintime` AS `lastlogintime`,`oa`.`user`.`lastloginip` AS `lastloginip`,`oa`.`user`.`loginrand` AS `loginrand`,`oa`.`user_info`.`user_id` AS `user_id`,`oa`.`user_info`.`user_realname` AS `user_realname`,`oa`.`user_info`.`user_sex` [...]]]></description>
			<content:encoded><![CDATA[<p>mysql视图创建方法，以我的OpenOA为例，创建user表left jion user_info表的视图</p>
<p>CREATE VIEW v_user AS SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)</p>
<p>然后查看</p>
<p>mysql&gt;use oa</p>
<p>mysql&gt;show tables</p>
<p>结果显示，v_user是库oa中的一个表。因此我们使用的时候，可以直接使用语句 SELECT * FROM v_user</p>
<p>而这句也就等于 SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)</p>
<p>而实习在系统中，v_user 只有这么一个文件v_user.frm  也就是只有结构，没有数据和索引.打开后，可以看到详细的存储的内容</p>
<p>TYPE=VIEW<br />
query=select `oa`.`user`.`id` AS `id`,`oa`.`user`.`username` AS `username`,`oa`.`user`.`nickname` AS `nickname`,`oa`.`user`.`password` AS `password`,`oa`.`user`.`lastlogintime` AS `lastlogintime`,`oa`.`user`.`lastloginip` AS `lastloginip`,`oa`.`user`.`loginrand` AS `loginrand`,`oa`.`user_info`.`user_id` AS `user_id`,`oa`.`user_info`.`user_realname` AS `user_realname`,`oa`.`user_info`.`user_sex` AS `user_sex`,`oa`.`user_info`.`user_age` AS `user_age`,`oa`.`user_info`.`user_birthplace` AS `user_birthplace`,`oa`.`user_info`.`user_homeaddress` AS `user_homeaddress`,`oa`.`user_info`.`user_idcard` AS `user_idcard`,`oa`.`user_info`.`user_graduateschool` AS `user_graduateschool`,`oa`.`user_info`.`user_educational` AS `user_educational`,`oa`.`user_info`.`user_graduatetime` AS `user_graduatetime`,`oa`.`user_info`.`user_homephone` AS `user_homephone`,`oa`.`user_info`.`user_cellphone` AS `user_cellphone`,`oa`.`user_info`.`user_workphone` AS `user_workphone`,`oa`.`user_info`.`user_fax` AS `user_fax`,`oa`.`user_info`.`user_email` AS `user_email`,`oa`.`user_info`.`user_oicq` AS `user_oicq`,`oa`.`user_info`.`user_msn` AS `user_msn` from (`oa`.`user` left join `oa`.`user_info` on((`oa`.`user`.`id` = `oa`.`user_info`.`user_id`)))<br />
md5=19f7a28463ad7447c3b4cc5428888fa6<br />
updatable=0<br />
algorithm=0<br />
definer_user=root<br />
definer_host=localhost<br />
suid=1<br />
with_check_option=0<br />
revision=1<br />
timestamp=2008-08-28 11:58:17<br />
create-version=1<br />
source=SELECT * FROM user LEFT JOIN user_info ON ( user.id = user_info.user_id )</p>
<p>都是啥意思，没有深究，只是能根据字面猜出来，如果只是用，到此位置即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/28/mysql%e8%a7%86%e5%9b%be%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用mysql保存session，并建立在线用户列表</title>
		<link>http://www.sunboyu.cn/2008/08/15/%e4%bd%bf%e7%94%a8mysql%e4%bf%9d%e5%ad%98session%ef%bc%8c%e5%b9%b6%e5%bb%ba%e7%ab%8b%e5%9c%a8%e7%ba%bf%e7%94%a8%e6%88%b7%e5%88%97%e8%a1%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/15/%e4%bd%bf%e7%94%a8mysql%e4%bf%9d%e5%ad%98session%ef%bc%8c%e5%b9%b6%e5%bb%ba%e7%ab%8b%e5%9c%a8%e7%ba%bf%e7%94%a8%e6%88%b7%e5%88%97%e8%a1%a8.shtml#comments</comments>
		<pubDate>Fri, 15 Aug 2008 15:02:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=280</guid>
		<description><![CDATA[写OA，使用mysql存储session，这样，是为了获得在线用户的列表，为做一个web im做准备。
首先创建表,注，这里使用了adodb中数据字典的描述方法：
$Session_Fields = &#34;
session_id VARCHAR(100) NOTNULL,
session_value X DEFAULT '',
session_expires I(10) DEFAULT NULL,
userid I(5) DEFAULT NULL
&#34;;
$Session_Tables = array('mysql' =&#62; &#34;ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT = 'session表'&#34;);
$dict = NewDataDictionary(GetDB());
$sqlarray = $dict-&#62;CreateTableSQL($_CFG['table']['session'], $Session_Fields, $Session_Tables);
$dict-&#62;ExecuteSQLArray($sqlarray);
然后session类:
&#60;?php
/*&#160; Session.Class.php
&#160;*&#160; Session Manager
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 14&#160; sunboyu@gmail.com
&#160;*/
class Session
{
	var $lifetime;
	var [...]]]></description>
			<content:encoded><![CDATA[<p>写OA，使用mysql存储session，这样，是为了获得在线用户的列表，为做一个web im做准备。</p>
<p>首先创建表,注，这里使用了adodb中数据字典的描述方法：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">$Session_Fields = &quot;</li>
<li>session_id VARCHAR(100) NOTNULL,</li>
<li>session_value X DEFAULT '',</li>
<li>session_expires I(10) DEFAULT NULL,</li>
<li>userid I(5) DEFAULT NULL</li>
<li>&quot;;</li>
<li>$Session_Tables = array('mysql' =&gt; &quot;ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT = 'session表'&quot;);</li>
<li>$dict = NewDataDictionary(GetDB());</li>
<li>$sqlarray = $dict-&gt;CreateTableSQL($_CFG['table']['session'], $Session_Fields, $Session_Tables);</li>
<li>$dict-&gt;ExecuteSQLArray($sqlarray);</li></ol></div>
<p>然后session类:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>/*&nbsp; Session.Class.php</li>
<li>&nbsp;*&nbsp; Session Manager</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 14&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*/</li>
<li>class Session</li>
<li>{</li>
<li>	var $lifetime;</li>
<li>	var $db = null;</li>
<li>	function __construct()</li>
<li>	{	</li>
<li>		#return adodb lite connetction</li>
<li>		$this-&gt;db = GetDB();</li>
<li>	}</li>
<li>	#open</li>
<li>	function open( $savepath , $session_name )</li>
<li>	{</li>
<li>		$this-&gt;lifetime =&nbsp; get_cfg_var(&quot;session.gc_maxlifetime&quot;);</li>
<li>		return true;</li>
<li>	}</li>
<li>	#close</li>
<li>	function close()</li>
<li>	{</li>
<li>		return true;</li>
<li>	}</li>
<li>	#read</li>
<li>	function read( $session_id )</li>
<li>	{</li>
<li>		global $_CFG;</li>
<li>		$sql = sprintf(&quot;SELECT * FROM %s WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString( $session_id ));</li>
<li>		$rs = $this-&gt;db-&gt;Execute( $sql );</li>
<li>		if($rs-&gt;RecordCount()&gt;0)</li>
<li>		{</li>
<li>			$result = $rs-&gt;fields;</li>
<li>			</li>
<li>			return $result['session_value'];</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			return null;</li>
<li>		}</li>
<li>	}</li>
<li>	#write</li>
<li>	function write( $session_id , $session_value )</li>
<li>	{</li>
<li>		global $_CFG;</li>
<li>		$sql = sprintf(&quot;SELECT session_id FROM %s WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString( $session_id ));</li>
<li>		$rs = $this-&gt;db-&gt;Execute( $sql );</li>
<li>		if($rs-&gt;RecordCount()==0)</li>
<li>		{</li>
<li>			$newsql = sprintf(&quot;INSERT INTO %s SET session_id = %s , session_value = %s , session_expires = %d&quot;,</li>
<li>				$_CFG['table']['session'],</li>
<li>				GetSqlString( $session_id ),</li>
<li>				GetSqlString( $session_value ),</li>
<li>				GetSqlString( $this-&gt;lifetime+time() , &quot;int&quot; ));</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			$newsql = sprintf(&quot;UPDATE %s SET session_value = %s , session_expires = %d WHERE session_id = %s&quot;,</li>
<li>				$_CFG['table']['session'],</li>
<li>				GetSqlString( $session_value ),</li>
<li>				GetSqlString( $this-&gt;lifetime+time() , &quot;int&quot; ),</li>
<li>				GetSqlString( $session_id ));</li>
<li>		}</li>
<li>		return $this-&gt;db-&gt;Execute( $newsql );</li>
<li>	}</li>
<li>	#destroy</li>
<li>	function destroy( $session_id )</li>
<li>	{	</li>
<li>		global $_CFG;</li>
<li>		$delsql = sprintf(&quot;DELETE FROM %s WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString( $session_id ));</li>
<li>		return $this-&gt;db-&gt;Execute( $delsql );</li>
<li>	}</li>
<li>	#gc</li>
<li>	function gc()</li>
<li>	{</li>
<li>		 global $_CFG;</li>
<li>		 $gcsql = sprintf(&quot;DELETE FROM %s WHERE session_expires &lt; %d&quot;,$_CFG['table']['session'],time());</li>
<li>		 return $this-&gt;db-&gt;Execute( $gcsql );</li>
<li>	}</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>session机制，之前已经介绍，实现代码如下</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">$session = new Session();</li>
<li>	session_set_save_handler(array(&amp;$session,&quot;open&quot;),</li>
<li>							 array(&amp;$session,&quot;close&quot;),</li>
<li>							 array(&amp;$session,&quot;read&quot;),</li>
<li>							 array(&amp;$session,&quot;write&quot;),</li>
<li>							 array(&amp;$session,&quot;destroy&quot;),</li>
<li>							 array(&amp;$session,&quot;gc&quot;));</li>
<li>	session_start();</li></ol></div>
<p>把session与用户id对应，使用以下语句即可</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">sprintf(&quot;UPDATE %s SET userid = %d WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString($rs['id'],'int'),GetSqlString(session_id(),'text'))</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/15/%e4%bd%bf%e7%94%a8mysql%e4%bf%9d%e5%ad%98session%ef%bc%8c%e5%b9%b6%e5%bb%ba%e7%ab%8b%e5%9c%a8%e7%ba%bf%e7%94%a8%e6%88%b7%e5%88%97%e8%a1%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sunboyu-amp-mod-V1.0 alpha</title>
		<link>http://www.sunboyu.cn/2008/07/26/sunboyu-amp-mod-v10-alpha.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/26/sunboyu-amp-mod-v10-alpha.shtml#comments</comments>
		<pubDate>Sat, 26 Jul 2008 05:37:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[amp]]></category>
		<category><![CDATA[mod]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=222</guid>
		<description><![CDATA[重新做了个模块版的，这次apache使用动态编译
sunboyu-amp-isapi-v10-alpha
]]></description>
			<content:encoded><![CDATA[<p>重新做了个模块版的，这次apache使用动态编译</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/07/sunboyu-amp-isapi-v10-alpha.txt">sunboyu-amp-isapi-v10-alpha</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/26/sunboyu-amp-mod-v10-alpha.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sunboyu-amp-fastcgi-V1.0 Alpha版本发布</title>
		<link>http://www.sunboyu.cn/2008/07/24/sunboyu-amp-fastcgi-v10-alpha%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/24/sunboyu-amp-fastcgi-v10-alpha%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83.shtml#comments</comments>
		<pubDate>Thu, 24 Jul 2008 06:04:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[amp]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[LAMP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=218</guid>
		<description><![CDATA[sunboyu-amp-fastcgi-v10-alpha
基本都配置完毕了，但整体流程没有彻底自动化，适当的时候会作出stable版本。
# author:sunboyu@gmail.com
# qq:176300676 msn:sunboyu@gmail.com
# http://www.sunboyu.cn
#!/bin/sh
h_path = &#8220;/root/&#8221;
url=&#8221;http://www.sunboyu.cn/sourse/&#8221;
install_dir=&#8221;/opt/&#8221;
mkdir $install_dir
termcap_sourse_name=&#8221;termcap-1.3.1&#8243;
mysql_sourse_name=&#8221;mysql-5.0.22&#8243;
mysql_install_dir=$install_dir$mysql_sourse_name
openssl_sourse_name=&#8221;openssl-0.9.8g&#8221;
openssl_install_dir=$install_dir$openssl_sourse_name
httpd_sourse_name=&#8221;httpd-2.2.9&#8243;
httpd_install_dir=$install_dir$httpd_sourse_name
fastcgi_sourse_name=&#8221;mod_fastcgi-2.4.6&#8243;
fastcgi_install_dir=$install_dir$fastcgi_sourse_name
fcgid_sourse_name=&#8221;mod_fcgid.2.2&#8243;
libxml2_sourse_name=&#8221;libxml2-2.6.30&#8243;
libxml2_install_dir=$install_dir$libxml2_sourse_name
zlib_sourse_name=&#8221;zlib-1.2.3&#8243;
jpeg_sourse_name=&#8221;jpegsrc.v6b&#8221;
jpeg_install_dir=$install_dir$jpeg_sourse_name
libpng_sourse_name=&#8221;libpng-1.2.29&#8243;
libpng_install_dir=$install_dir$libpng_sourse_name
freetype_sourse_name=&#8221;freetype-2.3.7&#8243;
freetype_install_dir=$install_dir$freetype_sourse_name
php_sourse_name=&#8221;php-5.2.6&#8243;
php_install_dir=$install_dir$php_sourse_name
gd_sourse_name=&#8221;gd-2.0.36RC1&#8243;
gd_install_dir=$install_dir$gd_sourse_name
###MYSQL依赖库
wget ${url}${termcap_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $termcap_sourse_name&#8221;.tar.gz&#8221;
cd $termcap_sourse_name
./configure
make &#38;&#38; make install
cd ..
#rm -rf ${termcap_sourse_name}*
###openssl
wget ${url}${openssl_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $openssl_sourse_name&#8221;.tar.gz&#8221;
cd $openssl_sourse_name
./Configure &#8211;prefix=$openssl_install_dir
make &#38;&#38; make install
cd ..
#rm -rf ${openssl_sourse_name}*
###libxml
wget ${url}${libxml2_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $libxml2_sourse_name&#8221;.tar.gz&#8221;
cd $libxml2_sourse_name
./configure &#8211;prefix=$libxml2_install_dir
make &#38;&#38; make install
cd ..
#rm -rf ${libxml2_sourse_name}*
###zlib
wget ${url}${zlib_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $zlib_sourse_name&#8221;.tar.gz&#8221;
cd $zlib_sourse_name
./configure
make &#38;&#38; make install
cd ..
cp /usr/lib/libz.so.1 /usr/lib/libz.so
#rm -rf ${zlib_sourse_name}*
###jpeg
wget ${url}${jpeg_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $jpeg_sourse_name&#8221;.tar.gz&#8221;
cd [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/07/sunboyu-amp-fastcgi-v10-alpha.txt">sunboyu-amp-fastcgi-v10-alpha</a></p>
<p>基本都配置完毕了，但整体流程没有彻底自动化，适当的时候会作出stable版本。<br />
# author:sunboyu@gmail.com<br />
# qq:176300676 msn:sunboyu@gmail.com<br />
# http://www.sunboyu.cn</p>
<p>#!/bin/sh<br />
h_path = &#8220;/root/&#8221;<br />
url=&#8221;http://www.sunboyu.cn/sourse/&#8221;<br />
install_dir=&#8221;/opt/&#8221;<br />
mkdir $install_dir</p>
<p>termcap_sourse_name=&#8221;termcap-1.3.1&#8243;</p>
<p>mysql_sourse_name=&#8221;mysql-5.0.22&#8243;<br />
mysql_install_dir=$install_dir$mysql_sourse_name</p>
<p>openssl_sourse_name=&#8221;openssl-0.9.8g&#8221;<br />
openssl_install_dir=$install_dir$openssl_sourse_name</p>
<p>httpd_sourse_name=&#8221;httpd-2.2.9&#8243;<br />
httpd_install_dir=$install_dir$httpd_sourse_name</p>
<p>fastcgi_sourse_name=&#8221;mod_fastcgi-2.4.6&#8243;<br />
fastcgi_install_dir=$install_dir$fastcgi_sourse_name</p>
<p>fcgid_sourse_name=&#8221;mod_fcgid.2.2&#8243;</p>
<p>libxml2_sourse_name=&#8221;libxml2-2.6.30&#8243;<br />
libxml2_install_dir=$install_dir$libxml2_sourse_name</p>
<p>zlib_sourse_name=&#8221;zlib-1.2.3&#8243;</p>
<p>jpeg_sourse_name=&#8221;jpegsrc.v6b&#8221;<br />
jpeg_install_dir=$install_dir$jpeg_sourse_name</p>
<p>libpng_sourse_name=&#8221;libpng-1.2.29&#8243;<br />
libpng_install_dir=$install_dir$libpng_sourse_name</p>
<p>freetype_sourse_name=&#8221;freetype-2.3.7&#8243;<br />
freetype_install_dir=$install_dir$freetype_sourse_name</p>
<p>php_sourse_name=&#8221;php-5.2.6&#8243;<br />
php_install_dir=$install_dir$php_sourse_name</p>
<p>gd_sourse_name=&#8221;gd-2.0.36RC1&#8243;<br />
gd_install_dir=$install_dir$gd_sourse_name</p>
<p>###MYSQL依赖库<br />
wget ${url}${termcap_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $termcap_sourse_name&#8221;.tar.gz&#8221;<br />
cd $termcap_sourse_name<br />
./configure<br />
make &amp;&amp; make install<br />
cd ..<br />
#rm -rf ${termcap_sourse_name}*<br />
###openssl<br />
wget ${url}${openssl_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $openssl_sourse_name&#8221;.tar.gz&#8221;<br />
cd $openssl_sourse_name<br />
./Configure &#8211;prefix=$openssl_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
#rm -rf ${openssl_sourse_name}*<br />
###libxml<br />
wget ${url}${libxml2_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $libxml2_sourse_name&#8221;.tar.gz&#8221;<br />
cd $libxml2_sourse_name<br />
./configure &#8211;prefix=$libxml2_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
#rm -rf ${libxml2_sourse_name}*<br />
###zlib<br />
wget ${url}${zlib_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $zlib_sourse_name&#8221;.tar.gz&#8221;<br />
cd $zlib_sourse_name<br />
./configure<br />
make &amp;&amp; make install<br />
cd ..<br />
cp /usr/lib/libz.so.1 /usr/lib/libz.so<br />
#rm -rf ${zlib_sourse_name}*<br />
###jpeg<br />
wget ${url}${jpeg_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $jpeg_sourse_name&#8221;.tar.gz&#8221;<br />
cd jpeg-6b<br />
./configure<br />
mkdir /usr/local/man/<br />
mkdir /usr/local/man/man1/<br />
mkdir /usr/local/man/man1/cjpeg/<br />
make &amp;&amp; make install<br />
cp /usr/lib/libjpeg.so.62 /usr/lib/libjpeg.so<br />
cp jpeglib.h /usr/include/jpeglib.h<br />
cp jconfig.h /usr/include/jconfig.h<br />
cp jmorecfg.h /usr/include/jmorecfg.h<br />
cp jerror.h /usr/include/jerror.h<br />
cd ..<br />
#rm -rf ${jpeg_sourse_name}.tar.gz<br />
#rm -rf jpeg-6b<br />
###png<br />
wget ${url}${libpng_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $libpng_sourse_name&#8221;.tar.gz&#8221;<br />
cd $libpng_sourse_name<br />
./configure &#8211;prefix=$libpng_install_dir<br />
make &amp;&amp; make install<br />
cp png* /usr/include/<br />
cd ..<br />
#rm -rf ${libpng_sourse_name}*<br />
###freetype<br />
wget ${url}${freetype_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $freetype_sourse_name&#8221;.tar.gz&#8221;<br />
cd $freetype_sourse_name<br />
./configure &#8211;prefix=$freetype_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
#rm -rf ${freetype_sourse_name}*<br />
###GD2<br />
wget ${url}${gd_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $gd_sourse_name&#8221;.tar.gz&#8221;<br />
cd $gd_sourse_name<br />
./configure &#8211;prefix=$gd_install_dir &#8211;with-png=/opt/libpng-1.2.29 &#8211;with-freetype=/opt/freetype-2.3.7 &#8211;with-jpeg=/usr/lib/libjpeg.so<br />
make &amp;&amp; make install<br />
cd ..<br />
#rm -rf ${gd_sourse_name}*<br />
###MYSQL<br />
groupadd mysql<br />
useradd -g mysql mysql<br />
wget ${url}${mysql_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $mysql_sourse_name&#8221;.tar.gz&#8221;<br />
cd $mysql_sourse_name<br />
./configure &#8211;prefix=$mysql_install_dir &#8211;without-debug &#8211;with-unix-socket-path=/tmp/mysql.sock &#8211;with-client-ldflags=-all-static &#8211;with-mysqld-ldflags=-all-static &#8211;enable-local-infile &#8211;enable-largefile &#8211;with-charset=utf8 &#8211;with-pic &#8211;with-mysqld-libs &#8211;with-comment &#8211;with-query-cache &#8211;with-bench &#8211;with-big-tables &#8211;with-innodb &#8211;with-mysqld-use=mysql<br />
make &amp;&amp; make install<br />
cp ./support-files/my-medium.cnf /etc/my.cnf<br />
cp ./support-files/mysql.server /etc/init.d/mysqld<br />
cd ..<br />
#mkdir $mysql_install_dir/var/<br />
#$mysql_install_dir/bin/mysql_install_db &#8211;user=mysql &amp;<br />
#$mysql_install_dir/bin/mysqld_safe &#8211;user=mysql &amp;</p>
<p>echo ${mysql_install_dir}&#8221;/bin/mysqld_safe &#8211;user=mysql &amp;&#8221;&gt;&gt;/etc/rc.local<br />
#rm -rf ${mysql_sourse_name}*<br />
###APACHE<br />
wget ${url}${httpd_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $httpd_sourse_name&#8221;.tar.gz&#8221;<br />
cd $httpd_sourse_name<br />
./configure &#8211;prefix=$httpd_install_dir &#8211;enable-authz-dbm &#8211;enable-log-config &#8211;enable-headers &#8211;enable-setenvif &#8211;with-ssl=$openssl_install_dir &#8211;enable-static-ab &#8211;enable-http &#8211;enable-mime &#8211;enable-status &#8211;enable-suexec &#8211;enable-vhost-alias &#8211;enable-dir &#8211;enable-rewrite &#8211;with-mpm=worker<br />
make &amp;&amp; make install<br />
cd ..<br />
ln -s $httpd_install_dir/bin/apachectl /etc/init.d/httpd<br />
echo $httpd_install_dir/bin/apachectl start&gt;&gt;/etc/rc.local<br />
chkconfig &#8211;level 345 httpd on<br />
#rm -rf ${httpd_sourse_name}*<br />
###fastcgi<br />
wget ${url}${fastcgi_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $fastcgi_sourse_name&#8221;.tar.gz&#8221;<br />
cd $fastcgi_sourse_name<br />
sed &#8217;s/\/usr\/local\/apache2/\/opt\/httpd-2.2.9\//g&#8217; Makefile.AP2 &gt; Makefile<br />
make &amp;&amp; make install<br />
cd ..<br />
###fcgid<br />
wget ${url}${fcgid_sourse_name}&#8221;.tgz&#8221;<br />
tar -zxvf $fcgid_sourse_name&#8221;.tgz&#8221;<br />
cd $fcgid_sourse_name<br />
mv Makefile Makefile.AP2<br />
sed &#8217;s/\/usr\/local\/apache2/\/opt\/httpd-2.2.9\//g&#8217; Makefile.AP2 &gt; Makefile<br />
make &amp;&amp; make install<br />
cd ..<br />
echo LoadModule fcgid_module modules/mod_fcgid.so&gt;&gt;$httpd_install_dir/conf/httpd.conf<br />
echo AddHandler fcgid-script .php&gt;&gt;$httpd_install_dir/conf/httpd.conf<br />
echo &#8220;FCGIWrapper &#8220;${php_install_dir}&#8221;/bin/php-cgi .php&#8221;&gt;&gt;$httpd_install_dir/conf/httpd.conf<br />
#rm -rf ${fastcgi_sourse_name}*<br />
###PHP<br />
wget ${url}${php_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $php_sourse_name&#8221;.tar.gz&#8221;<br />
cd $php_sourse_name<br />
cp php.ini-dist php.ini<br />
./configure &#8211;prefix=$php_install_dir &#8211;with-libxml-dir=$libxml2_install_dir &#8211;enable-cli &#8211;enable-cgi &#8211;enable-fastcgi &#8211;enable-force-cgi-redirect &#8211;enable-discard-path &#8211;enable-path-info-check &#8211;with-openssl &#8211;with-pcre-regex &#8211;enable-calendar &#8211;enable-dom &#8211;enable-ftp &#8211;with-openssl-dir=/usr/local/ssl &#8211;enable-gd-jis-conv &#8211;enable-hash &#8211;with-iconv &#8211;enable-json &#8211;enable-mbstring &#8211;enable-mbregex &#8211;enable-pdo &#8211;enable-posix &#8211;enable-libxml=$xml2_install_dir &#8211;enable-simplexml &#8211;with-sqlite &#8211;enable-tokenizer &#8211;enable-xmlreader &#8211;enable-xmlwriter &#8211;with-zlib &#8211;with-freetype-dir=$freetype_install_dir &#8211;with-gd=$gd_install_dir &#8211;with-jpeg-dir=/usr/lib/libjpeg.so &#8211;with-libpng-dir=/opt/libpng-1.2.29/lib/libpng12.so &#8211;with-zlib-dir=/usr/lib/libz.so &#8211;with-mime-magic &#8211;with-mysql=$mysql_install_dir &#8211;with-zlib-dir=/usr/lib/libz.so &#8211;with-pdo-mysql=$mysql_install_dir &#8211;with-pdo-sqlite &#8211;enable-posix &#8211;enable-soap<br />
make &amp;&amp; make install<br />
cp php.ini $php_install_dir/lib/<br />
cd ..<br />
$mysql_install_dir/bin/mysql_install_db &#8211;user=mysql &amp;</p>
<p>service httpd start<br />
service mysqld start</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/24/sunboyu-amp-fastcgi-v10-alpha%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>amp自动安装脚本安装部分已经完成</title>
		<link>http://www.sunboyu.cn/2008/07/22/amp%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%e5%ae%89%e8%a3%85%e9%83%a8%e5%88%86%e5%b7%b2%e7%bb%8f%e5%ae%8c%e6%88%90.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/22/amp%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%e5%ae%89%e8%a3%85%e9%83%a8%e5%88%86%e5%b7%b2%e7%bb%8f%e5%ae%8c%e6%88%90.shtml#comments</comments>
		<pubDate>Tue, 22 Jul 2008 04:04:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apm]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=207</guid>
		<description><![CDATA[做个版本存档
myshell_demo
]]></description>
			<content:encoded><![CDATA[<p>做个版本存档</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/07/myshell_demo1e5ae8ce7be8ee78988.rar">myshell_demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/22/amp%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%e5%ae%89%e8%a3%85%e9%83%a8%e5%88%86%e5%b7%b2%e7%bb%8f%e5%ae%8c%e6%88%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LAMP自动安装脚本</title>
		<link>http://www.sunboyu.cn/2008/07/15/lamp%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/15/lamp%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac.shtml#comments</comments>
		<pubDate>Tue, 15 Jul 2008 15:08:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[自动脚本]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=200</guid>
		<description><![CDATA[mysql，apache的基本搞定了，php的还有很多问题，先放出这些代码，方便自己操作。PHP部分正在调试。
#!/bin/sh
h_path = &#8220;/root/&#8221;
url=&#8221;http://www.sunboyu.cn/sourse/&#8221;
install_dir=&#8221;/opt/&#8221;
mkdir $install_dir
termcap_sourse_name=&#8221;termcap-1.3.1&#8243;
mysql_sourse_name=&#8221;mysql-5.0.22&#8243;
mysql_install_dir=$install_dir$mysql_sourse_name
openssl_sourse_name=&#8221;openssl-0.9.8g&#8221;
openssl_install_dir=$install_dir$openssl_sourse_name
httpd_sourse_name=&#8221;httpd-2.2.9&#8243;
httpd_install_dir=$install_dir$httpd_sourse_name
fastcgi_sourse_name=&#8221;mod_fastcgi-2.4.6&#8243;
fastcgi_install_dir=$install_dir$fastcgi_sourse_name
libxml2_sourse_name=&#8221;libxml2-2.6.30&#8243;
libxml2_install_dir=$install_dir$libxml2_sourse_name
zlib_sourse_name=&#8221;zlib-1.2.3&#8243;
zlib_install_dir=$install_dir$zlib_sourse_name
jpeg_sourse_name=&#8221;jpegsrc.v6b&#8221;
jpeg_install_dir=$install_dir$jpeg_sourse_name
libpng_sourse_name=&#8221;libpng-1.2.29&#8243;
libpng_install_dir=$install_dir$libpng_sourse_name
freetype_sourse_name=&#8221;freetype-2.3.7&#8243;
freetype_install_dir=$install_dir$freetype_sourse_name
php_sourse_name=&#8221;php-5.2.6&#8243;
php_install_dir=$install_dir$php_sourse_name
###MYSQL
wget ${url}${termcap_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $termcap_sourse_name&#8221;.tar.gz&#8221;
cd $termcap_sourse_name
./configure
make &#38;&#38; make install
cd ..
rm -rf ${termcap_sourse_name}*
groupadd mysql
useradd -g mysql mysql
wget ${url}${mysql_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $mysql_sourse_name&#8221;.tar.gz&#8221;
cd $mysql_sourse_name
./configure &#8211;prefix=$mysql_install_dir &#8211;enable-thread-safe-client &#8211;enable-local-infile &#8211;enable-largefile &#8211;with-charset=utf8 &#8211;with-uca &#8211;with-gnu-ld &#8211;with-pic &#8211;with-mysqld-libs &#8211;with-comment &#8211;with-query-cache &#8211;with-bench &#8211;with-big-tables &#8211;with-innodb &#8211;with-mysqld-use=mysql
make &#38;&#38; make install
cd ..
rm -rf ${mysql_sourse_name}*
###APACHE
wget ${url}${openssl_sourse_name}&#8221;.tar.gz&#8221;
tar -zxvf $openssl_sourse_name&#8221;.tar.gz&#8221;
cd $openssl_sourse_name
./configure &#8211;prefix=$openssl_install_dir
make &#38;&#38; make install
cd ..
rm -rf ${openssl_sourse_name}*
wget ${url}${httpd_sourse_name}&#8221;.tar.gz&#8221;
tar [...]]]></description>
			<content:encoded><![CDATA[<p>mysql，apache的基本搞定了，php的还有很多问题，先放出这些代码，方便自己操作。PHP部分正在调试。</p>
<p>#!/bin/sh<br />
h_path = &#8220;/root/&#8221;<br />
url=&#8221;http://www.sunboyu.cn/sourse/&#8221;<br />
install_dir=&#8221;/opt/&#8221;<br />
mkdir $install_dir</p>
<p>termcap_sourse_name=&#8221;termcap-1.3.1&#8243;</p>
<p>mysql_sourse_name=&#8221;mysql-5.0.22&#8243;<br />
mysql_install_dir=$install_dir$mysql_sourse_name</p>
<p>openssl_sourse_name=&#8221;openssl-0.9.8g&#8221;<br />
openssl_install_dir=$install_dir$openssl_sourse_name</p>
<p>httpd_sourse_name=&#8221;httpd-2.2.9&#8243;<br />
httpd_install_dir=$install_dir$httpd_sourse_name</p>
<p>fastcgi_sourse_name=&#8221;mod_fastcgi-2.4.6&#8243;<br />
fastcgi_install_dir=$install_dir$fastcgi_sourse_name</p>
<p>libxml2_sourse_name=&#8221;libxml2-2.6.30&#8243;<br />
libxml2_install_dir=$install_dir$libxml2_sourse_name</p>
<p>zlib_sourse_name=&#8221;zlib-1.2.3&#8243;<br />
zlib_install_dir=$install_dir$zlib_sourse_name</p>
<p>jpeg_sourse_name=&#8221;jpegsrc.v6b&#8221;<br />
jpeg_install_dir=$install_dir$jpeg_sourse_name</p>
<p>libpng_sourse_name=&#8221;libpng-1.2.29&#8243;<br />
libpng_install_dir=$install_dir$libpng_sourse_name</p>
<p>freetype_sourse_name=&#8221;freetype-2.3.7&#8243;<br />
freetype_install_dir=$install_dir$freetype_sourse_name</p>
<p>php_sourse_name=&#8221;php-5.2.6&#8243;<br />
php_install_dir=$install_dir$php_sourse_name</p>
<p>###MYSQL<br />
wget ${url}${termcap_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $termcap_sourse_name&#8221;.tar.gz&#8221;<br />
cd $termcap_sourse_name<br />
./configure<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${termcap_sourse_name}*</p>
<p>groupadd mysql<br />
useradd -g mysql mysql</p>
<p>wget ${url}${mysql_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $mysql_sourse_name&#8221;.tar.gz&#8221;<br />
cd $mysql_sourse_name<br />
./configure &#8211;prefix=$mysql_install_dir &#8211;enable-thread-safe-client &#8211;enable-local-infile &#8211;enable-largefile &#8211;with-charset=utf8 &#8211;with-uca &#8211;with-gnu-ld &#8211;with-pic &#8211;with-mysqld-libs &#8211;with-comment &#8211;with-query-cache &#8211;with-bench &#8211;with-big-tables &#8211;with-innodb &#8211;with-mysqld-use=mysql<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${mysql_sourse_name}*</p>
<p>###APACHE</p>
<p>wget ${url}${openssl_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $openssl_sourse_name&#8221;.tar.gz&#8221;<br />
cd $openssl_sourse_name<br />
./configure &#8211;prefix=$openssl_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${openssl_sourse_name}*</p>
<p>wget ${url}${httpd_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $httpd_sourse_name&#8221;.tar.gz&#8221;<br />
cd $httpd_sourse_name<br />
./configure &#8211;prefix=$httpd_install_dir &#8211;enable-authz-dbm &#8211;enable-log-config &#8211;enable-headers &#8211;enable-setenvif &#8211;with-ssl=$openssl_install_dir &#8211;enable-static-ab &#8211;enable-http &#8211;enable-mime &#8211;enable-status &#8211;enable-suexec &#8211;enable-vhost-alias &#8211;enable-dir &#8211;enable-rewrite &#8211;with-mpm=worker<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${httpd_sourse_name}*</p>
<p>wget ${url}${fastcgi_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $fastcgi_sourse_name&#8221;.tar.gz&#8221;<br />
cd $fastcgi_sourse_name<br />
sed &#8217;s/\/usr\/local\/apache2/\/opt\/httpd-2.2.9\//g&#8217; Makefile.AP2 &gt; Makefile<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${fastcgi_sourse_name}*</p>
<p>###PHP<br />
wget ${url}${libxml2_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $libxml2_sourse_name&#8221;.tar.gz&#8221;<br />
cd $libxml2_sourse_name<br />
./configure &#8211;prefix=$libxml2_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${libxml2_sourse_name}*</p>
<p>wget ${url}${zlib_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $zlib_sourse_name&#8221;.tar.gz&#8221;<br />
cd $zlib_sourse_name<br />
./configure &#8211;prefix=$zlib_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${zlib_sourse_name}*</p>
<p>wget ${url}${jpeg_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $jpeg_sourse_name&#8221;.tar.gz&#8221;<br />
cd $jpeg_sourse_name<br />
cp makefile.unix Makefile<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${jpeg_sourse_name}*</p>
<p>wget ${url}${libpng_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $libpng_sourse_name&#8221;.tar.gz&#8221;<br />
cd $libpng_sourse_name<br />
./configure &#8211;prefix=$libpng_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${libpng_sourse_name}*</p>
<p>wget ${url}${freetype_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $freetype_sourse_name&#8221;.tar.gz&#8221;<br />
cd $freetype_sourse_name<br />
./configure &#8211;prefix=$freetype_install_dir<br />
make &amp;&amp; make install<br />
cd ..<br />
rm -rf ${freetype_sourse_name}*</p>
<p>wget ${url}${php_sourse_name}&#8221;.tar.gz&#8221;<br />
tar -zxvf $php_sourse_name&#8221;.tar.gz&#8221;<br />
./php-5.2.6/configure &#8211;enable-cli &#8211;enable-cgi &#8211;enable-fastcgi &#8211;enable-force-cgi-redirect &#8211;enable-discard-path &#8211;enable-path-info-check &#8211;with-openssl &#8211;with-pcre-regex &#8211;enable-calendar &#8211;enable-dom &#8211;enable-ftp &#8211;with-openssl-dir=/usr/local/openssl &#8211;enable-gd-jis-conv &#8211;enable-hash &#8211;with-iconv &#8211;enable-json &#8211;enable-mbstring &#8211;enable-mbregex &#8211;enable-pdo &#8211;enable-posix &#8211;enable-libxml &#8211;enable-simplexml &#8211;with-sqlite &#8211;enable-tokenizer &#8211;enable-xmlreader &#8211;enable-xmlwriter &#8211;with-zlib=/usr/local/zlib &#8211;with-freetype-dir=/usr/local/freetype &#8211;with-gd &#8211;with-jpeg-dir=/usr/lib/libjpeg.so.62.0.0</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/15/lamp%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>打造全能优化的Linux+Apache+PHP+Mysql服务器（3）</title>
		<link>http://www.sunboyu.cn/2008/07/15/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%883%ef%bc%89.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/15/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%883%ef%bc%89.shtml#comments</comments>
		<pubDate>Tue, 15 Jul 2008 06:30:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[openssl]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=199</guid>
		<description><![CDATA[apache部分
先安装openssl
./configure &#8211;enable-authz-dbm &#8211;enable-log-config &#8211;enable-headers &#8211;enable-setenvif &#8211;with-ssl=/usr/local/ssl  &#8211;enable-static-ab &#8211;enable-http &#8211;enable-mime &#8211;enable-status &#8211;enable-suexec &#8211;enable-vhost-alias &#8211;enable-dir &#8211;enable-rewrite &#8211;with-mpm=worker
fastcgi
cp Makefile.AP2 Makefile
make make install
]]></description>
			<content:encoded><![CDATA[<p>apache部分</p>
<p>先安装openssl</p>
<p>./configure &#8211;enable-authz-dbm &#8211;enable-log-config &#8211;enable-headers &#8211;enable-setenvif &#8211;with-ssl=/usr/local/ssl  &#8211;enable-static-ab &#8211;enable-http &#8211;enable-mime &#8211;enable-status &#8211;enable-suexec &#8211;enable-vhost-alias &#8211;enable-dir &#8211;enable-rewrite &#8211;with-mpm=worker</p>
<p>fastcgi</p>
<p>cp Makefile.AP2 Makefile<br />
make make install</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/15/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%883%ef%bc%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>打造全能优化的Linux+Apache+PHP+Mysql服务器（2）</title>
		<link>http://www.sunboyu.cn/2008/07/15/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%882%ef%bc%89.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/15/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%882%ef%bc%89.shtml#comments</comments>
		<pubDate>Tue, 15 Jul 2008 03:33:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[安装]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=197</guid>
		<description><![CDATA[MYsql的安装
mysql 编译参数
./configure &#8211;enable-thread-safe-client &#8211;enable-local-infile &#8211;enable-largefile &#8211;with-charset=utf8  &#8211;with-uca &#8211;with-gnu-ld &#8211;with-pic &#8211;with-mysqld-libs &#8211;with-comment &#8211;with-query-cache &#8211;with-bench &#8211;with-big-tables &#8211;with-innodb &#8211;with-mysqld-use=mysql
/usr/local/bin/mysql_install_db
/usr/local/bin/mysqld_safe  &#8211;user mysql
如果安装时候有错误提示，也许是缺少这个组件  http://www.sunboyu.cn/sourse/termcap-1.3.1.tar.gz
]]></description>
			<content:encoded><![CDATA[<p>MYsql的安装</p>
<p>mysql 编译参数<br />
./configure &#8211;enable-thread-safe-client &#8211;enable-local-infile &#8211;enable-largefile &#8211;with-charset=utf8  &#8211;with-uca &#8211;with-gnu-ld &#8211;with-pic &#8211;with-mysqld-libs &#8211;with-comment &#8211;with-query-cache &#8211;with-bench &#8211;with-big-tables &#8211;with-innodb &#8211;with-mysqld-use=mysql</p>
<p>/usr/local/bin/mysql_install_db</p>
<p>/usr/local/bin/mysqld_safe  &#8211;user mysql</p>
<p>如果安装时候有错误提示，也许是缺少这个组件  http://www.sunboyu.cn/sourse/termcap-1.3.1.tar.gz</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/15/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%882%ef%bc%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>打造全能优化的Linux+Apache+PHP+Mysql服务器（1）</title>
		<link>http://www.sunboyu.cn/2008/07/13/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%881%ef%bc%89.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/13/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%881%ef%bc%89.shtml#comments</comments>
		<pubDate>Sun, 13 Jul 2008 13:05:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=196</guid>
		<description><![CDATA[fastcgi   http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
apache2   http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.gz
mysql5    http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51b.tar.gz/from/http://mysql.mirrors.arminco.com/
php5      http://cn2.php.net/distributions/php-5.2.6.tar.gz
libxml2
gd-jpeg   ftp://192.48.96.9/graphics/jpeg/jpegsrc.v6b.tar.gz
freetype  http://voxel.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.7.tar.gz
libpng    http://voxel.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.29.tar.gz
zend      http://www.zend.com/download/55
memcached  http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz
memcache   http://pecl.php.net/get/memcache-3.0.1.tgz
libevent   http://www.monkey.org/~provos/libevent-1.2a.tar.gz
目前想到的功能大概有这些，想到再加。
目前正在研究每一个组件的性能和参数。
]]></description>
			<content:encoded><![CDATA[<p>fastcgi   http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz<br />
apache2   http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.gz<br />
mysql5    http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51b.tar.gz/from/http://mysql.mirrors.arminco.com/<br />
php5      http://cn2.php.net/distributions/php-5.2.6.tar.gz<br />
libxml2<br />
gd-jpeg   ftp://192.48.96.9/graphics/jpeg/jpegsrc.v6b.tar.gz<br />
freetype  http://voxel.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.7.tar.gz<br />
libpng    http://voxel.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.29.tar.gz<br />
zend      http://www.zend.com/download/55</p>
<p>memcached  http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz<br />
memcache   http://pecl.php.net/get/memcache-3.0.1.tgz<br />
libevent   http://www.monkey.org/~provos/libevent-1.2a.tar.gz</p>
<p>目前想到的功能大概有这些，想到再加。</p>
<p>目前正在研究每一个组件的性能和参数。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/13/%e6%89%93%e9%80%a0%e5%85%a8%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84linuxapachephpmysql%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%881%ef%bc%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADODB数据字典的应用</title>
		<link>http://www.sunboyu.cn/2008/07/06/adodb%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e7%9a%84%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/06/adodb%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e7%9a%84%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Sun, 06 Jul 2008 14:14:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[adodb]]></category>
		<category><![CDATA[数据字典]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=182</guid>
		<description><![CDATA[我已经很久没有用adodb了，这次用的adodb lite，除了在查询中多了好多方法外，还发现了数据字典这个功能。
因为adodb是兼容多种数据库的，我们切换数据库的时候当然不想去另一个数据库上去重新简表，但mysql,mssql,sqlite这些库好像都不能互转。
而adodb建立数据字典后，可根据你当前的数据库类型生成相应的sql语句，然后创建数据表，而当我们切换数据库的时候，直接修改数据库类型，然后修改一些关键参数即可实现数据库的切换。
方便的很。
]]></description>
			<content:encoded><![CDATA[<p>我已经很久没有用adodb了，这次用的adodb lite，除了在查询中多了好多方法外，还发现了数据字典这个功能。</p>
<p>因为adodb是兼容多种数据库的，我们切换数据库的时候当然不想去另一个数据库上去重新简表，但mysql,mssql,sqlite这些库好像都不能互转。</p>
<p>而adodb建立数据字典后，可根据你当前的数据库类型生成相应的sql语句，然后创建数据表，而当我们切换数据库的时候，直接修改数据库类型，然后修改一些关键参数即可实现数据库的切换。</p>
<p>方便的很。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/06/adodb%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e7%9a%84%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ADODB Lite-adodb轻量应用</title>
		<link>http://www.sunboyu.cn/2008/07/02/adodb-lite-adodb%e8%bd%bb%e9%87%8f%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/02/adodb-lite-adodb%e8%bd%bb%e9%87%8f%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Wed, 02 Jul 2008 15:25:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[adodb]]></category>
		<category><![CDATA[adodblite]]></category>
		<category><![CDATA[lite]]></category>
		<category><![CDATA[smarty]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=175</guid>
		<description><![CDATA[原来用ADODB进行开发，效率一直是个不小的问题。虽然他可以兼容多个数据库，但在实际开发中几乎没什么用处。小型项目不会去频繁切换数据库，中大的项目也不会忍受它的速度。
突然发现还有个mini版本的adodb lite，官方这样说的：
A small, fast replacement for ADODB that uses 1/6th of the memory and upto 300% faster while being compatible with ADODB using a subset of the most often used ADODB commands.. Supports Frontbase, MaxDB, MiniSql, MSSQL, MySql, Postgres, SqLite and Sybase.
最近做个小程序，正好用上试试，希望不让我失望。
]]></description>
			<content:encoded><![CDATA[<p>原来用ADODB进行开发，效率一直是个不小的问题。虽然他可以兼容多个数据库，但在实际开发中几乎没什么用处。小型项目不会去频繁切换数据库，中大的项目也不会忍受它的速度。</p>
<p>突然发现还有个mini版本的adodb lite，官方这样说的：</p>
<div style="border:1px solid;padding:10px">A small, fast replacement for ADODB that uses 1/6th of the memory and upto 300% faster while being compatible with ADODB using a subset of the most often used ADODB commands.. Supports Frontbase, MaxDB, MiniSql, MSSQL, MySql, Postgres, SqLite and Sybase.</div>
<p>最近做个小程序，正好用上试试，希望不让我失望。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/02/adodb-lite-adodb%e8%bd%bb%e9%87%8f%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql连接机制笔记</title>
		<link>http://www.sunboyu.cn/2008/07/01/mysql%e8%bf%9e%e6%8e%a5%e6%9c%ba%e5%88%b6%e7%ac%94%e8%ae%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2008/07/01/mysql%e8%bf%9e%e6%8e%a5%e6%9c%ba%e5%88%b6%e7%ac%94%e8%ae%b0.shtml#comments</comments>
		<pubDate>Tue, 01 Jul 2008 02:20:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[技术存档]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[socket]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=167</guid>
		<description><![CDATA[php连接mysql是通过socket进行连接。mysql没有连接池，很郁闷的事情。
连接分 pconnect connect，connect是每次查询都新建一个连接。pconnect是在同一页面中，所有查询都使用一个连接。
]]></description>
			<content:encoded><![CDATA[<p>php连接mysql是通过socket进行连接。mysql没有连接池，很郁闷的事情。</p>
<p>连接分 pconnect connect，connect是每次查询都新建一个连接。pconnect是在同一页面中，所有查询都使用一个连接。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/07/01/mysql%e8%bf%9e%e6%8e%a5%e6%9c%ba%e5%88%b6%e7%ac%94%e8%ae%b0.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqli学习中</title>
		<link>http://www.sunboyu.cn/2008/06/28/mysqli%e5%ad%a6%e4%b9%a0%e4%b8%ad.shtml</link>
		<comments>http://www.sunboyu.cn/2008/06/28/mysqli%e5%ad%a6%e4%b9%a0%e4%b8%ad.shtml#comments</comments>
		<pubDate>Sat, 28 Jun 2008 13:47:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[技术存档]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=164</guid>
		<description><![CDATA[任何系统中，数据库连接都是核心的一个操作。
听说mysqli这个组件不错，学习一下，果然发现不少优秀的地方。
http://www.php.net/manual/zh/ref.mysqli.php
这是官方的手册，做个标记，继续学习。
]]></description>
			<content:encoded><![CDATA[<p>任何系统中，数据库连接都是核心的一个操作。</p>
<p>听说mysqli这个组件不错，学习一下，果然发现不少优秀的地方。</p>
<p>http://www.php.net/manual/zh/ref.mysqli.php</p>
<p>这是官方的手册，做个标记，继续学习。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/06/28/mysqli%e5%ad%a6%e4%b9%a0%e4%b8%ad.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP＋MYSQL循环插入1W条记录测试</title>
		<link>http://www.sunboyu.cn/2008/06/16/php%ef%bc%8bmysql%e5%be%aa%e7%8e%af%e6%8f%92%e5%85%a51w%e6%9d%a1%e8%ae%b0%e5%bd%95%e6%b5%8b%e8%af%95.shtml</link>
		<comments>http://www.sunboyu.cn/2008/06/16/php%ef%bc%8bmysql%e5%be%aa%e7%8e%af%e6%8f%92%e5%85%a51w%e6%9d%a1%e8%ae%b0%e5%bd%95%e6%b5%8b%e8%af%95.shtml#comments</comments>
		<pubDate>Mon, 16 Jun 2008 14:55:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[主键]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=122</guid>
		<description><![CDATA[表test，字段 id,content
当id没有设置主键的时候，运行时间为 37.186923027
当id设置成主键的时候，运行时间为 44.7759540081
结论……该睡觉了
有点闲着慌
]]></description>
			<content:encoded><![CDATA[<p>表test，字段 id,content<br />
当id没有设置主键的时候，运行时间为 37.186923027<br />
当id设置成主键的时候，运行时间为 44.7759540081<br />
结论……该睡觉了<br />
有点闲着慌</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/06/16/php%ef%bc%8bmysql%e5%be%aa%e7%8e%af%e6%8f%92%e5%85%a51w%e6%9d%a1%e8%ae%b0%e5%bd%95%e6%b5%8b%e8%af%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.937 seconds -->
