<?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; configure</title>
	<atom:link href="http://blog.thematice.com/html/ycategory/configure/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.thematice.com</link>
	<description>发现自己的脑袋不好使了，用blog来记录真的很好用。</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:33:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mysql编译安装参数优化</title>
		<link>http://blog.thematice.com/html/y2010/1076_mysql%e7%bc%96%e8%af%91%e5%ae%89%e8%a3%85%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql%25e7%25bc%2596%25e8%25af%2591%25e5%25ae%2589%25e8%25a3%2585%25e5%258f%2582%25e6%2595%25b0%25e4%25bc%2598%25e5%258c%2596</link>
		<comments>http://blog.thematice.com/html/y2010/1076_mysql%e7%bc%96%e8%af%91%e5%ae%89%e8%a3%85%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96.html#comments</comments>
		<pubDate>Fri, 18 Jun 2010 15:45:16 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=1076</guid>
		<description><![CDATA[关键字: mysql compile 1. -static 13% &#8211;with-client-ldflags=-all-static &#8211;with-mysqld-ldflags=-all-static 静态链接提高13%性能 2. -pgcc 1% CFLAGS=”-O3 -mpentiumpro -mstack-align-double” CXX=gcc \ CXXFLAGS=”-O3 -mpentiumpro -mstack-align-double \ -felide-constructors -fno-exceptions -fno-rtti” 如果是Inter处理器，使用pgcc提高1%性能 3. Unix Socket 7.5% &#8211;with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock 使用unix套接字链接提高7.5%性能，所以在windows下mysql性能肯定不如unix下面 4. &#8211;enable-assembler 允许使用汇编模式(优化性能) 下面是总体的编译文件 编译代码 CFLAGS=”-O3&#8243; CXX=gcc CXXFLAGS=”-O3 -felide-constructors \ -fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp” ./configure \ &#8211;prefix=/usr/local/mysql &#8211;enable-assembler \ &#8211;with-mysqld-ldflags=-all-static &#8211;with-client-ldflags=-all-static &#8211;with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock &#8211;with-charset=utf8 &#8211;with-collation=utf8_general_ci [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/1076_mysql%e7%bc%96%e8%af%91%e5%ae%89%e8%a3%85%e5%8f%82%e6%95%b0%e4%bc%98%e5%8c%96.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>linux下用源代码编译mysql（完整步骤）</title>
		<link>http://blog.thematice.com/html/y2010/1092_linux%e4%b8%8b%e7%94%a8%e6%ba%90%e4%bb%a3%e7%a0%81%e7%bc%96%e8%af%91mysql%ef%bc%88%e5%ae%8c%e6%95%b4%e6%ad%a5%e9%aa%a4%ef%bc%89.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux%25e4%25b8%258b%25e7%2594%25a8%25e6%25ba%2590%25e4%25bb%25a3%25e7%25a0%2581%25e7%25bc%2596%25e8%25af%2591mysql%25ef%25bc%2588%25e5%25ae%258c%25e6%2595%25b4%25e6%25ad%25a5%25e9%25aa%25a4%25ef%25bc%2589</link>
		<comments>http://blog.thematice.com/html/y2010/1092_linux%e4%b8%8b%e7%94%a8%e6%ba%90%e4%bb%a3%e7%a0%81%e7%bc%96%e8%af%91mysql%ef%bc%88%e5%ae%8c%e6%95%b4%e6%ad%a5%e9%aa%a4%ef%bc%89.html#comments</comments>
		<pubDate>Tue, 18 May 2010 15:47:03 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=1092</guid>
		<description><![CDATA[linux下用源代码编译apache+mysql+php应用环境linux下用源代码编译mysql（基本步骤） linux下用源代码编译apache linux下用源代码编译php mysql部分。mysql源代码的版本是：mysql-5.1.29-rc.tar.gz 建立mysql运行的用户和组：为了安全起见，myslq需要以特定的用户身份去运行。 首先，我们需要查看系统中现有的用户及用户组： 注意：本文中所有的命令均以root身份运行（既shell提示符为#），如果对linux系统不熟悉，在回车前一定要仔细核对。本文不对命令进行过多的讨论，除非有必要，仅给出需要的命令及参数解释。 grep -in mysql /etc/passwd /etc/group 执行上述命令，-i参数不区分大小写，如果你没有看到包含mysql的信息，则说明你的系统当前 可能 没有配置mysql，下面我们需要为mysql运行创建用户及组。如果你看到结果返回 mysql 的字样，说明mysql运行的帐户信息己建立好了，那么可以跳过下面这一步。 &#60;!&#8211;more&#8211;&#62; groupadd -r -p mysql5 mysql useradd -c “mysql daemon” -r -s /bin/false -d /var/lib/mysql -g mysql -p mysql5 mysql 上述参数解释如下（两个命令参数意义类似）： -c “mysql daemon” mysql用户的描述，如果描述包含多个字符，可以使用引号 -r 将 用户/组 设置为 系统用户/组 -s /bin/false 指定登录外壳，/bin/false为禁止用户从 终端/图形界面 登录 -d /var/lib/mysql，设置用户的主目录，/var/lib/mysql是默认设置，你也可以指定其他位置。 -g [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/1092_linux%e4%b8%8b%e7%94%a8%e6%ba%90%e4%bb%a3%e7%a0%81%e7%bc%96%e8%af%91mysql%ef%bc%88%e5%ae%8c%e6%95%b4%e6%ad%a5%e9%aa%a4%ef%bc%89.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FUNC &#124; Fedora 统一网络控制器 func 介绍</title>
		<link>http://blog.thematice.com/html/y2010/965_fedora-%e7%bb%9f%e4%b8%80%e7%bd%91%e7%bb%9c%e6%8e%a7%e5%88%b6%e5%99%a8-func-%e4%bb%8b%e7%bb%8d.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fedora-%25e7%25bb%259f%25e4%25b8%2580%25e7%25bd%2591%25e7%25bb%259c%25e6%258e%25a7%25e5%2588%25b6%25e5%2599%25a8-func-%25e4%25bb%258b%25e7%25bb%258d</link>
		<comments>http://blog.thematice.com/html/y2010/965_fedora-%e7%bb%9f%e4%b8%80%e7%bd%91%e7%bb%9c%e6%8e%a7%e5%88%b6%e5%99%a8-func-%e4%bb%8b%e7%bb%8d.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 09:16:41 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[func]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[系统管理]]></category>
		<category><![CDATA[certmaster]]></category>
		<category><![CDATA[python-ctypes]]></category>
		<category><![CDATA[python-paste]]></category>
		<category><![CDATA[python-simplejson]]></category>
		<category><![CDATA[smolt]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=965</guid>
		<description><![CDATA[1. Func 简介: Fedora 统一网络控制器 Fedora Unified Network Controller 可以用在RedHat系列产品上 是为了解决统一管理监控问题，而设计开发的系统管理基础框架 1.1. Func 功能特性 Func 可以让你在主控机上一次管理任意多台服务器，或任意多个服务器组 Func 命令行可以直接发送远程命令或者远程获取数据 Func 通讯基于 XMLRPC 和 SSL 标准协议 新装服务器也可以在 Kickstart 文件中自动安装 Func，自动注册到主控服务器 1.2. Func 基于主控端与被控端 建立了 Master &#8211; Slaves 主从 SSL 证书管控体系，可以将证书自动分发到所有受控服务器 1.3. Func 网络架构图 1.4. Func 安装 主控端与被控端都需安装&#160; &#160;Certmaster&#160;&#160;Func 下载：[http://download.fedora.redhat.com/pub/epel/] 1.5. Func 服务端配置 /etc/certmaster/certmaster.conf 编辑，允许autosign == yes 让certmaster启动 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/965_fedora-%e7%bb%9f%e4%b8%80%e7%bd%91%e7%bb%9c%e6%8e%a7%e5%88%b6%e5%99%a8-func-%e4%bb%8b%e7%bb%8d.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下如何安装 *.src.rpm 这样格式的软件包</title>
		<link>http://blog.thematice.com/html/y2010/960_linux%e4%b8%8b%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85-src-rpm-%e8%bf%99%e6%a0%b7%e6%a0%bc%e5%bc%8f%e7%9a%84%e8%bd%af%e4%bb%b6%e5%8c%85.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux%25e4%25b8%258b%25e5%25a6%2582%25e4%25bd%2595%25e5%25ae%2589%25e8%25a3%2585-src-rpm-%25e8%25bf%2599%25e6%25a0%25b7%25e6%25a0%25bc%25e5%25bc%258f%25e7%259a%2584%25e8%25bd%25af%25e4%25bb%25b6%25e5%258c%2585</link>
		<comments>http://blog.thematice.com/html/y2010/960_linux%e4%b8%8b%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85-src-rpm-%e8%bf%99%e6%a0%b7%e6%a0%bc%e5%bc%8f%e7%9a%84%e8%bd%af%e4%bb%b6%e5%8c%85.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 07:56:08 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[rpmbuild]]></category>
		<category><![CDATA[src.rpm]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=960</guid>
		<description><![CDATA[有些软件包是以.src.rpm结尾的, 这类软件包是包含了源代码的rpm包, 在安装时需要进行编译. 这类软件包有两种安装方法. 方法一: ?Download shell.sh1 2 3 4 5 6 7 1. 执行 rpm -i your-package.src.rpm 2. cd /usr/src/redhat/SPECS 3. rpmbuild -bp your-package.specs 一个和软件包同名的specs文件 4. cd /usr/src/redhat/BUILD/your-package/ 一个和软件包同名的目录 5. ./configure 这一步和编译普通的源码软件一样, 可以加上参数, 也可以具体看该目录下的INSTALL文件, 按照指导进行安装 6. make 7. make install 方法二: ?Download shell.sh1 2 3 4 5 6 1. 执行 rpm -i you-package.src.rpm 2. [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2010/960_linux%e4%b8%8b%e5%a6%82%e4%bd%95%e5%ae%89%e8%a3%85-src-rpm-%e8%bf%99%e6%a0%b7%e6%a0%bc%e5%bc%8f%e7%9a%84%e8%bd%af%e4%bb%b6%e5%8c%85.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>理解Load Average做好压力测试</title>
		<link>http://blog.thematice.com/html/y2009/919_load-average-good-understanding-of-stress-testing.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=load-average-good-understanding-of-stress-testing</link>
		<comments>http://blog.thematice.com/html/y2009/919_load-average-good-understanding-of-stress-testing.html#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:27:08 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux shell]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[load Average]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=919</guid>
		<description><![CDATA[最近刚接手的产品问题很多，主要是集中在产品设计和性能上，另外代码的可维护性也很差，这两周处理故障和问题的时间比较多，博客更新的也少了，下面的这篇文章是解释开发小组成员介绍并发编程的一些基本原理而收集到的一篇比较好的文章，作者以浅显易懂的方式介绍了比较复杂的概念。我觉得如果我们能够把一个复杂、抽象的概念如果能够通过生活中常见的场景来加以说明和描述出来，那么我们就真正理解了这个概念。 SIP的第四期结束了，因为控制策略的丰富，早先的的压力测试结果已经无法反映在高并发和高压力下SIP的运行状况，因此需要重新作压力测试。跟在测试人员后面做了快一周的压力测试，压力测试的报告也正式出炉，本来也就算是告一段落，但第二天测试人员说要修改报告，由于这次作压力测试的同学是第一次作，有一个指标没有注意，因此需要修改几个测试结果。那个没有注意的指标就是load average，他和我一样开始只是注意了CPU，内存的使用状况，而没有太注意这个指标，这个指标与他们通常的限制（10左右）有差别。重新测试的结果由于这个指标被要求压低，最后的报告显然不如原来的好看。自己也没有深入过压力测试，但是觉得不搞明白对将来机器配置和扩容都会有影响，因此去问了DBA和SA，得到的结果相差很大，看来不得不自己去找找问题的根本所在了。 通过下面的几个部分的了解，可以一步一步的找出Load Average在压力测试中真正的作用。 CPU时间片 为了提高程序执行效率，大家在很多应用中都采用了多线程模式，这样可以将原来的序列化执行变为并行执行，任务的分解以及并行执行能够极大地提高程序的运行效率。但这都是代码级别的表现，而硬件是如何支持的呢？那就要靠CPU的时间片模式来说明这一切。程序的任何指令的执行往往都会要竞争CPU这个最宝贵的资源，不论你的程序分成了多少个线程去执行不同的任务，他们都必须排队等待获取这个资源来计算和处理命令。先看看单CPU的情况。下面两图描述了时间片模式和非时间片模式下的线程执行的情况： 图 1 非时间片线程执行情况 图 2 非时间片线程执行情况 在图一中可以看到，任何线程如果都排队等待CPU资源的获取，那么所谓的多线程就没有任何实际意义。图二中的CPU Manager只是我虚拟的一个角色，由它来分配和管理CPU的使用状况，此时多线程将会在运行过程中都有机会得到CPU资源，也真正实现了在单CPU的情况下实现多线程并行处理。 多CPU的情况只是单CPU的扩展，当所有的CPU都满负荷运作的时候，就会对每一个CPU采用时间片的方式来提高效率。 在Linux的内核处理过程中，每一个进程默认会有一个固定的时间片来执行命令（默认为1/100秒），这段时间内进程被分配到CPU，然后独占使用。如果使用完，同时未到时间片的规定时间，那么就主动放弃CPU的占用，如果到时间片尚未完成工作，那么CPU的使用权也会被收回，进程将会被中断挂起等待下一个时间片。 CPU利用率和Load Average的区别 压力测试不仅需要对业务场景的并发用户等压力参数作模拟，同时也需要在压力测试过程中随时关注机器的性能情况，来确保压力测试的有效性。当服务器长期处于一种超负荷的情况下运行，所能接收的压力并不是我们所认为的可接受的压力。就好比项目经理在给一个人估工作量的时候，每天都让这个人工作12个小时，那么所制定的项目计划就不是一个合理的计划，那个人迟早会垮掉，而影响整体的项目进度。 CPU利用率在过去常常被我们这些外行认为是判断机器是否已经到了满负荷的一个标准，看到50%-60%的使用率就认为机器就已经压到了临界了。CPU利用率，顾名思义就是对于CPU的使用状况，这是对一个时间段内CPU使用状况的统计，通过这个指标可以看出在某一个时间段内CPU被占用的情况，如果被占用时间很高，那么就需要考虑CPU是否已经处于超负荷运作，长期超负荷运作对于机器本身来说是一种损害，因此必须将CPU的利用率控制在一定的比例下，以保证机器的正常运作。 Load Average是CPU的Load，它所包含的信息不是CPU的使用率状况，而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息，也就是CPU使用队列的长度的统计信息。为什么要统计这个信息，这个信息的对于压力测试的影响究竟是怎么样的，那就通过一个类比来解释CPU利用率和Load Average的区别以及对于压力测试的指导意义。 我们将CPU就类比为电话亭，每一个进程都是一个需要打电话的人。现在一共有4个电话亭（就好比我们的机器有4核），有10个人需要打电话。现在使用电话的规则是管理员会按照顺序给每一个人轮流分配1分钟的使用电话时间，如果使用者在1分钟内使用完毕，那么可以立刻将电话使用权返还给管理员，如果到了1分钟电话使用者还没有使用完毕，那么需要重新排队，等待再次分配使用。 图 3 电话使用场景 上图中对于使用电话的用户又作了一次分类，1min的代表这些使用者占用电话时间小于等于1min，2min表示使用者占用电话时间小于等于2min，以此类推。根据电话使用规则，1min的用户只需要得到一次分配即可完成通话，而其他两类用户需要排队两次到三次。 电话的利用率 = sum (active use cpu time)/period 每一个分配到电话的使用者使用电话时间的总和去除以统计的时间段。这里需要注意的是是使用电话的时间总和(sum(active use cpu time))，这与占用时间的总和(sum(occupy cpu time))是有区别的。（例如一个用户得到了一分钟的使用权，在10秒钟内打了电话，然后去查询号码本花了20秒钟，再用剩下的30秒打了另一个电话，那么占用了电话1分钟，实际只是使用了40秒） 电话的Average Load体现的是在某一统计时间段内，所有使用电话的人加上等待电话分配的人一个平均统计。 电话利用率的统计能够反映的是电话被使用的情况，当电话长期处于被使用而没有的到足够的时间休息间歇，那么对于电话硬件来说是一种超负荷的运作，需要调整使用频度。而电话Average Load却从另一个角度来展现对于电话使用状态的描述，Average Load越高说明对于电话资源的竞争越激烈，电话资源比较短缺。对于资源的申请和维护其实也是需要很大的成本，所以在这种高Average Load的情况下电话资源的长期“热竞争”也是对于硬件的一种损害。 低利用率的情况下是否会有高Load Average的情况产生呢？理解占有时间和使用时间就可以知道，当分配时间片以后，是否使用完全取决于使用者，因此完全可能出现低利用率高Load Average的情况。由此来看，仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的，必须结合Load Average来全局的看CPU的使用情况和申请情况。 所以回过头来再看测试部对于Load Average的要求，在我们机器为8个CPU的情况下，控制在10 Load左右，也就是每一个CPU正在处理一个请求，同时还有2个在等待处理。看了看网上很多人的介绍一般来说Load简单的计算就是2* [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/919_load-average-good-understanding-of-stress-testing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xmemcached 1.2.0-RC2 released</title>
		<link>http://blog.thematice.com/html/y2009/707_xmemcached-120-rc2-released.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xmemcached-120-rc2-released</link>
		<comments>http://blog.thematice.com/html/y2009/707_xmemcached-120-rc2-released.html#comments</comments>
		<pubDate>Sat, 19 Sep 2009 15:26:55 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[Linux  web]]></category>
		<category><![CDATA[Linux tools]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[web(8)]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=707</guid>
		<description><![CDATA[XMemcached 1.2.0-RC2 released,main highlights: 1、支持Kestrel。Kestrel是一个scala编写的简单高效的MQ，它是Twitter发布的开源产品，支持memcached协议，但并不完全兼容。更多信息看这里。Xmemcached提供了一个KestrelCommandFactory，用于对kestrel特性的支持。 2、新增了基于Election Hash的SessionLocator。Election Hash的详细解释看这里。 简单来说就是每次查找key对应的节点的时候，都计算节点ip+key的MD5值，然后进行排序，取最大者为目标节点。这个算法解决的问题与 Consistent Hash类似，但是因为每次都要计算，因此开销会比较大，适合节点数比较少的情况，避免了consistent hash为了节点比较均匀需要引入虚拟节点的问题。测试表明，Election Hash的结果也是比较均匀的，并且在节点增删的情况下能保持与一致性哈希相近的命中率。要使用election hash，请使用ElectionMemcachedSessionLocator。 3、从RC1版本以来的Bug fixed.]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/707_xmemcached-120-rc2-released.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Nginx] apache rewrite转nginx经验&#8211;对大括号的支持</title>
		<link>http://blog.thematice.com/html/y2009/650_nginx-apache-rewrite%e8%bd%acnginx%e7%bb%8f%e9%aa%8c-%e5%af%b9%e5%a4%a7%e6%8b%ac%e5%8f%b7%e7%9a%84%e6%94%af%e6%8c%81.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nginx-apache-rewrite%25e8%25bd%25acnginx%25e7%25bb%258f%25e9%25aa%258c-%25e5%25af%25b9%25e5%25a4%25a7%25e6%258b%25ac%25e5%258f%25b7%25e7%259a%2584%25e6%2594%25af%25e6%258c%2581</link>
		<comments>http://blog.thematice.com/html/y2009/650_nginx-apache-rewrite%e8%bd%acnginx%e7%bb%8f%e9%aa%8c-%e5%af%b9%e5%a4%a7%e6%8b%ac%e5%8f%b7%e7%9a%84%e6%94%af%e6%8c%81.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 07:29:54 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[括号]]></category>
		<category><![CDATA[经验]]></category>

		<guid isPermaLink="false">http://blog.thematice.com/?p=650</guid>
		<description><![CDATA[在nginx中这样写规则 rewrite ^/([0-9]{5}).html$ /x.jsp?id=$1 last; 是无法启动的，解决的办法是加上两个双引号 rewrite “^/([0-9]{5}).html$” /x.jsp?id=$1 last; 这样就OK了，应该可以说是完全兼容apache的语法的，只需要改下RewriteRule为Rewrite，后面的一般可以这样对应改 [R] -> redirect; [P] -> last; [R,L] -> redirect; [P,L] -> last; [PT,L] -> last; nginx rewrite中支持4种类型的转向： 跳转型的 redirect：302跳转到rewrite后的地址 permanent：301永久定向到rewrite后的地址，对搜索引擎更友好 代理型的 last：重新将rewrite后的地址在server标签中执行 break：将rewrite后的地址在当前location标签中执行 nginx的last和break的区别可以参考： http://www.sudone.com/nginx/nginx_rewrite_last_break.html http://www.sudone.com/nginx/nginx_rewrite.html]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2009/650_nginx-apache-rewrite%e8%bd%acnginx%e7%bb%8f%e9%aa%8c-%e5%af%b9%e5%a4%a7%e6%8b%ac%e5%8f%b7%e7%9a%84%e6%94%af%e6%8c%81.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php优化工具调试xdebug</title>
		<link>http://blog.thematice.com/html/y2008/105_optimization-tool-php-debugger-xdebug.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=optimization-tool-php-debugger-xdebug</link>
		<comments>http://blog.thematice.com/html/y2008/105_optimization-tool-php-debugger-xdebug.html#comments</comments>
		<pubDate>Tue, 26 Aug 2008 07:26:07 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>

		<guid isPermaLink="false">http://www.gotohand.cn/?p=105</guid>
		<description><![CDATA[1． 在http://www.xdebug.org右侧有一个Windows modules，选择适合的dll文件。 2． 将下载的dll放到system32目录，重命名为php_xdebug.dll。 3． 编辑php.ini，加入下面几行。 [Xdebug] zend_extension_ts=”php_xdebug.dll” xdebug.trace_output_dir=”D:tempphpxdebug” xdebug.profiler_output_dir=”D:tempphpxdebug” xdebug.profiler_enable=On xdebug.profiler_enable_trigger=1 xdebug.default_enable=On xdebug.show_exception_trace=On xdebug.show_local_vars=1 xdebug.max_nesting_level=50 xdebug.var_display_max_depth=6 xdebug.dump_once=On xdebug.dump_globals=On xdebug.dump_undefined=On xdebug.dump.REQUEST=* ;xdebug.dump.SERVER=REQUEST_METHOD, REQUEST_URI, HTTP_USER_AGENT 目录“D:tempphpxdebug”为你想要放置Xdebug输出的数据文件的目录，可自由设置。 4． 重启Apache； 5． 写一个phpinfo.php，内容为&#60;?php phpinfo(); ?&#62;，如果输出的内容中有看到xdebug，说明安装配置成功。 现在我们就可以开始使用Xdebug强大的功能了！Go on..现在我们来从最简单的程序调试开始一步步介绍Xdebug。 调试： 我们先写一个可以导致执行出错的程序，例如尝试包含一个不存在的文件。 test.php &#60;?php require_once(&#8216;abc.php&#8217;); ?&#62; 然后通过浏览器访问，我们惊奇地发现，出错信息变成了彩色的了： 不过除了样式改变，和我们平时打印的出错信息内容没什么不同，意义不大。好，我们继续改写程序： test2.php &#60;?php testXdebug(); function testXdebug() { require_once(&#8216;abc.php&#8217;); } ?&#62; 输出信息： 发现了什么？Xdebug跟踪代码的执行，找到了出错的函数testXdebug()。 我们把代码再写得复杂一些： test3.php [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2008/105_optimization-tool-php-debugger-xdebug.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开发人员需要熟知的常用Linux命令（下）</title>
		<link>http://blog.thematice.com/html/y2008/104_developers-need-to-familiar-with-common-linux-commands-continued.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=developers-need-to-familiar-with-common-linux-commands-continued</link>
		<comments>http://blog.thematice.com/html/y2008/104_developers-need-to-familiar-with-common-linux-commands-continued.html#comments</comments>
		<pubDate>Mon, 25 Aug 2008 08:01:10 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>

		<guid isPermaLink="false">http://www.gotohand.cn/?p=104</guid>
		<description><![CDATA[ 本篇中我们将重点介绍三个常用工具的使用：Find、VI、Scp； Find命令是一个非常有效的工具，它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。 Find命令的一般形式为： find pathname -options [-print -exec -ok] 让我们来看看该命令的参数： 参数 描述 pathname find命令所查找的目录路径。例如用.来表示当前目录，用/来表示系统根目录。  -print find命令将匹配的文件输出到标准输出。 -exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command {} ;，注意{ }和；之间的空格。 -ok 和-exec的作用相同，只不过以一种更为安全的模式来执行该参数所给出的shell命令，在执行每一个命令之前，都会给出提示，让用户来确定是否执行。 options最常见选项： option 描述 -name 按照文件名查找文件 -perm 按照文件权限来查找文件 -user 按照文件属主来查找文件 -group 按照文件所属的组来查找文件 -mtime -n +n 按照文件的更改时间来查找文件，-n表示文件更改时间距现在n天以内，+n 表示文件更改时间距现在n天以前。Find命令还有-atime和-ctime选项，但它们都和-mtime选项相似，所以我们在这里只介绍-mtime选项 -type 查找某一类型的文件，比如：b &#8211; 块设备文件；d &#8211; 目录；c &#8211; 字符设备文件；p &#8211; 管道文件；l &#8211; 符号链接文件；f &#8211; 普通文件 -size n[c] [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2008/104_developers-need-to-familiar-with-common-linux-commands-continued.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开发人员需要熟知的常用Linux命令（上）</title>
		<link>http://blog.thematice.com/html/y2008/103_developers-need-to-familiar-with-common-linux-commands-on.html#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=developers-need-to-familiar-with-common-linux-commands-on</link>
		<comments>http://blog.thematice.com/html/y2008/103_developers-need-to-familiar-with-common-linux-commands-on.html#comments</comments>
		<pubDate>Mon, 25 Aug 2008 08:00:36 +0000</pubDate>
		<dc:creator>稀饭</dc:creator>
				<category><![CDATA[configure]]></category>

		<guid isPermaLink="false">http://www.gotohand.cn/?p=103</guid>
		<description><![CDATA[记得以前整理过一份常用Linux命令清单，但现在怎么找也找不到了，只能再整理一份了； 作为一个开发人员我们登陆linux可能做的一些事情有：svn更新代码、发布应用、linux服务器之间传输文件、直接在服务器上查找修改文件等；以下将罗列一些常用的命令清单，当然只是各个命令中最常见的一些用法，如果要看全部的参数以及功能，可以求助于help或者man； 最常见的cd ll ls ~ . cat rm mkdir cp mv du df就不多介绍了； su ：在各用户之间切换，注意su admin与su &#8211; admin的区别，前者不会重新加载admin用户的环境变量，而后者会重新加载； tail ：查看文件尾部的信息，一般配合-f -nXX参数使用，代表查看文件最后XX行，且跟随文件，也即如果文件发生变化，则变化部分自动显示； ifconfig ：用来查看本机IP地址，位于/sbin/目录下，默认不在环境变量中；高级功能是可以变更IP地址等； w ：查看当前服务器中有哪些登陆用户，以及他们的来源IP，登陆时间等； uptime ：查看当前系统运行情况，比如运行时间，最近1、5、15分钟内的平均load； top ：动态显示当前系统运行情况，类似于windows的任务管理器； kill killall ：强制关闭某个进程，一般配合-9使用，意思是立即杀掉而不是等待应用自动关闭； diff ：比较两个文件的异同，显示的信息是两者不同之处，具体到某行； wget curl ：抓取制定URL的页面信息，前者生成文件，后者直接在控制台打印； tracert ：跟踪某个IP的路由情况，在解决一些网络问题时有用； netstat ：查看当前系统被占用的端口信息，一般配合&#124;grep使用，查看某个特定端口是否被占用； nohup &#38; ：指定应用在后台执行；前者当用户退出secureCRT时应用照常运行，而后者只在用户未退出secureCRT时有效，退出后进程失效；这点在我们执行一个需要耗时很长的脚本时非常有用； &#62; &#62;&#62; &#60; ：输入信息到目标，或者从目标读取录入信息；&#62;表示直接覆盖，而&#62;&#62;表示追加； 下面重点介绍下由此展开的重定向操作符，比如我们经常看到这样的语句：mysh &#62; mylog.txt 2&#62;&#38;1是什么意思？ 重定向操作符可以用来将命令输入和输出数据流从默认位置重定向到其他位置，其输入或输出数据流的位置称为句柄；常见的句柄有三种，当然句柄可以自行扩展，一般的OS都提供类似的功能： 句柄 [...]]]></description>
		<wfw:commentRss>http://blog.thematice.com/html/y2008/103_developers-need-to-familiar-with-common-linux-commands-on.html/feed</wfw:commentRss>
		<slash:comments>407</slash:comments>
		</item>
	</channel>
</rss>

