<?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/"
	>

<channel>
	<title>C1G军火库</title>
	<atom:link href="http://blog.c1gstudio.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.c1gstudio.com</link>
	<description>关注互联网、网页设计、Web开发、服务器运维优化、项目管理、网站运营...</description>
	<pubDate>Thu, 29 Jul 2010 06:35:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>wordpress open_basedir restriction in effect问题</title>
		<link>http://blog.c1gstudio.com/archives/1069</link>
		<comments>http://blog.c1gstudio.com/archives/1069#comments</comments>
		<pubDate>Wed, 28 Jul 2010 06:19:22 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[eaccelerator]]></category>

		<category><![CDATA[open_basedir]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1069</guid>
		<description><![CDATA[nginx-0.8.46
php-5.2.14
mysql-5.1.37
eaccelerator-0.9.6.1
wordpress 为官方3.0英文版
安装后在页面出现错误信息
Warning: require() [function.require]: open_basedir restriction in effect. File() is not within the allowed path(s): (/opt/htdocs:/opt/lampp/htdocs:/opt/php/lib/php:/tmp/session:/tmp/upload) in /opt/lampp/htdocs/wordpress/wp-settings.php on line 132
php.ini 中的配置也没错
open_basedir = &#34;/opt/htdocs:/opt/lampp/htdocs:/opt/php/lib/php:/tmp/session:/tmp/upload&#34;
关闭open_basedir或去掉[eaccelerator]之后不会报错，安全起见open_basedir一定要开，eaccelerator换成0.9.5.3后没问题了。
tar jxvf eaccelerator-0.9.5.3.tar.bz2 
cd eaccelerator-0.9.5.3/ 
/opt/php/bin/phpize 
./configure&#160; --enable-eaccelerator=shared --with-php-config=/opt/php/bin/php-config 
make 
make install
参考:
http://linux.chinaunix.net/bbs/redirect.php?tid=1162653&#038;goto=lastpost
]]></description>
			<content:encoded><![CDATA[<p>nginx-0.8.46<br />
php-5.2.14<br />
mysql-5.1.37<br />
eaccelerator-0.9.6.1<br />
<a href="http://www.wordpress.org">wordpress</a> 为官方3.0英文版</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">Warning: require() [function.require]: open_basedir restriction in effect. File() is not within the allowed path(s): (/opt/htdocs:/opt/lampp/htdocs:/opt/php/lib/php:/tmp/session:/tmp/upload) in /opt/lampp/htdocs/wordpress/wp-settings.php on line 132</li></ol></div>
<p>php.ini 中的配置也没错</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">open_basedir = &quot;/opt/htdocs:/opt/lampp/htdocs:/opt/php/lib/php:/tmp/session:/tmp/upload&quot;</li></ol></div>
<p>关闭open_basedir或去掉[eaccelerator]之后不会报错，安全起见open_basedir一定要开，eaccelerator换成0.9.5.3后没问题了。</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">tar jxvf eaccelerator-0.9.5.3.tar.bz2 </li>
<li>cd eaccelerator-0.9.5.3/ </li>
<li>/opt/php/bin/phpize </li>
<li>./configure&nbsp; --enable-eaccelerator=shared --with-php-config=/opt/php/bin/php-config </li>
<li>make </li>
<li>make install</li></ol></div>
<p>参考:<br />
http://linux.chinaunix.net/bbs/redirect.php?tid=1162653&#038;goto=lastpost</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1069/feed</wfw:commentRss>
		</item>
		<item>
		<title>Linux下硬盘检测工具smartmontools(smartctl)使用方法</title>
		<link>http://blog.c1gstudio.com/archives/1066</link>
		<comments>http://blog.c1gstudio.com/archives/1066#comments</comments>
		<pubDate>Mon, 26 Jul 2010 05:56:02 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[Linux 命令]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[smartctl]]></category>

		<category><![CDATA[smartmontools]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1066</guid>
		<description><![CDATA[安装:
yum install smartmontools
help:
#smartctl --help
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Usage: smartctl [options] device
============================================ SHOW INFORMATION OPTIONS =====
  -h, --help, --usage
         Display this help and exit
  -V, --version, --copyright, --license
         Print license, copyright, [...]]]></description>
			<content:encoded><![CDATA[<p>安装:<br />
yum install smartmontools</p>
<p>help:<br />
#smartctl --help<br />
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen<br />
Home page is http://smartmontools.sourceforge.net/</p>
<p>Usage: smartctl [options] device</p>
<p>============================================ SHOW INFORMATION OPTIONS =====</p>
<p>  -h, --help, --usage<br />
         Display this help and exit</p>
<p>  -V, --version, --copyright, --license<br />
         Print license, copyright, and version information and exit</p>
<p>  -i, --info<br />
         Show identity information for device</p>
<p>  -a, --all<br />
         Show all SMART information for device</p>
<p>================================== SMARTCTL RUN-TIME BEHAVIOR OPTIONS =====</p>
<p>  -q TYPE, --quietmode=TYPE                                           (ATA)<br />
         Set smartctl quiet mode to one of: errorsonly, silent, noserial</p>
<p>  -d TYPE, --device=TYPE<br />
         Specify device type to one of: ata, scsi, marvell, sat, 3ware,N</p>
<p>  -T TYPE, --tolerance=TYPE                                           (ATA)<br />
         Tolerance: normal, conservative, permissive, verypermissive</p>
<p>  -b TYPE, --badsum=TYPE                                              (ATA)<br />
         Set action on bad checksum to one of: warn, exit, ignore</p>
<p>  -r TYPE, --report=TYPE<br />
         Report transactions (see man page)</p>
<p>  -n MODE, --nocheck=MODE                                             (ATA)<br />
         No check if: never, sleep, standby, idle (see man page)</p>
<p>============================== DEVICE FEATURE ENABLE/DISABLE COMMANDS =====</p>
<p>  -s VALUE, --smart=VALUE<br />
        Enable/disable SMART on device (on/off)</p>
<p>  -o VALUE, --offlineauto=VALUE                                       (ATA)<br />
        Enable/disable automatic offline testing on device (on/off)</p>
<p>  -S VALUE, --saveauto=VALUE                                          (ATA)<br />
        Enable/disable Attribute autosave on device (on/off)</p>
<p>======================================= READ AND DISPLAY DATA OPTIONS =====</p>
<p>  -H, --health<br />
        Show device SMART health status</p>
<p>  -c, --capabilities                                                  (ATA)<br />
        Show device SMART capabilities</p>
<p>  -A, --attributes<br />
        Show device SMART vendor-specific Attributes and values</p>
<p>  -l TYPE, --log=TYPE<br />
        Show device log. TYPE: error, selftest, selective, directory,<br />
                               background, scttemp[sts,hist]</p>
<p>  -v N,OPTION , --vendorattribute=N,OPTION                            (ATA)<br />
        Set display OPTION for vendor Attribute N (see man page)</p>
<p>  -F TYPE, --firmwarebug=TYPE                                         (ATA)<br />
        Use firmware bug workaround: none, samsung, samsung2,<br />
                                     samsung3, swapid</p>
<p>  -P TYPE, --presets=TYPE                                             (ATA)<br />
        Drive-specific presets: use, ignore, show, showall</p>
<p>============================================ DEVICE SELF-TEST OPTIONS =====</p>
<p>  -t TEST, --test=TEST<br />
        Run test. TEST: offline short long conveyance select,M-N<br />
                        pending,N afterselect,[on|off] scttempint,N[,p]</p>
<p>  -C, --captive<br />
        Do test in captive mode (along with -t)</p>
<p>  -X, --abort<br />
        Abort any non-captive test on device</p>
<p>=================================================== SMARTCTL EXAMPLES =====</p>
<p>  smartctl --all /dev/hda                    (Prints all SMART information)</p>
<p>  smartctl --smart=on --offlineauto=on --saveauto=on /dev/hda<br />
                                              (Enables SMART on first disk)</p>
<p>  smartctl --test=long /dev/hda          (Executes extended disk self-test)</p>
<p>  smartctl --attributes --log=selftest --quietmode=errorsonly /dev/hda<br />
                                      (Prints Self-Test &#038; Attribute errors)<br />
  smartctl --all --device=3ware,2 /dev/sda<br />
  smartctl --all --device=3ware,2 /dev/twe0<br />
  smartctl --all --device=3ware,2 /dev/twa0<br />
          (Prints all SMART info for 3rd ATA disk on 3ware RAID controller)<br />
  smartctl --all --device=hpt,1/1/3 /dev/sda<br />
          (Prints all SMART info for the SATA disk attached to the 3rd PMPort<br />
           of the 1st channel on the 1st HighPoint RAID controller)</p>
<p>简单用法：<br />
1、smartctl -a  <device>         检查该设备是否已经打开SMART技术。<br />
2、smartctl -s on <device>    如果没有打开SMART技术，使用该命令打开SMART技术。<br />
3、smartctl -t short <device>    后台检测硬盘，消耗时间短；<br />
   smartctl -t long <device>      后台检测硬盘，消耗时间长；<br />
   smartctl -C -t short <device> 前台检测硬盘，消耗时间短；<br />
   smartctl -C -t long <device>  前台检测硬盘，消耗时间长。其实就是利用硬盘SMART的自检程序。<br />
4、smartctl -X <device>  中断后台检测硬盘。<br />
5、smartctl -l selftest <device>  显示硬盘检测日志。<br />
6、smartctl -l error <device> 显示硬盘错误汇总。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1066/feed</wfw:commentRss>
		</item>
		<item>
		<title>Connection closed by remote server</title>
		<link>http://blog.c1gstudio.com/archives/1064</link>
		<comments>http://blog.c1gstudio.com/archives/1064#comments</comments>
		<pubDate>Mon, 26 Jul 2010 03:56:56 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[LINUX]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1064</guid>
		<description><![CDATA[#ssh -p 6022 c1g@192.168.0.18
Connection closed by 192.168.0.18
再ping一下，也没问题
#ping 192.168.0.18
PING 192.168.0.18 (192.168.0.18) 56(84) bytes of data.
64 bytes from 192.168.0.18: icmp_seq=1 ttl=64 time=1.09 ms
64 bytes from 192.168.0.18: icmp_seq=2 ttl=64 time=0.215 ms
64 bytes from 192.168.0.18: icmp_seq=3 ttl=64 time=0.138 ms
&#160;
--- 192.168.0.18 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.138/0.481/1.090/0.431 ms
看了下web也可以访问,再看一下ssh的详细信息
#ssh -vv -p 6022 [...]]]></description>
			<content:encoded><![CDATA[<p>#ssh -p 6022 c1g@192.168.0.18</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">Connection closed by 192.168.0.18</li></ol></div>
<p>再ping一下，也没问题<br />
#ping 192.168.0.18</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">PING 192.168.0.18 (192.168.0.18) 56(84) bytes of data.</li>
<li>64 bytes from 192.168.0.18: icmp_seq=1 ttl=64 time=1.09 ms</li>
<li>64 bytes from 192.168.0.18: icmp_seq=2 ttl=64 time=0.215 ms</li>
<li>64 bytes from 192.168.0.18: icmp_seq=3 ttl=64 time=0.138 ms</li>
<li>&nbsp;</li>
<li>--- 192.168.0.18 ping statistics ---</li>
<li>3 packets transmitted, 3 received, 0% packet loss, time 1999ms</li>
<li>rtt min/avg/max/mdev = 0.138/0.481/1.090/0.431 ms</li></ol></div>
<p>看了下web也可以访问,再看一下ssh的详细信息<br />
#ssh -vv -p 6022 192.168.0.18</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">OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008</li>
<li>debug1: Reading configuration data /etc/ssh/ssh_config</li>
<li>debug1: Applying options for *</li>
<li>debug2: ssh_connect: needpriv 0</li>
<li>debug1: Connecting to 192.168.0.18 [192.168.0.18] port 6022.</li>
<li>debug1: Connection established.</li>
<li>debug1: identity file /home/c1g/.ssh/identity type -1</li>
<li>debug1: identity file /home/c1g/.ssh/id_rsa type -1</li>
<li>debug1: identity file /home/c1g/.ssh/id_dsa type -1</li>
<li>debug1: loaded 3 keys</li>
<li>debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3</li>
<li>debug1: match: OpenSSH_4.3 pat OpenSSH*</li>
<li>debug1: Enabling compatibility mode for protocol 2.0</li>
<li>debug1: Local version string SSH-2.0-OpenSSH_4.3</li>
<li>debug2: fd 3 setting O_NONBLOCK</li>
<li>debug1: SSH2_MSG_KEXINIT sent</li>
<li>debug1: SSH2_MSG_KEXINIT received</li>
<li>debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1</li>
<li>debug2: kex_parse_kexinit: ssh-rsa,ssh-dss</li>
<li>debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr</li>
<li>debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr</li>
<li>debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96</li>
<li>debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96</li>
<li>debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib</li>
<li>debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib</li>
<li>debug2: kex_parse_kexinit: </li>
<li>debug2: kex_parse_kexinit: </li>
<li>debug2: kex_parse_kexinit: first_kex_follows 0 </li>
<li>debug2: kex_parse_kexinit: reserved 0 </li>
<li>debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1</li>
<li>debug2: kex_parse_kexinit: ssh-rsa,ssh-dss</li>
<li>debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr</li>
<li>debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr</li>
<li>debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96</li>
<li>debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96</li>
<li>debug2: kex_parse_kexinit: none,zlib@openssh.com</li>
<li>debug2: kex_parse_kexinit: none,zlib@openssh.com</li>
<li>debug2: kex_parse_kexinit: </li>
<li>debug2: kex_parse_kexinit: </li>
<li>debug2: kex_parse_kexinit: first_kex_follows 0 </li>
<li>debug2: kex_parse_kexinit: reserved 0 </li>
<li>debug2: mac_init: found hmac-md5</li>
<li>debug1: kex: server-&gt;client aes128-cbc hmac-md5 none</li>
<li>debug2: mac_init: found hmac-md5</li>
<li>debug1: kex: client-&gt;server aes128-cbc hmac-md5 none</li>
<li>debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024&lt;1024&lt;8192) sent</li>
<li>debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP</li>
<li>debug2: dh_gen_key: priv key bits set: 136/256</li>
<li>debug2: bits set: 532/1024</li>
<li>debug1: SSH2_MSG_KEX_DH_GEX_INIT sent</li>
<li>debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY</li>
<li>debug1: Host '192.168.0.18' is known and matches the RSA host key.</li>
<li>debug1: Found key in /home/c1g/.ssh/known_hosts:4</li>
<li>debug2: bits set: 513/1024</li>
<li>debug1: ssh_rsa_verify: signature correct</li>
<li>debug2: kex_derive_keys</li>
<li>debug2: set_newkeys: mode 1</li>
<li>debug1: SSH2_MSG_NEWKEYS sent</li>
<li>debug1: expecting SSH2_MSG_NEWKEYS</li>
<li>debug2: set_newkeys: mode 0</li>
<li>debug1: SSH2_MSG_NEWKEYS received</li>
<li>debug1: SSH2_MSG_SERVICE_REQUEST sent</li>
<li>debug2: service_accept: ssh-userauth</li>
<li>debug1: SSH2_MSG_SERVICE_ACCEPT received</li>
<li>debug2: key: /home/c1g/.ssh/identity ((nil))</li>
<li>debug2: key: /home/c1g/.ssh/id_rsa ((nil))</li>
<li>debug2: key: /home/c1g/.ssh/id_dsa ((nil))</li>
<li>debug1: Authentications that can continue: publickey,gssapi-with-mic,password</li>
<li>debug1: Next authentication method: gssapi-with-mic</li>
<li>debug1: Unspecified GSS failure.&nbsp; Minor code may provide more information</li>
<li>Unknown code krb5 195</li>
<li>&nbsp;</li>
<li>debug1: Unspecified GSS failure.&nbsp; Minor code may provide more information</li>
<li>Unknown code krb5 195</li>
<li>&nbsp;</li>
<li>debug1: Unspecified GSS failure.&nbsp; Minor code may provide more information</li>
<li>Unknown code krb5 195</li>
<li>&nbsp;</li>
<li>debug2: we did not send a packet, disable method</li>
<li>debug1: Next authentication method: publickey</li>
<li>debug1: Trying private key: /home/c1g/.ssh/identity</li>
<li>debug1: Trying private key: /home/c1g/.ssh/id_rsa</li>
<li>debug1: Trying private key: /home/c1g/.ssh/id_dsa</li>
<li>debug2: we did not send a packet, disable method</li>
<li>debug1: Next authentication method: password</li>
<li>c1g@192.168.0.18's password: </li>
<li>debug2: we sent a password packet, wait for reply</li>
<li>Connection closed by 192.168.0.18</li></ol></div>
<p>在输入密码后就断掉了，把机器重启下后，可以登录了。</p>
<p>查看/var/log/messages 和 /var/log/cron<br />
发现从凌晨3点起就没有记录了，估计是磁盘出错变成不可写适成不能登录。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1064/feed</wfw:commentRss>
		</item>
		<item>
		<title>RRDtool 1.4.4 安装</title>
		<link>http://blog.c1gstudio.com/archives/1057</link>
		<comments>http://blog.c1gstudio.com/archives/1057#comments</comments>
		<pubDate>Thu, 22 Jul 2010 03:59:29 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[RRDtool]]></category>

		<category><![CDATA[rrdtool]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1057</guid>
		<description><![CDATA[RRDtool介绍

RRDTool是由Tobias Oetiker开发的自由软件，它使用RRD（Round Robin Database）作为存储格式，Round robin是一种处理定量数据、以及当前元素指针的技术。RRDTool主要用来跟踪对象的变化情况，生成这些变化的走势图。

07/09/10释放的cacti-0.8.7g已支持rrdtool-1.4X
我选择05-Jul-2010 最新释放的rrdtool-1.4.4.tar.gz
系统为centos 5.2,已安装yum
安装支持包
yum install libxml2-devel libpng-devel pkg-config glib pixman pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel
安装rrdtool
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.4.tar.gz
tar zxvf rrdtool-1.4.4.tar.gz
cd rrdtool-1.4.4
./configure --prefix=/usr/local/rrdtool-1.4.4 --disable-tcl --disable-python
ordering CD from http://tobi.oetiker.ch/wish .... just kidding ;-)
&#160;
----------------------------------------------------------------
Config is DONE!
&#160;
&#160;&#160; &#160; &#160; &#160; &#160;With MMAP IO: yes
&#160;&#160; &#160; &#160;Build rrd_getopt: no
&#160;&#160; &#160; &#160; Static programs: no
&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>RRDtool介绍</strong></p>
<p><a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/rrdtool-3dlogo.png"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/rrdtool-3dlogo.png" alt="rrdtool-3dlogo" title="rrdtool-3dlogo" width="189" height="84" class="alignnone size-full wp-image-1058" /></a><br />
<a href="http://oss.oetiker.ch/rrdtool/index.en.html">RRDTool</a>是由Tobias Oetiker开发的自由软件，它使用RRD（Round Robin Database）作为存储格式，Round robin是一种处理定量数据、以及当前元素指针的技术。RRDTool主要用来跟踪对象的变化情况，生成这些变化的走势图。</p>
<p><a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/stream-pop.png"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/stream-pop.png" alt="stream-pop" title="stream-pop" width="400" height="129" class="alignnone size-full wp-image-1059" /></a></p>
<p>07/09/10释放的cacti-0.8.7g已支持rrdtool-1.4X<br />
我选择05-Jul-2010 最新释放的rrdtool-1.4.4.tar.gz<br />
系统为centos 5.2,已安装yum</p>
<p><strong>安装支持包</strong><br />
yum install libxml2-devel libpng-devel pkg-config glib pixman pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel</p>
<p><strong>安装rrdtool</strong></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">wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.4.tar.gz</li>
<li>tar zxvf rrdtool-1.4.4.tar.gz</li>
<li>cd rrdtool-1.4.4</li>
<li>./configure --prefix=/usr/local/rrdtool-1.4.4 --disable-tcl --disable-python</li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">ordering CD from http://tobi.oetiker.ch/wish .... just kidding ;-)</li>
<li>&nbsp;</li>
<li>----------------------------------------------------------------</li>
<li>Config is DONE!</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With MMAP IO: yes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp;Build rrd_getopt: no</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; Static programs: no</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Perl Modules: perl_piped perl_shared</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Perl Binary: /usr/bin/perl</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Perl Version: 5.8.8</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Perl Options: PREFIX=/usr/local/rrdtool-1.4.4 LIB=/usr/local/rrdtool-1.4.4/lib/perl/5.8.8</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ruby Modules: </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ruby Binary: no</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ruby Options: sitedir=/usr/local/rrdtool-1.4.4/lib/ruby</li>
<li>&nbsp;&nbsp; &nbsp;Build Lua Bindings: no</li>
<li>&nbsp;&nbsp; &nbsp;Build Tcl Bindings: no</li>
<li>&nbsp;Build Python Bindings: no</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Build rrdcgi: yes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; Build librrd MT: yes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Use gettext: yes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With libDBI: no</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Libraries: -lxml2 -lcairo -lcairo -lcairo -lm&nbsp; -lcairo -lpng12&nbsp; &nbsp;-lglib-2.0&nbsp; &nbsp;-lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0&nbsp; </li>
<li>&nbsp;</li>
<li>Type 'make' to compile the software and use 'make install' to </li>
<li>install everything to: /usr/local/rrdtool-1.4.4.</li></ol></div>
<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">configure: error: Please fix the library issues listed above and try again.</li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">make </li>
<li>make install</li>
<li>&nbsp;</li>
<li>ln -s /usr/local/rrdtool-1.4.4 /usr/local/rrdtool </li>
<li>/usr/local/rrdtool/bin/rrdtool -v</li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">RRDtool 1.4.4&nbsp; Copyright 1997-2010 by Tobias Oetiker &lt;tobi@oetiker.ch&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Compiled Jul 22 2010 11:18:48</li>
<li>&nbsp;</li>
<li>Usage: rrdtool [options] command command_options</li>
<li>Valid commands: create, update, updatev, graph, graphv,&nbsp; dump, restore,</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;last, lastupdate, first, info, fetch, tune,</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;resize, xport, flushcached</li>
<li>&nbsp;</li>
<li>RRDtool is distributed under the Terms of the GNU General</li>
<li>Public License Version 2. (www.gnu.org/copyleft/gpl.html)</li>
<li>&nbsp;</li>
<li>For more information read the RRD manpages</li></ol></div>
<p>参考：<br />
<a href="http://blog.c1gstudio.com/archives/459">rrdtool 1.3.7安装</a><br />
http://blog.c1gstudio.com/archives/459</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1057/feed</wfw:commentRss>
		</item>
		<item>
		<title>cacti 监控远程主机</title>
		<link>http://blog.c1gstudio.com/archives/1046</link>
		<comments>http://blog.c1gstudio.com/archives/1046#comments</comments>
		<pubDate>Wed, 21 Jul 2010 03:47:02 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[Cacti]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[snmp]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1046</guid>
		<description><![CDATA[环境介绍
安装cacti的监控机A,ip为 192.168.0.16
安装snmp的被监控机B,ip为 192.168.0.17
系统为centos 4/5
被监控B机安装snmp
net-snmp 安装参考
修改B机snmp配置，充许外部访问
自带的snmp配置文件在/etc/snmp/snmpd.conf;
编译安装的snmp配置文件在/usr/local/etc/snmp/snmpd.conf;
vi /etc/snmp/snmpd.conf
com2sec local&#160; &#160; &#160;localhost&#160; &#160; &#160; &#160;privatepass #安装教程中配置的本机访问要权限
com2sec mynetwork&#160; &#160; &#160;192.168.0.16&#160; &#160; &#160; &#160;privatepass #新增的外部访问权限，192.168.0.16为监控机ip,privatepass 为安全码可以和local不同
&#160;
group MyROGroup v1 local 
group MyROGroup v2c local 
group MyROGroupnet v1&#160; &#160; &#160; &#160; &#160;mynetwork #新增
group MyROGroupnet v2c&#160; &#160; &#160; &#160; mynetwork #新增
&#160;
&#160;
view mib2&#160; &#160;included&#160; .iso.org.dod.internet.mgmt.mib-2 fc
view all&#160; &#160; included&#160; .1&#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>环境介绍</strong><br />
安装<a href="http://cacti.net">cacti</a>的监控机A,ip为 192.168.0.16<br />
安装<a href="http://www.net-snmp.org/">snmp</a>的被监控机B,ip为 192.168.0.17<br />
系统为centos 4/5</p>
<p><strong>被监控B机安装snmp</strong><br />
net-snmp <a href="http://blog.c1gstudio.com/archives/579">安装参考</a></p>
<p><strong>修改B机snmp配置，充许外部访问</strong><br />
自带的snmp配置文件在/etc/snmp/snmpd.conf;<br />
编译安装的snmp配置文件在/usr/local/etc/snmp/snmpd.conf;<br />
vi /etc/snmp/snmpd.conf</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">com2sec local&nbsp; &nbsp; &nbsp;localhost&nbsp; &nbsp; &nbsp; &nbsp;privatepass #安装教程中配置的本机访问要权限</li>
<li>com2sec mynetwork&nbsp; &nbsp; &nbsp;192.168.0.16&nbsp; &nbsp; &nbsp; &nbsp;privatepass #新增的外部访问权限，192.168.0.16为监控机ip,privatepass 为安全码可以和local不同</li>
<li>&nbsp;</li>
<li>group MyROGroup v1 local </li>
<li>group MyROGroup v2c local </li>
<li>group MyROGroupnet v1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mynetwork #新增</li>
<li>group MyROGroupnet v2c&nbsp; &nbsp; &nbsp; &nbsp; mynetwork #新增</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>view mib2&nbsp; &nbsp;included&nbsp; .iso.org.dod.internet.mgmt.mib-2 fc</li>
<li>view all&nbsp; &nbsp; included&nbsp; .1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;80 #新增</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>access MyROGroup &quot;&quot;	any	noauth	exact	mib2	none	none </li>
<li>access MyROGroupnet &quot;&quot;&nbsp; &nbsp; &nbsp; any&nbsp; &nbsp; &nbsp; &nbsp;noauth&nbsp; &nbsp; exact&nbsp; all&nbsp; &nbsp; none&nbsp; &nbsp;none #新增</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>#以下为访问项目，如果想监控磁盘空间，load等需把注释去掉</li>
<li>#编译安装默认已去掉，自带安装的需手动把注释去掉</li>
<li>&nbsp;</li>
<li>#&nbsp; Make sure mountd is running</li>
<li>proc mountd #去掉前面的&quot;#&quot;</li>
<li>&nbsp;</li>
<li>#&nbsp; Make sure there are no more than 4 ntalkds running, but 0 is ok too.</li>
<li>proc ntalkd 4</li>
<li>&nbsp;</li>
<li>#&nbsp; Make sure at least one sendmail, but less than or equal to 10 are running.</li>
<li>proc sendmail 10 1</li>
<li>&nbsp;</li>
<li># Check the / partition and make sure it contains at least 10 megs.</li>
<li>&nbsp;</li>
<li>disk / 10000</li>
<li>&nbsp;</li>
<li># Check for loads:</li>
<li>load 12 14 14</li></ol></div>
<p><strong>重启snmpd服务</strong><br />
#/etc/init.d/snmpd restart<br />
或<br />
#killall -9 snmpd<br />
#/usr/local/sbin/snmpd </p>
<p><strong>iptables规则</strong><br />
假如B机开启了iptables并且INPUT默认策略为DROP<br />
在第一条插入充许192.168.0.16(监控机)以udp协议访问snmpd默认161端口的规则</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">/sbin/iptables -I INPUT -p udp -m udp -s 192.168.0.16 --dport 161 -j ACCEPT</li></ol></div>
<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">/etc/init.d/iptables save</li></ol></div>
<p>测试snmp<br />
在A机上先看下系统信息<br />
#snmpwalk -v 2c -c privatepass  192.168.0.17 system</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">SNMPv2-MIB::sysDescr.0 = STRING: Linux touareg 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64</li>
<li>SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10</li>
<li>DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (59664) 0:09:56.64</li>
<li>SNMPv2-MIB::sysContact.0 = STRING: Root &lt;root@localhost&gt; (configure /etc/snmp/snmp.local.conf)</li>
<li>SNMPv2-MIB::sysName.0 = STRING: touareg</li>
<li>SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)</li>
<li>SNMPv2-MIB::sysORLastChange.0 = Timeticks: (7) 0:00:00.07</li>
<li>SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB</li>
<li>SNMPv2-MIB::sysORID.2 = OID: TCP-MIB::tcpMIB</li>
<li>SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip</li>
<li>SNMPv2-MIB::sysORID.4 = OID: UDP-MIB::udpMIB</li>
<li>SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup</li>
<li>SNMPv2-MIB::sysORID.6 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance</li>
<li>SNMPv2-MIB::sysORID.7 = OID: SNMP-MPD-MIB::snmpMPDCompliance</li>
<li>SNMPv2-MIB::sysORID.8 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance</li>
<li>SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module for SNMPv2 entities</li>
<li>SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for managing TCP implementations</li>
<li>SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing IP and ICMP implementations</li>
<li>SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing UDP implementations</li>
<li>SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP.</li>
<li>SNMPv2-MIB::sysORDescr.6 = STRING: The SNMP Management Architecture MIB.</li>
<li>SNMPv2-MIB::sysORDescr.7 = STRING: The MIB for Message Processing and Dispatching.</li>
<li>SNMPv2-MIB::sysORDescr.8 = STRING: The management information definitions for the SNMP User-based Security Model.</li>
<li>SNMPv2-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06</li>
<li>SNMPv2-MIB::sysORUpTime.2 = Timeticks: (6) 0:00:00.06</li>
<li>SNMPv2-MIB::sysORUpTime.3 = Timeticks: (6) 0:00:00.06</li>
<li>SNMPv2-MIB::sysORUpTime.4 = Timeticks: (6) 0:00:00.06</li>
<li>SNMPv2-MIB::sysORUpTime.5 = Timeticks: (6) 0:00:00.06</li>
<li>SNMPv2-MIB::sysORUpTime.6 = Timeticks: (7) 0:00:00.07</li>
<li>SNMPv2-MIB::sysORUpTime.7 = Timeticks: (7) 0:00:00.07</li>
<li>SNMPv2-MIB::sysORUpTime.8 = Timeticks: (7) 0:00:00.07</li></ol></div>
<p>没有问题，再看下磁盘信息<br />
#snmpwalk -v 2c -c privatepass  192.168.0.17 .1.3.6.1.4.1.2021.9</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">UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1</li>
<li>UCD-SNMP-MIB::dskPath.1 = STRING: /</li>
<li>UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/mapper/VolGroup00-LogVol01</li>
<li>UCD-SNMP-MIB::dskMinimum.1 = INTEGER: 10000</li>
<li>UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1</li>
<li>UCD-SNMP-MIB::dskTotal.1 = INTEGER: 44628400</li>
<li>UCD-SNMP-MIB::dskAvail.1 = INTEGER: 22383404</li>
<li>UCD-SNMP-MIB::dskUsed.1 = INTEGER: 19941408</li>
<li>UCD-SNMP-MIB::dskPercent.1 = INTEGER: 47</li>
<li>UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 1</li>
<li>UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: noError(0)</li>
<li>UCD-SNMP-MIB::dskErrorMsg.1 = STRING:</li></ol></div>
<p>出现下面这个信息，你需要检查下A机snmpd.conf中“disk / 10000”前的注释有无去掉。</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">UCD-SNMP-MIB::dskTable = No Such Object available on this agent at this OID</li></ol></div>
<p>".1.3.6.1.4.1.2021.9"代表磁盘<br />
".1.3.6.1.4.1.2021.10"代表load,可以参考snmpd.conf中的注释</p>
<p><strong>监控机cacti增加监控设备</strong><br />
Console -> Devices->add<br />
<a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti1.gif"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti1.gif" alt="cacti add device" title="cacti add device" width="429" height="170" class="alignnone size-full wp-image-1047" /></a><br />
在设置页面配置</p>
<blockquote><p>
Description:touareg<br />
Hostname:192.168.0.17<br />
Host Template:ucd/net SNMP Host</p>
<p>Downed Device Detection:Ping and SNMP</p>
<p>SNMP Version:预定义的设置
</p></blockquote>
<p>保存后在页面左上角可以看到调试信息<br />
<coolcode><br />
touareg (192.168.0.17)<br />
SNMP Information<br />
System:Linux touareg 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009<br />
x86_64<br />
Uptime: 38790 (0 days, 0 hours, 6 minutes)<br />
Hostname: touareg<br />
Location: Unknown (edit /etc/snmp/snmpd.conf)<br />
Contact: Root root@localhost (configure /etc/snmp/snmp.local.conf)<br />
<coolcode><br />
<a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti2.gif"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti2.gif" alt="cacti graphs" title="cacti graphs" width="579" height="234" class="alignnone size-full wp-image-1048" /></a></p>
<p>1) ucd/net - CPU Usage 	Not Being Graphed (cpu负载,system,user,nice)<br />
2) ucd/net - Load Average 	Not Being Graphed 	(系统平均负载,1分钟,5分钟,15分钟)<br />
3) ucd/net - Memory Usage 	Not Being Graphed (内存使用,free,buffers,cache)</p>
<p>1) SNMP - Interface Statistics (网卡流量,in,out)<br />
2) ucd/net - Get Monitored Partitions (根分区,free,used)</p>
<p>Not Being Graphed 表示还末生成图像,创建图像后会变成<span style="color<br />
:green">Is Being Graphed</span><br />
我们可以再添加一些更详细的监控<br />
Host MIB - Processes 监控进程数量<br />
Host MIB - Logged in Users 监控登录用户</p>
<p>SNMP - Get Mounted Partitions 更多分区大小,Memory Buffer,Real Memory,Swap Space<br />
SNMP - Get Processor Information 每个cpu的负载</p>
<p><strong>临控对像增加图表</strong><br />
左则New Graphs<br />
在host中选择touareg<br />
<a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti3.gif"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti3.gif" alt="cacti graphs2" title="cacti graphs2" width="579" height="289" class="alignnone size-full wp-image-1049" /></a><br />
勾选右则后选择create,就完成了图表创建，真是很方便。</p>
<p><strong>添加到Graph Trees</strong><br />
图表创建后在Graph Management里可以看到图表，但点击导航上方的"graphs"是看不到的，需要添加到graph trees中。<br />
Console -> Graph Trees -> (Edit) -> Graph Tree Items </p>
<blockquote><p>Tree Item Type:host<br />
Host:touareg</p></blockquote>
<p>创建后就可以在graph中看到了<br />
<a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti4.gif"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti4.gif" alt="cacti graph tree" title="cacti graph tree" width="700" height="429" class="alignnone size-full wp-image-1050" /></a></p>
<p>参考：<a href="http://docs.cacti.net/manual:087:2_basics.0_principles_of_operation#principles_of_operation">http://docs.cacti.net/manual:087:2_basics.0_principles_of_operation#principles_of_operation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1046/feed</wfw:commentRss>
		</item>
		<item>
		<title>在 Android 手机上运行 PHP</title>
		<link>http://blog.c1gstudio.com/archives/1037</link>
		<comments>http://blog.c1gstudio.com/archives/1037#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:56:19 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[Android]]></category>

		<category><![CDATA[其它]]></category>

		<category><![CDATA[pfa]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1037</guid>
		<description><![CDATA[PHP可不仅仅只能在互联网站上发展，一个PHP for Android (PFA)网站表示他们将可以发布编程模型、工具盒文档让PHP在Android上实现应用。该项目的主要赞助商是开源公司IronTec，PFA使用Scripting Layer for Android (SL4A)，也就是Androd Scripting Environment (ASE)来实现这一点，您可以参看他们的网站来了解更多技术内幕。

1.下载并安装ASE
扫描下面的二维码,可在你的手机上安装个条码扫描器(BarcodeScanner)

或用浏览器下载并安装
http://phpforandroid.net/files/ASEr26unofficial.apk
2.安装PhpForAndroid.apk

或用浏览器下载并安装
http://phpforandroid.net/files/PhpForAndroid_r1.apk
3.运行
安装好PhpForAndroid_r1.apk后再运行ASE就可以看到5个php demo
hello_world.php 
&#60;?php
require_once(&#34;Android.php&#34;);
$droid = new Android();
$name = $droid-&#62;getInput(&#34;Hi!&#34;, &#34;What is your name?&#34;);
$droid-&#62;makeToast('Hello, ' . $name['result']);
list_items.php
&#60;?php
require_once(&#34;Android.php&#34;);
$droid = new Android();
$droid-&#62;dialogCreateAlert();
$droid-&#62;dialogSetItems(range(0, 9));
$droid-&#62;dialogShow();
phpinfo.php
&#60;?php
require_once(&#34;Android.php&#34;);
... phpinfo（）;#这里是我编辑器问题改成了全角
testnow.php
&#60;?php
require_once(&#34;Android.php&#34;);
$droid = new Android();
//include(&#34;http://YOURHOST/yourfile.php.txt&#34;);
vibrate.php
&#60;?php
require_once(&#34;Android.php&#34;);
$droid = new Android();
$droid-&#62;vibrate();
点击phpinfo.php文件开始运行;
程序会输出php的相关信息，当前使用的php版本为5.3.3rc2
$ export TEMP=&#34;/sdcard/ase/extras/php/tmp&#34;
$ export AP_PORT=&#34;37356&#34;
$ export PHPHOME=&#34;/data/data/com.irontec.phpforandroid/php&#34;
$ export PHPPATH=&#34;/sdcard/ase/extras/php&#34;
$ /data/data/com.irontec.phpforandroid/php/bin/php -c $PHPPATH /sdcard/ase/scripts/phpinfo.php
FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:402
FIX ME! implement getprotobyname() [...]]]></description>
			<content:encoded><![CDATA[<p>PHP可不仅仅只能在互联网站上发展，一个PHP for Android (<a href="http://www.phpforandroid.net">PFA</a>)网站表示他们将可以发布编程模型、工具盒文档让PHP在Android上实现应用。该项目的主要赞助商是开源公司IronTec，PFA使用Scripting Layer for Android (SL4A)，也就是<a href="http://code.google.com/p/android-scripting/">Androd Scripting Environment (ASE)</a>来实现这一点，您可以参看他们的网站来了解更多技术内幕。<br />
<img src="http://www.phpforandroid.net/_media/pfa_pfaewok_logo.png" alt="" /></p>
<p>1.下载并安装ASE<br />
扫描下面的二维码,可在你的手机上安装个条码扫描器(BarcodeScanner)<br />
<img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=http%3A%2F%2Fphpforandroid.net%2Ffiles%2FASEr26unofficial.apk" alt="" /></p>
<p>或用浏览器下载并安装<br />
http://phpforandroid.net/files/ASEr26unofficial.apk</p>
<p>2.安装PhpForAndroid.apk<br />
<img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=http%3A%2F%2Fphpforandroid.net%2Ffiles%2FPhpForAndroid_r1.apk" alt="" /></p>
<p>或用浏览器下载并安装<br />
http://phpforandroid.net/files/PhpForAndroid_r1.apk</p>
<p>3.运行<br />
安装好PhpForAndroid_r1.apk后再运行ASE就可以看到5个php demo<br />
hello_world.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>require_once(&quot;Android.php&quot;);</li>
<li>$droid = new Android();</li>
<li>$name = $droid-&gt;getInput(&quot;Hi!&quot;, &quot;What is your name?&quot;);</li>
<li>$droid-&gt;makeToast('Hello, ' . $name['result']);</li></ol></div>
<p>list_items.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>require_once(&quot;Android.php&quot;);</li>
<li>$droid = new Android();</li>
<li>$droid-&gt;dialogCreateAlert();</li>
<li>$droid-&gt;dialogSetItems(range(0, 9));</li>
<li>$droid-&gt;dialogShow();</li></ol></div>
<p>phpinfo.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>require_once(&quot;Android.php&quot;);</li>
<li>... phpinfo（）;#这里是我编辑器问题改成了全角</li></ol></div>
<p>testnow.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>require_once(&quot;Android.php&quot;);</li>
<li>$droid = new Android();</li>
<li>//include(&quot;http://YOURHOST/yourfile.php.txt&quot;);</li></ol></div>
<p>vibrate.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>require_once(&quot;Android.php&quot;);</li>
<li>$droid = new Android();</li>
<li>$droid-&gt;vibrate();</li></ol></div>
<p>点击phpinfo.php文件开始运行;<br />
程序会输出php的相关信息，当前使用的php版本为5.3.3rc2</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">$ export TEMP=&quot;/sdcard/ase/extras/php/tmp&quot;</li>
<li>$ export AP_PORT=&quot;37356&quot;</li>
<li>$ export PHPHOME=&quot;/data/data/com.irontec.phpforandroid/php&quot;</li>
<li>$ export PHPPATH=&quot;/sdcard/ase/extras/php&quot;</li>
<li>$ /data/data/com.irontec.phpforandroid/php/bin/php -c $PHPPATH /sdcard/ase/scripts/phpinfo.php</li>
<li>FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:402</li>
<li>FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:402</li>
<li>phpinfo()</li>
<li>PHP Version =&gt; 5.3.3RC2</li>
<li>System =&gt; Linux localhost 2.6.29.6-xdan #20 PREEMPT Sat Mar 27 03:36:57 EDT 2010 armv6l</li>
<li>Build Date =&gt; Jul&nbsp; 4 2010 19:40:10</li>
<li>Configure Command =&gt;&nbsp; './configure'&nbsp; '--disable-all' '--target=arm-linux' '--enable-cli' '--enable-json' '--enable-sockets'</li>
<li>Server API =&gt; Command Line Interface</li>
<li>Virtual Directory Support =&gt; disabled</li>
<li>Configuration File (php.ini) Path =&gt; /usr/local/lib</li>
<li>Loaded Configuration File =&gt; /sdcard/ase/extras/php/php.ini</li>
<li>Scan this dir for additional .ini files =&gt; (none)</li>
<li>Additional .ini files parsed =&gt; (none)</li>
<li>PHP API =&gt; 20090626</li>
<li>PHP Extension =&gt; 20090626</li>
<li>Zend Extension =&gt; 220090626</li>
<li>Zend Extension Build =&gt; API220090626,NTS</li>
<li>PHP Extension Build =&gt; API20090626,NTS</li>
<li>Debug Build =&gt; no</li>
<li>Thread Safety =&gt; disabled</li>
<li>Zend Memory Manager =&gt; enabled</li>
<li>Zend Multibyte Support =&gt; disabled</li>
<li>IPv6 Support =&gt; disabled</li>
<li>Registered PHP Streams =&gt; php, file, data, http, ftp</li>
<li>Registered Stream Socket Transports =&gt; tcp, udp, unix, udg</li>
<li>Registered Stream Filters =&gt; string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk</li>
<li>This program makes use of the Zend Scripting Language Engine:</li>
<li>Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies</li>
<li>_______________________________________________________________________</li>
<li>Configuration</li>
<li>Core</li>
<li>PHP Version =&gt; 5.3.3RC2</li>
<li>Directive =&gt; Local Value =&gt; Master Value</li>
<li>allow_call_time_pass_reference =&gt; On =&gt; On</li>
<li>allow_url_fopen =&gt; On =&gt; On</li>
<li>allow_url_include =&gt; On =&gt; On</li>
<li>always_populate_raw_post_data =&gt; Off =&gt; Off</li>
<li>arg_separator.input =&gt; &amp; =&gt; &amp;</li>
<li>arg_separator.output =&gt; &amp; =&gt; &amp;</li>
<li>asp_tags =&gt; Off =&gt; Off</li>
<li>auto_append_file =&gt; no value =&gt; no value</li>
<li>auto_globals_jit =&gt; On =&gt; On</li>
<li>auto_prepend_file =&gt; no value =&gt; no value</li>
<li>browscap =&gt; no value =&gt; no value</li>
<li>default_charset =&gt; no value =&gt; no value</li>
<li>default_mimetype =&gt; text/html =&gt; text/html</li>
<li>define_syslog_variables =&gt; Off =&gt; Off</li>
<li>disable_classes =&gt; no value =&gt; no value</li>
<li>disable_functions =&gt; no value =&gt; no value</li>
<li>display_errors =&gt; STDOUT =&gt; STDOUT</li>
<li>display_startup_errors =&gt; On =&gt; On</li>
<li>doc_root =&gt; no value =&gt; no value</li>
<li>docref_ext =&gt; no value =&gt; no value</li>
<li>docref_root =&gt; no value =&gt; no value</li>
<li>enable_dl =&gt; Off =&gt; Off</li>
<li>error_append_string =&gt; no value =&gt; no value</li>
<li>error_log =&gt; no value =&gt; no value</li>
<li>error_prepend_string =&gt; no value =&gt; no value</li>
<li>error_reporting =&gt; 22527 =&gt; 22527</li>
<li>exit_on_timeout =&gt; Off =&gt; Off</li>
<li>expose_php =&gt; On =&gt; On</li>
<li>extension_dir =&gt; /usr/local/lib/php/extensions/no-debug-non-zts-20090626 =&gt; /usr/local/lib/php/extensions/no-debug-non-zts-20090626</li>
<li>file_uploads =&gt; On =&gt; On</li>
<li>highlight.bg =&gt; &lt;font style=&quot;color: #FFFFFF&quot;&gt;#FFFFFF&lt;/font&gt; =&gt; &lt;font style=&quot;color: #FFFFFF&quot;&gt;#FFFFFF&lt;/font&gt;</li>
<li>highlight.comment =&gt; &lt;font style=&quot;color: #FF8000&quot;&gt;#FF8000&lt;/font&gt; =&gt; &lt;font style=&quot;color: #FF8000&quot;&gt;#FF8000&lt;/font&gt;</li>
<li>highlight.default =&gt; &lt;font style=&quot;color: #0000BB&quot;&gt;#0000BB&lt;/font&gt; =&gt; &lt;font style=&quot;color: #0000BB&quot;&gt;#0000BB&lt;/font&gt;</li>
<li>highlight.html =&gt; &lt;font style=&quot;color: #000000&quot;&gt;#000000&lt;/font&gt; =&gt; &lt;font style=&quot;color: #000000&quot;&gt;#000000&lt;/font&gt;</li>
<li>highlight.keyword =&gt; &lt;font style=&quot;color: #007700&quot;&gt;#007700&lt;/font&gt; =&gt; &lt;font style=&quot;color: #007700&quot;&gt;#007700&lt;/font&gt;</li>
<li>highlight.string =&gt; &lt;font style=&quot;color: #DD0000&quot;&gt;#DD0000&lt;/font&gt; =&gt; &lt;font style=&quot;color: #DD0000&quot;&gt;#DD0000&lt;/font&gt;</li>
<li>html_errors =&gt; Off =&gt; Off</li>
<li>ignore_repeated_errors =&gt; Off =&gt; Off</li>
<li>ignore_repeated_source =&gt; Off =&gt; Off</li>
<li>ignore_user_abort =&gt; Off =&gt; Off</li>
<li>implicit_flush =&gt; On =&gt; On</li>
<li>include_path =&gt; .:/sdcard/ase/extras/php =&gt; .:/sdcard/ase/extras/php</li>
<li>log_errors =&gt; Off =&gt; Off</li>
<li>log_errors_max_len =&gt; 1024 =&gt; 1024</li>
<li>magic_quotes_gpc =&gt; Off =&gt; Off</li>
<li>magic_quotes_runtime =&gt; Off =&gt; Off</li>
<li>magic_quotes_sybase =&gt; Off =&gt; Off</li>
<li>mail.add_x_header =&gt; Off =&gt; Off</li>
<li>mail.force_extra_parameters =&gt; no value =&gt; no value</li>
<li>mail.log =&gt; no value =&gt; no value</li>
<li>max_execution_time =&gt; 0 =&gt; 0</li>
<li>max_file_uploads =&gt; 20 =&gt; 20</li>
<li>max_input_nesting_level =&gt; 64 =&gt; 64</li>
<li>max_input_time =&gt; -1 =&gt; -1</li>
<li>memory_limit =&gt; 128M =&gt; 128M</li>
<li>open_basedir =&gt; no value =&gt; no value</li>
<li>output_buffering =&gt; 0 =&gt; 0</li>
<li>output_handler =&gt; no value =&gt; no value</li>
<li>post_max_size =&gt; 8M =&gt; 8M</li>
<li>precision =&gt; 14 =&gt; 14</li>
<li>realpath_cache_size =&gt; 16K =&gt; 16K</li>
<li>realpath_cache_ttl =&gt; 120 =&gt; 120</li>
<li>register_argc_argv =&gt; On =&gt; On</li>
<li>register_globals =&gt; Off =&gt; Off</li>
<li>register_long_arrays =&gt; Off =&gt; Off</li>
<li>report_memleaks =&gt; On =&gt; On</li>
<li>report_zend_debug =&gt; Off =&gt; Off</li>
<li>request_order =&gt; GP =&gt; GP</li>
<li>safe_mode =&gt; Off =&gt; Off</li>
<li>safe_mode_exec_dir =&gt; no value =&gt; no value</li>
<li>safe_mode_gid =&gt; Off =&gt; Off</li>
<li>safe_mode_include_dir =&gt; no value =&gt; no value</li>
<li>sendmail_from =&gt; no value =&gt; no value</li>
<li>sendmail_path =&gt; /usr/sbin/sendmail -t -i&nbsp; =&gt; /usr/sbin/sendmail -t -i</li>
<li>serialize_precision =&gt; 100 =&gt; 100</li>
<li>short_open_tag =&gt; On =&gt; On</li>
<li>SMTP =&gt; localhost =&gt; localhost</li>
<li>smtp_port =&gt; 25 =&gt; 25</li>
<li>sql.safe_mode =&gt; Off =&gt; Off</li>
<li>track_errors =&gt; Off =&gt; Off</li>
<li>unserialize_callback_func =&gt; no value =&gt; no value</li>
<li>upload_max_filesize =&gt; 2M =&gt; 2M</li>
<li>upload_tmp_dir =&gt; no value =&gt; no value</li>
<li>user_dir =&gt; no value =&gt; no value</li>
<li>user_ini.cache_ttl =&gt; 300 =&gt; 300</li>
<li>user_ini.filename =&gt; .user.ini =&gt; .user.ini</li>
<li>variables_order =&gt; GPCS =&gt; GPCS</li>
<li>xmlrpc_error_number =&gt; 0 =&gt; 0</li>
<li>xmlrpc_errors =&gt; Off =&gt; Off</li>
<li>y2k_compliance =&gt; On =&gt; On</li>
<li>zend.enable_gc =&gt; On =&gt; On</li>
<li>date</li>
<li>date/time support =&gt; enabled</li>
<li>&quot;Olson&quot; Timezone Database Version =&gt; 2010.9</li>
<li>Timezone Database =&gt; internal</li>
<li>Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Chicago' for 'CST/-CST/no DST' instead in /sdcard/ase/scripts/phpinfo.php on line 4</li>
<li>Default timezone =&gt; America/Chicago</li>
<li>Directive =&gt; Local Value =&gt; Master Value</li>
<li>date.default_latitude =&gt; 31.7667 =&gt; 31.7667</li>
<li>date.default_longitude =&gt; 35.2333 =&gt; 35.2333</li>
<li>date.sunrise_zenith =&gt; 90.583333 =&gt; 90.583333</li>
<li>date.sunset_zenith =&gt; 90.583333 =&gt; 90.583333</li>
<li>date.timezone =&gt; no value =&gt; no value</li>
<li>ereg</li>
<li>Regex Library =&gt; Bundled library enabled</li>
<li>json</li>
<li>json support =&gt; enabled</li>
<li>json version =&gt; 1.2.1</li>
<li>pcre</li>
<li>PCRE (Perl Compatible Regular Expressions) Support =&gt; enabled</li>
<li>PCRE Library Version =&gt; 8.02 2010-03-19</li>
<li>Directive =&gt; Local Value =&gt; Master Value</li>
<li>pcre.backtrack_limit =&gt; 100000 =&gt; 100000</li>
<li>pcre.recursion_limit =&gt; 100000 =&gt; 100000</li>
<li>Reflection</li>
<li>Reflection =&gt; enabled</li>
<li>Version =&gt; $Revision: 300393 $</li>
<li>sockets</li>
<li>Sockets Support =&gt; enabled</li>
<li>SPL</li>
<li>SPL support =&gt; enabled</li>
<li>Interfaces =&gt; Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject</li>
<li>Classes =&gt; AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException</li>
<li>standard</li>
<li>Dynamic Library Support =&gt; enabled</li>
<li>Path to sendmail =&gt; /usr/sbin/sendmail -t -i</li>
<li>Directive =&gt; Local Value =&gt; Master Value</li>
<li>assert.active =&gt; 1 =&gt; 1</li>
<li>assert.bail =&gt; 0 =&gt; 0</li>
<li>assert.callback =&gt; no value =&gt; no value</li>
<li>assert.quiet_eval =&gt; 0 =&gt; 0</li>
<li>assert.warning =&gt; 1 =&gt; 1</li>
<li>auto_detect_line_endings =&gt; 0 =&gt; 0</li>
<li>default_socket_timeout =&gt; 60 =&gt; 60</li>
<li>safe_mode_allowed_env_vars =&gt; PHP_ =&gt; PHP_</li>
<li>safe_mode_protected_env_vars =&gt; LD_LIBRARY_PATH =&gt; LD_LIBRARY_PATH</li>
<li>url_rewriter.tags =&gt; a=href,area=href,frame=src,form=,fieldset= =&gt; a=href,area=href,frame=src,form=,fieldset=</li>
<li>user_agent =&gt; no value =&gt; no value</li>
<li>Additional Modules</li>
<li>Module Name</li>
<li>Environment</li>
<li>Variable =&gt; Value</li>
<li>ANDROID_ROOT =&gt; /system</li>
<li>PHPPATH =&gt; /sdcard/ase/extras/php</li>
<li>LD_LIBRARY_PATH =&gt; /system/lib</li>
<li>PATH =&gt; /usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin</li>
<li>AP_PORT =&gt; 37356</li>
<li>ANDROID_SOCKET_zygote =&gt; 11</li>
<li>TEMP =&gt; /sdcard/ase/extras/php/tmp</li>
<li>BOOTCLASSPATH =&gt; /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar</li>
<li>ANDROID_BOOTLOGO =&gt; 1</li>
<li>ANDROID_ASSETS =&gt; /system/app</li>
<li>EXTERNAL_STORAGE =&gt; /sdcard</li>
<li>ANDROID_DATA =&gt; /data</li>
<li>TERMINFO =&gt; /system/etc/terminfo</li>
<li>ANDROID_PROPERTY_WORKSPACE =&gt; 10,32768</li>
<li>PHPHOME =&gt; /data/data/com.irontec.phpforandroid/php</li>
<li>PHP Variables</li>
<li>Variable =&gt; Value</li>
<li>_SERVER[&quot;ANDROID_ROOT&quot;] =&gt; /system</li>
<li>_SERVER[&quot;PHPPATH&quot;] =&gt; /sdcard/ase/extras/php</li>
<li>_SERVER[&quot;LD_LIBRARY_PATH&quot;] =&gt; /system/lib</li>
<li>_SERVER[&quot;PATH&quot;] =&gt; /usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin</li>
<li>_SERVER[&quot;AP_PORT&quot;] =&gt; 37356</li>
<li>_SERVER[&quot;ANDROID_SOCKET_zygote&quot;] =&gt; 11</li>
<li>_SERVER[&quot;TEMP&quot;] =&gt; /sdcard/ase/extras/php/tmp</li>
<li>_SERVER[&quot;BOOTCLASSPATH&quot;] =&gt; /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar</li>
<li>_SERVER[&quot;ANDROID_BOOTLOGO&quot;] =&gt; 1</li>
<li>_SERVER[&quot;ANDROID_ASSETS&quot;] =&gt; /system/app</li>
<li>_SERVER[&quot;EXTERNAL_STORAGE&quot;] =&gt; /sdcard</li>
<li>_SERVER[&quot;ANDROID_DATA&quot;] =&gt; /data</li>
<li>_SERVER[&quot;TERMINFO&quot;] =&gt; /system/etc/terminfo</li>
<li>_SERVER[&quot;ANDROID_PROPERTY_WORKSPACE&quot;] =&gt; 10,32768</li>
<li>_SERVER[&quot;PHPHOME&quot;] =&gt; /data/data/com.irontec.phpforandroid/php</li>
<li>_SERVER[&quot;PHP_SELF&quot;] =&gt; /sdcard/ase/scripts/phpinfo.php</li>
<li>_SERVER[&quot;SCRIPT_NAME&quot;] =&gt; /sdcard/ase/scripts/phpinfo.php</li>
<li>_SERVER[&quot;SCRIPT_FILENAME&quot;] =&gt; /sdcard/ase/scripts/phpinfo.php</li>
<li>_SERVER[&quot;PATH_TRANSLATED&quot;] =&gt; /sdcard/ase/scripts/phpinfo.php</li>
<li>_SERVER[&quot;DOCUMENT_ROOT&quot;] =&gt;</li>
<li>_SERVER[&quot;REQUEST_TIME&quot;] =&gt; 1279269078</li>
<li>_SERVER[&quot;argv&quot;] =&gt; Array</li>
<li>(</li>
<li>&nbsp;&nbsp; &nbsp;[0] =&gt; /sdcard/ase/scripts/phpinfo.php</li>
<li>)</li>
<li>_SERVER[&quot;argc&quot;] =&gt; 1</li>
<li>PHP License</li>
<li>This program is free software; you can redistribute it and/or modify</li>
<li>it under the terms of the PHP License as published by the PHP Group</li>
<li>and included in the distribution in the file:&nbsp; LICENSE</li>
<li>This program is distributed in the hope that it will be useful,</li>
<li>but WITHOUT ANY WARRANTY; without even the implied warranty of</li>
<li>MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</li>
<li>If you did not receive a copy of the PHP license, or have any</li>
<li>questions about PHP licensing, please contact license@php.net.</li></ol></div>
<p>运行结束后就是控制台界面,按menu键会出来Exit&#038;Edit可以进入编辑模式;<br />
编辑模式下有<a href="http://code.google.com/p/android-scripting/wiki/ApiReference">API Browser</a>可供调用，save &#038; Run就可以调试程序了。<br />
在我的g1,1.6固件上运行正常。</p>
<p>安装教程<br />
http://www.phpforandroid.net/screencast</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1037/feed</wfw:commentRss>
		</item>
		<item>
		<title>google JavaScript Style Guide</title>
		<link>http://blog.c1gstudio.com/archives/1035</link>
		<comments>http://blog.c1gstudio.com/archives/1035#comments</comments>
		<pubDate>Fri, 16 Jul 2010 02:10:06 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[JavaScript/DOM/XML]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[Guide]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1035</guid>
		<description><![CDATA[Google JavaScript Style Guide
另有C++ Style Guide, Objective-C Style Guide, and Python Style Guide
http://code.google.com/p/google-styleguide/
]]></description>
			<content:encoded><![CDATA[<p><a href="http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml">Google JavaScript Style Guide</a><br />
另有C++ Style Guide, Objective-C Style Guide, and Python Style Guide</p>
<p><a href="http://code.google.com/p/google-styleguide/">http://code.google.com/p/google-styleguide/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1035/feed</wfw:commentRss>
		</item>
		<item>
		<title>cacti 安装npc 整合 nagios</title>
		<link>http://blog.c1gstudio.com/archives/1028</link>
		<comments>http://blog.c1gstudio.com/archives/1028#comments</comments>
		<pubDate>Thu, 15 Jul 2010 08:19:02 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[Cacti]]></category>

		<category><![CDATA[Nagios]]></category>

		<category><![CDATA[ndoutils]]></category>

		<category><![CDATA[npc]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1028</guid>
		<description><![CDATA[  Cacti是一套PHP程序，它使用snmpget命令采集数据、RRDTool绘图。Cacti界面简洁直观，让你根本无需明白RRDTool的众多参数即可轻松绘制出漂亮的图形。另外，它还提供了强大的数据管理和用户管理功能。在图像管理上，Cacti采用了树状结构的查看界面，在用户管理上，能对用户的权限进行细致划分，甚至支持使用LDAP进行用户验证。Cacti主要功能包括：数据定时采集、图像绘制与显示、树状的主机和图像管理、RRDTool信息管理、用户和权限管理以及模板导入导出等。
  
1.Cacti系统组成
　　Cacti系统由4个部分组成：
　　Cacti页面(PHP)——用户控制的平台，用户在此进行所有的设置；
　　SNMP采集工具——Unix下使用 Net-SNMP软件包自带的“snmpget”和“snmpwalk”等程序，Windows下使用PHP的SNMP功能；
　　RRDTool绘图引擎——性能数据的存储和绘画图像；
　　MySQL数据库——储存RRDTool绘图所需的信息，如模板、rra、主机对应的信息等，要注意的是MySQL数据库并不保存性能数据，性能数据保存在RRDTool自己的数据库格式rrd文件中。利用Cacti可以对校园网络进行很好的实时监控，从而做到运筹帷幄。
2.菜单功能介绍
　　Console菜单包括了New Graphs(创建新图像)、Graph Management(图像管理)、Graph Trees(图像树)、Data Sources(管理rrd文件)、Devices(设备管理)、 Data Queries 和Data Input Methods(采集数据方式)、Graph Templates(图像模板)、Host Templates(主机类型模板)、Data Templates(数据模板)、Import Templates(模板导入)、Export Templates(模板导出)Settings(Cacti的主要配置菜单)、System Utilities(显示Cacti系统的一些cache和log信息)、User Management(用户管理)、Logout User (用户退出登录)等菜单选项。
　　Grapes菜单包括三种查看图像的形式，分别为setting、树形显示、列表型显示和预览型显示。
 
在线demo:
http://status.pulpfree.org/cacti/graph_view.php?action=tree&#038;tree_id=3&#038;leaf_id=28&#038;select_first=true
http://www.querx.com/cacti/graph_view.php?action=tree&#038;tree_id=1&#038;leaf_id=9
http://www.kende.com/cacti/graph_view.php?action=tree&#038;tree_id=1&#038;leaf_id=7&#038;select_first=true
更多demo:
http://www.cacti.net/sites_that_use_cacti.php
最新版本:
The latest stable version is 0.8.7g, released 07/09/10.
http://www.cacti.net/download_cacti.php
0.8.7g版本和某些插件有兼容型问题，如npc,thold，我安装下来在顶部不能正常显示导航菜单。
cacti的版本要和插件架构匹配，我装0.8.7e+cacti-plugin-0.8.7f-PA可以使用，但顶部导航显示不正确。
这里选用0.8.7e+cacti-plugin-0.8.7e-PA
依赖关系：
安装之前需lamp环境 安装参考
net-snmp 安装参考
RRDTool 安装参考
php扩展 安装参考
   php_json
   pdo_mysql
   sockets
nagios 安装参考
ndoutils 安装参考
下载cacti：
cd /opt/htdocs/www
wget wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz
constructaegis.com域名已过期
可以使用svn checkout
http://svn2.assembla.com/svn/npc/trunk
安装cacti:
我的nginx运行用户为www组为website
安装路径为/opt/htdocs/www
tar zxvf cacti-0.8.7e.tar.gz
mv [...]]]></description>
			<content:encoded><![CDATA[<p>  <a href="http://cacti.net/">Cacti</a>是一套<a href="http://php.net/">PHP</a>程序，它使用snmpget命令采集数据、RRDTool绘图。Cacti界面简洁直观，让你根本无需明白<a href="http://www.rrdtool.com/">RRDTool</a>的众多参数即可轻松绘制出漂亮的图形。另外，它还提供了强大的数据管理和用户管理功能。在图像管理上，Cacti采用了树状结构的查看界面，在用户管理上，能对用户的权限进行细致划分，甚至支持使用LDAP进行用户验证。Cacti主要功能包括：数据定时采集、图像绘制与显示、树状的主机和图像管理、RRDTool信息管理、用户和权限管理以及模板导入导出等。</p>
<p><a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cactilogo.jpg"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cactilogo.jpg" alt="cactilogo" title="cactilogo" width="64" height="95" class="alignnone size-full wp-image-1029" /></a>  </p>
<p>1.Cacti系统组成</p>
<p>　　Cacti系统由4个部分组成：</p>
<p>　　Cacti页面(PHP)——用户控制的平台，用户在此进行所有的设置；</p>
<p>　　SNMP采集工具——Unix下使用 Net-SNMP软件包自带的“snmpget”和“snmpwalk”等程序，Windows下使用PHP的SNMP功能；</p>
<p>　　RRDTool绘图引擎——性能数据的存储和绘画图像；</p>
<p>　　MySQL数据库——储存RRDTool绘图所需的信息，如模板、rra、主机对应的信息等，要注意的是MySQL数据库并不保存性能数据，性能数据保存在RRDTool自己的数据库格式rrd文件中。利用Cacti可以对校园网络进行很好的实时监控，从而做到运筹帷幄。<br />
2.菜单功能介绍</p>
<p>　　Console菜单包括了New Graphs(创建新图像)、Graph Management(图像管理)、Graph Trees(图像树)、Data Sources(管理rrd文件)、Devices(设备管理)、 Data Queries 和Data Input Methods(采集数据方式)、Graph Templates(图像模板)、Host Templates(主机类型模板)、Data Templates(数据模板)、Import Templates(模板导入)、Export Templates(模板导出)Settings(Cacti的主要配置菜单)、System Utilities(显示Cacti系统的一些cache和log信息)、User Management(用户管理)、Logout User (用户退出登录)等菜单选项。</p>
<p>　　Grapes菜单包括三种查看图像的形式，分别为setting、树形显示、列表型显示和预览型显示。<br />
<a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti_promo_main.png"><img src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/cacti_promo_main.png" alt="cacti_promo_main" title="cacti_promo_main" width="530" height="394" class="alignnone size-full wp-image-1030" /></a> </p>
<p><strong>在线demo:</strong><br />
<a href="http://status.pulpfree.org/cacti/graph_view.php?action=tree&#038;tree_id=3&#038;leaf_id=28&#038;select_first=true">http://status.pulpfree.org/cacti/graph_view.php?action=tree&#038;tree_id=3&#038;leaf_id=28&#038;select_first=true</a><br />
<a href="http://www.querx.com/cacti/graph_view.php?action=tree&#038;tree_id=1&#038;leaf_id=9">http://www.querx.com/cacti/graph_view.php?action=tree&#038;tree_id=1&#038;leaf_id=9</a><br />
<a href="http://www.kende.com/cacti/graph_view.php?action=tree&#038;tree_id=1&#038;leaf_id=7&#038;select_first=true">http://www.kende.com/cacti/graph_view.php?action=tree&#038;tree_id=1&#038;leaf_id=7&#038;select_first=true</a><br />
更多demo:<br />
<a href="http://www.cacti.net/sites_that_use_cacti.php">http://www.cacti.net/sites_that_use_cacti.php</a></p>
<p><strong>最新版本:</strong><br />
The latest stable version is 0.8.7g, released 07/09/10.<br />
http://www.cacti.net/download_cacti.php<br />
0.8.7g版本和某些插件有兼容型问题，如npc,thold，我安装下来在顶部不能正常显示导航菜单。<br />
cacti的版本要和插件架构匹配，我装0.8.7e+cacti-plugin-0.8.7f-PA可以使用，但顶部导航显示不正确。<br />
这里选用0.8.7e+cacti-plugin-0.8.7e-PA</p>
<p><strong>依赖关系：</strong><br />
安装之前需lamp环境 <a href="http://blog.c1gstudio.com/archives/818">安装参考</a><br />
net-snmp <a href="http://blog.c1gstudio.com/archives/579">安装参考</a><br />
RRDTool <a href="http://blog.c1gstudio.com/archives/459">安装参考</a><br />
php扩展 <a href="http://blog.c1gstudio.com/archives/915">安装参考</a><br />
   php_json<br />
   pdo_mysql<br />
   sockets<br />
nagios <a href="http://blog.c1gstudio.com/archives/545">安装参考</a><br />
ndoutils <a href="http://blog.c1gstudio.com/archives/635">安装参考</a></p>
<p><strong>下载cacti：</strong><br />
cd /opt/htdocs/www<br />
wget wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz<br />
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip<br />
wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz</p>
<p>constructaegis.com域名已过期<br />
可以使用svn checkout<br />
http://svn2.assembla.com/svn/npc/trunk</p>
<p><strong>安装cacti:</strong><br />
我的nginx运行用户为www组为website<br />
安装路径为/opt/htdocs/www</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">tar zxvf cacti-0.8.7e.tar.gz</li>
<li>mv cacti-0.8.7e cacti</li>
<li>chown -R www:website cacti</li>
<li>chmod -R 0775 cacti</li></ol></div>
<p><strong>安装cacti数据库:</strong><br />
创建cacti库,并创建cacti用户给予它cacti库权限,也可以使用phpmyadmin来完成.<br />
导入cacti.sql到cacti库</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">mysql –u root –p</li>
<li>mysql&gt;create database cacti; </li>
<li>mysql&gt;use cacti; </li>
<li>Mysql&gt;source /opt/htdocs/www/cacti/cacti.sql </li>
<li>Mysql&gt;grant all privileges on cacti.* to cacti@localhost identified by ‘cactipass’;</li>
<li>#添加一个数据库账号cacti 密码为cactipass 用以访问cacti库</li>
<li>Mysql&gt;flush privileges;&nbsp; &nbsp; #刷新权限信息</li></ol></div>
<p><strong>配置cacti数据库信息</strong><br />
#cd cacti<br />
#vi include/config.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">$database_type = &quot;mysql&quot;;</li>
<li>$database_default = &quot;cacti&quot;;</li>
<li>$database_hostname = &quot;localhost&quot;;</li>
<li>$database_username = &quot;cactiuser&quot;;</li>
<li>$database_password = &quot;cacti&quot;;</li></ol></div>
<p><strong>配置cacti自动运行:</strong><br />
#crontab -e</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">*/5 * * * *&nbsp; /opt/php/bin/php /opt/htdocs/www/cacti/poller.php &gt; /dev/null 2&gt;&amp;1</li></ol></div>
<p>Spine更有效率可以选择性安装</p>
<p><strong>配置cacti:</strong><br />
访问cacti的web地址，就会显示安装界面<br />
http://nagios.c1gstudio.com/cacti/</p>
<p>1.选择"新的安装"</p>
<p>2.配置路径(以系统中实际安装路径为准)<br />
/usr/local/rrdtool/bin/rrdtool<br />
/opt/php/bin/php<br />
/usr/local/bin/snmpwalk<br />
/usr/local/bin/snmpget<br />
/usr/local/bin/snmpbulkwalk<br />
/usr/local/bin/snmpgetnext</p>
<p>3.默认用户名及密码<br />
admin/admin<br />
接着输入新的密码</p>
<p>4.进入cacti后台<br />
设置相应版本及验证码<br />
settings->General<br />
  RRDTool Utility Version = RRDTool1.3.X<br />
  SNMP Version = 2<br />
  SNMP Community = 你的验证码(privatepass )<br />
save</p>
<p>5.查看报表<br />
点graphs选项5分钟后应该可以看到4个报表.<br />
  memory usage<br />
  load average<br />
  logged in users<br />
  processers</p>
<p>6.创建磁盘监控<br />
在首页点击Create graphs然后在Data Query栏目中勾上需要监控的分区保存.</p>
<p>以上完成了cacti安装，下面安装插件<br />
在安装插件前需先安装"插件框架"</p>
<p><strong>安装插件框架:</strong><br />
1.解压</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">cd /opt/htdocs/www</li>
<li>unzip cacti-plugin-0.8.7e-PA-v2.6.zip</li>
<li>chown -R www:website cacti-plugin-arch/</li>
<li>chmod -R 0775 cacti-plugin-arch</li></ol></div>
<p>2.导入数据库结构</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">mysql -u cacti -p cacti&lt;cacti-plugin-arch/pa.sql</li></ol></div>
<p>3.覆盖文件<br />
方法一:覆盖</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">cp –rf cacti-plugin-arch/files-0.8.7e/* /opt/htdocs/www/cacti</li></ol></div>
<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">cp cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff /opt/htdocs/www/cacti/</li>
<li>&nbsp;cd /opt/htdocs/www/cacti/</li>
<li>&nbsp;patch -p1 -N &lt;cacti-plugin-0.8.7e-PA-v2.6.diff</li></ol></div>
<p>我用方法一</p>
<p>4.配置插件的数据库信息<br />
#cd /opt/htdocs/www/cacti/<br />
#vi include/global.php<br />
#插件数据库需再配置一下</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">$database_type = &quot;mysql&quot;;</li>
<li>$database_default = &quot;cacti&quot;;</li>
<li>$database_hostname = &quot;localhost&quot;;</li>
<li>$database_username = &quot;cactiuser&quot;;</li>
<li>$database_password = &quot;cacti&quot;;</li></ol></div>
<p>5.配制插件</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">#我的cacti安装在域下的cacti目录，这里也需修改</li>
<li>$config['url_path'] = '/cacti/';</li>
<li>&nbsp;</li>
<li>#为后面安装npc增加变量</li>
<li>$plugins[] = 'npc';</li></ol></div>
<p><span style="color:red">注:</span>0.8.7g开始上面两变量改放在includes/config.php中，如果参照以前的教程会找不到了囧<br />
参见Change Log<br />
<a href="http://forums.cacti.net/viewtopic.php?t=38492">http://forums.cacti.net/viewtopic.php?t=38492</a></p>
<p><strong>安装NPC插件:</strong><br />
1.解压后移到plugins目录下</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">cd /opt/htdocs/www</li>
<li>unzip npc.zip</li>
<li>chown -R www:website npc</li>
<li>chmod -R 0775 npc</li>
<li>mv npc cacti/plugins/</li></ol></div>
<p>2.启用cacti的插件功能，<br />
以admin用户登陆cacti，在console中的user management里对admin的用户权限进行编辑，<br />
  勾选上Plugin Management、NPC、NPC Global Commands<br />
然后到Plugin Management<br />
  安装并启用NPC即可。<br />
在Settings->npc中<br />
  勾上Remote Commands<br />
  Nagios Command File Path=/usr/local/nagios/var/rw/nagios.cmd<br />
  Nagios URL=你的地址(http://nagios.c1gstudio.com/nagios/)</p>
<p>3.配置ndoutils<br />
<a href="http://blog.c1gstudio.com/archives/635">参见</a></p>
<p>如果一切正常点击导航菜单npc后就可以看到信息了。<br />
没有显示可能有以下原因：</p>
<ol>
<li>cacti和npc版本不兼容</li>
<li>cacti和plugin框架版本不一致</li>
<li>npc没有正确安装(数据库结构不对)</li>
<li>ndoutils没有正确配置(数据库中无信息)</li>
<li>php-json,pdo_mysql,sockets没有安装(php -m 检查一下)</li>
</ol>
<p>留意cacti/log/cacti.log文件</p>
<p>==============================<br />
2010-07-23<br />
<strong>spine安装</strong><br />
#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz<br />
#tar zxvf cacti-spine-0.8.7e.tar.gz<br />
#cd cacti-spine-0.8.7e<br />
#./configure<br />
#make<br />
#make install<br />
#vi /usr/local/spine/etc/spine.conf</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">DB_Host&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;localhost</li>
<li>DB_Database&nbsp; &nbsp; &nbsp;cacti</li>
<li>DB_User&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cactiuser</li>
<li>DB_Pass&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cacti</li>
<li>DB_Port&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3306</li></ol></div>
<p>#mv /usr/local/spine/etc/spine.conf /etc/<br />
#/usr/local/spine/bin/spine  </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">SPINE: Using spine config file [/etc/spine.conf]</li>
<li>SPINE: Version 0.8.7e starting</li>
<li>SPINE: Time: 7.3153 s, Threads: 1, Hosts: 11</li></ol></div>
<p><strong>配置spine</strong><br />
(1)登陆console--Configuration--Settings--poller--Poller Type改为spine<br />
(2)登陆console--Configuration--Settings--paths--Spine Poller File Path添加/usr/local/spine/bin/spine</p>
<p>#tail /opt/htdocs/www/cacti/log/cacti.log<br />
07/23/2010 03:20:02 PM - POLLER: Poller[0] ERROR: The path: /usr/local/spine/bin/spine is invalid.  Can not continue #如果你的php有open_basedir限制，需加上/usr/local/spine/bin/目录<br />
07/23/2010 03:25:04 PM - SYSTEM STATS: Time:3.2262 Method:spine Processes:1 Threads:1 Hosts:11 HostsPerProcess:11 DataSources:190 RRDsProcessed:147 #相比php方式快很多</p>
<p></p>
<p>参考：<br />
<a href="http://liuyu.blog.51cto.com/183345/259995">http://liuyu.blog.51cto.com/183345/259995</a><br />
<a href="http://www.cacti.net/downloads/docs/html/install_unix.html">http://www.cacti.net/downloads/docs/html/install_unix.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1028/feed</wfw:commentRss>
		</item>
		<item>
		<title>强大的Excel 文档生成类库PHPExcel</title>
		<link>http://blog.c1gstudio.com/archives/1021</link>
		<comments>http://blog.c1gstudio.com/archives/1021#comments</comments>
		<pubDate>Tue, 06 Jul 2010 08:19:57 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[excel]]></category>

		<category><![CDATA[phpexcel]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1021</guid>
		<description><![CDATA[PHPExcel是强大的 MS Office Excel 文档生成类库，基于Microsoft's OpenXML ,支持普通xls,Excel2007,pdf,csv,html等
官方网站http://phpexcel.codeplex.com/
最新版本为2010-05-31 Release 1.7.3c ,7.1M左右
注意插入的值是以'='开头，默认会用作公式，而不是字符串导致出错。
当前支持的一些功能:

Set spreadsheet meta data (author, title, description, ...)
支持文档属性设置
Add worksheets to spreadsheet
增加工作表
Add data and formulas to individual cells
填充单元格值
Merge cells
合并单元格
Protect ranges of cells with a password
密码保护单元格
Supports setting cell width and height
设定例宽和例高
Supports different fonts and font styles
设定字体及样式
Supports formatting, styles, cell borders, fills, gradients, ...
设定格式，样式，边框
Supports hyperlinks
超链接格式
Supports different data types for [...]]]></description>
			<content:encoded><![CDATA[<p>PHPExcel是强大的 MS Office Excel 文档生成类库，基于Microsoft's OpenXML ,支持普通xls,Excel2007,pdf,csv,html等<br />
官方网站<a href="http://phpexcel.codeplex.com/">http://phpexcel.codeplex.com/</a><br />
最新版本为2010-05-31 Release 1.7.3c ,7.1M左右</p>
<p>注意插入的值是以'='开头，默认会用作公式，而不是字符串导致出错。</p>
<p>当前支持的一些功能:</p>
<ul>
Set spreadsheet meta data (author, title, description, ...)<br />
支持文档属性设置<br />
Add worksheets to spreadsheet<br />
增加工作表<br />
Add data and formulas to individual cells<br />
填充单元格值<br />
Merge cells<br />
合并单元格<br />
Protect ranges of cells with a password<br />
密码保护单元格<br />
Supports setting cell width and height<br />
设定例宽和例高<br />
Supports different fonts and font styles<br />
设定字体及样式<br />
Supports formatting, styles, cell borders, fills, gradients, ...<br />
设定格式，样式，边框<br />
Supports hyperlinks<br />
超链接格式<br />
Supports different data types for individual cells<br />
独立的单元格类型<br />
Supports cell text wrapping<br />
单元格折行<br />
Supports conditional formatting<br />
条件格式<br />
Supports column auto-sizing<br />
自适应列宽<br />
Supports rich-text strings<br />
富文本格式<br />
Supports autofilter<br />
自动筛选<br />
Supports "freezing" cell panes<br />
锁定单元格<br />
Supports cell-level security<br />
单元格级安全<br />
Supports workbook-level security<br />
工作簿级安全<br />
Supports worksheet-level protection<br />
工作表保护<br />
Group rows/columns<br />
分组<br />
Cell data validation<br />
数据验证<br />
Insert/remove rows/columns<br />
插入/移除行或列<br />
Named ranges<br />
指定范围<br />
Worksheet references<br />
工作表引用<br />
Calculate formula values<br />
公式计算<br />
Add comments to a cell<br />
单元格注释<br />
Add images to your spreadsheet<br />
添加图片<br />
Set image styles<br />
图片样式<br />
Positioning<br />
图片位置<br />
Rotation<br />
图片角度<br />
Shadow<br />
图片阴影<br />
Set printing options<br />
打印选项<br />
Header<br />
页头<br />
Footer<br />
页脚<br />
Page margins<br />
页边距<br />
Paper size<br />
打印页大小<br />
Orientation<br />
打印方向<br />
Row and column breaks<br />
行或列换行<br />
Repeat rows at header / columns at left<br />
重复行或列<br />
Print area<br />
区域打印<br />
Output your spreadsheet object to different file formats<br />
多种输出格式<br />
Excel 2007 (spreadsheetML)<br />
BIFF8 (Excel 97 and higher)<br />
PHPExcel Serialized Spreadsheet<br />
CSV (Comma Separated Values)<br />
HTML<br />
PDF<br />
Read different file formats into your spreadsheet object<br />
读取多种格式<br />
Excel 2007 (spreadsheetML)<br />
BIFF5 (Excel 5.0 / Excel 95), BIFF8 (Excel 97 and higher)<br />
PHPExcel Serialized Spreadsheet<br />
Excel 2003 XML format<br />
Symbolic Link (SYLK)<br />
CSV (Comma Separated Values)图片详例：
</ul>
<p>phpexcel生成效果图：<br />
<a href="http://blog.c1gstudio.com/wp-content/uploads/2010/07/phpexcel_features.png"><img class="alignnone size-full wp-image-1022" title="phpexcel_features" src="http://blog.c1gstudio.com/wp-content/uploads/2010/07/phpexcel_features.png" alt="phpexcel_features" width="498" height="494" /></a></p>
<p> <br />
其它详例：</p>
<ul>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94244';"><span style="color: #3e62a6;">01simple.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94245';"><span style="color: #3e62a6;">02types.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94246';"><span style="color: #3e62a6;">03formulas.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94247';"><span style="color: #3e62a6;">04printing.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94248';"><span style="color: #3e62a6;">05featuredemo.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94249';"><span style="color: #3e62a6;">06largescale.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94250';"><span style="color: #3e62a6;">07reader.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94251';"><span style="color: #3e62a6;">08conditionalformatting.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94252';"><span style="color: #3e62a6;">09pagebreaks.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94253';"><span style="color: #3e62a6;">10autofilter.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94254';"><span style="color: #3e62a6;">11documentsecurity.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94255';"><span style="color: #3e62a6;">12serializedfileformat.xlsx</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94256';"><span style="color: #3e62a6;">14excel5.xls</span></a></li>
<li><a href="javascript:window.location.href='http://phpexcel.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=94257';"><span style="color: #3e62a6;">15datavalidation.xlsx</span></a></li>
</ul>
<p>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"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: #ffa500;">/** Error reporting */</span></li>
<li><span style="color: Blue;">error_reporting</span><span style="color: Olive;">(</span><span style="color: Blue;">E_ALL</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">/** PHPExcel */</span></li>
<li><span style="color: Green;">require_once</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">../Classes/PHPExcel.php</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">PHPExcel</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 设置文件属性</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProperties</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCreator</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">C1G</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -&gt;</span><span style="color: Blue;">setLastModifiedBy</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">C1G</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -&gt;</span><span style="color: Blue;">setTitle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">phpexcel Test Document</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -&gt;</span><span style="color: Blue;">setSubject</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">phpexcel Test Document</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -&gt;</span><span style="color: Blue;">setDescription</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Test document for phpexcel, generated using PHP classes.</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -&gt;</span><span style="color: Blue;">setKeywords</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">office 2007 openxml php c1gstudio</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -&gt;</span><span style="color: Blue;">setCategory</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Test</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//设置当前活动的sheet</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setActiveSheetIndex</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//设置sheet名字</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setTitle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">phpexcel demo</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//设置默认行高</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getDefaultRowDimension</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setRowHeight</span><span style="color: Olive;">(</span><span style="color: Maroon;">15</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//由PHPExcel根据传入内容自动判断单元格内容类型</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Firstname</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">B1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Lastname</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">C1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Phone</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">D1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Fax</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">E1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Address</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">F1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ZIP</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">DATE</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValueByColumnAndRow</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">8</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">firstname</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValueByColumnAndRow</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: Maroon;">8</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">lastname</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// utf8格式字符</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setActiveSheetIndex</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A15</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Miscellaneous glyphs</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A16</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">éàèùâêîôûëïüÿäöüç</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A17</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">phpexcel演示</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A9</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">502</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">B9</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">99</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">C9</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">=SUM(A9:B9)</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//设置列宽</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">C</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setWidth</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">20</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 设置行高</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getRowDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">9</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setRowHeight</span><span style="color: Olive;">(</span><span style="color: Maroon;">20</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 加粗</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getStyle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getFont</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setBold</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 中文</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A2</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">小风</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">B2</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wang</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 设置单元格格式</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getCell</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">C2</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setValueExplicit</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">861391327543258</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">PHPExcel_Cell_DataType</span><span style="color: Gray;">::</span><span style="color: Blue;">TYPE_NUMERIC</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 日期</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G2</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">2008-12-31</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getStyle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G2</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getNumberFormat</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setFormatCode</span><span style="color: Olive;">(</span><span style="color: Blue;">PHPExcel_Style_NumberFormat</span><span style="color: Gray;">::</span><span style="color: Blue;">FORMAT_DATE_YYYYMMDDSLASH</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 时间戳</span></li>
<li><span style="color: #00008b;">$time</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmmktime</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">12</span><span style="color: Gray;">,</span><span style="color: Maroon;">31</span><span style="color: Gray;">,</span><span style="color: Maroon;">2008</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// int(1230681600)</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G3</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">PHPExcel_Shared_Date</span><span style="color: Gray;">::</span><span style="color: Blue;">PHPToExcel</span><span style="color: Olive;">(</span><span style="color: #00008b;">$time</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getStyle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G3</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getNumberFormat</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setFormatCode</span><span style="color: Olive;">(</span><span style="color: Blue;">PHPExcel_Style_NumberFormat</span><span style="color: Gray;">::</span><span style="color: Blue;">FORMAT_DATE_YYYYMMDDSLASH</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// url</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G11</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">blog.c1gstudio.com</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getCell</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G11</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getHyperlink</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setUrl</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">http://blog.c1gstudio.com</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 另一个sheet</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCellValue</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G12</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">sheetb</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getCell</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G12</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getHyperlink</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setUrl</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">sheet://'sheetb'!A1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 水平居上</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getStyle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A9:B9</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getAlignment</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setVertical</span><span style="color: Olive;">(</span><span style="color: Blue;">PHPExcel_Style_Alignment</span><span style="color: Gray;">::</span><span style="color: Blue;">VERTICAL_TOP</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 单元格换行</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getStyle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">G2:G3</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getAlignment</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setWrapText</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 合并</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">mergeCells</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A18:E22</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 隐藏D列</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">D</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setVisible</span><span style="color: Olive;">(</span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// </span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">E</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setOutlineLevel</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">E</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setVisible</span><span style="color: Olive;">(</span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">F</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setOutlineLevel</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">F</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setVisible</span><span style="color: Olive;">(</span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getColumnDimension</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">F</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setCollapsed</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 固定第一行</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">freezePane</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">A2</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 保护工作表</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProtection</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setPassword</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">PHPExcel</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProtection</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setSheet</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProtection</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setSort</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProtection</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setInsertRows</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProtection</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setFormatCells</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//设置边框</span></li>
<li><span style="color: #00008b;">$sharedStyle1</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">PHPExcel_Style</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$sharedStyle1</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">applyFromArray</span><span style="color: Olive;">(</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">borders</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: Green;">array</span><span style="color: Olive;">(</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">left</span><span style="color: #8b0000;">'</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; =&gt; </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">style</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: Blue;">PHPExcel_Style_Border</span><span style="color: Gray;">::</span><span style="color: Blue;">BORDER_MEDIUM</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setSharedStyle</span><span style="color: Olive;">(</span><span style="color: #00008b;">$sharedStyle1</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">B1:B10</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 创建一个新的工作表</span></li>
<li><span style="color: #00008b;">$objWorksheet1</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">createSheet</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objWorksheet1</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setTitle</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">sheetb</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setActiveSheetIndex</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 创建一个图片</span></li>
<li><span style="color: #00008b;">$gdImage</span><span style="color: Gray;"> = @</span><span style="color: Blue;">imagecreatetruecolor</span><span style="color: Olive;">(</span><span style="color: Maroon;">200</span><span style="color: Gray;">, </span><span style="color: Maroon;">20</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Cannot Initialize new GD image stream</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$textColor</span><span style="color: Gray;"> = </span><span style="color: Blue;">imagecolorallocate</span><span style="color: Olive;">(</span><span style="color: #00008b;">$gdImage</span><span style="color: Gray;">, </span><span style="color: Maroon;">255</span><span style="color: Gray;">, </span><span style="color: Maroon;">255</span><span style="color: Gray;">, </span><span style="color: Maroon;">255</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">imagestring</span><span style="color: Olive;">(</span><span style="color: #00008b;">$gdImage</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: Maroon;">5</span><span style="color: Gray;">, </span><span style="color: Maroon;">5</span><span style="color: Gray;">,&nbsp; </span><span style="color: #8b0000;">'</span><span style="color: Red;">Created with PHPExcel (c1gstudio.com)</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$textColor</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 把创建的图片添加到工作表</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">PHPExcel_Worksheet_MemoryDrawing</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setName</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Sample image</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setDescription</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Sample image</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setImageResource</span><span style="color: Olive;">(</span><span style="color: #00008b;">$gdImage</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setRenderingFunction</span><span style="color: Olive;">(</span><span style="color: Blue;">PHPExcel_Worksheet_MemoryDrawing</span><span style="color: Gray;">::</span><span style="color: Blue;">RENDERING_JPEG</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setMimeType</span><span style="color: Olive;">(</span><span style="color: Blue;">PHPExcel_Worksheet_MemoryDrawing</span><span style="color: Gray;">::</span><span style="color: Blue;">MIMETYPE_DEFAULT</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setHeight</span><span style="color: Olive;">(</span><span style="color: Maroon;">36</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objDrawing</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setWorksheet</span><span style="color: Olive;">(</span><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getActiveSheet</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setActiveSheetIndex</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 保存</span></li>
<li><span style="color: #00008b;">$objWriter</span><span style="color: Gray;"> = </span><span style="color: Blue;">PHPExcel_IOFactory</span><span style="color: Gray;">::</span><span style="color: Blue;">createWriter</span><span style="color: Olive;">(</span><span style="color: #00008b;">$objPHPExcel</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">Excel5</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$objWriter</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">save</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">testexcel</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: Blue;">time</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">.xls</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">/*</span></li>
<li><span style="color: #ffa500;">//在浏览器导出</span></li>
<li><span style="color: #ffa500;">header('Content-Type: application/vnd.ms-excel');</span></li>
<li><span style="color: #ffa500;">header('Content-Disposition: attachment;filename=&quot;testexcel.xls&quot;');</span></li>
<li><span style="color: #ffa500;">header('Cache-Control: max-age=0');</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');</span></li>
<li><span style="color: #ffa500;">$objWriter-&gt;save('php://output');</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;"> * $Log$</span></li>
<li><span style="color: #ffa500;"> */</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>上面代码生成的excel文件.<br />
<a href='http://blog.c1gstudio.com/wp-content/uploads/2010/07/testexcel1278403711.xls'>testexcel1278403711.xls</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1021/feed</wfw:commentRss>
		</item>
		<item>
		<title>lvm在线增加磁盘空间</title>
		<link>http://blog.c1gstudio.com/archives/1019</link>
		<comments>http://blog.c1gstudio.com/archives/1019#comments</comments>
		<pubDate>Mon, 05 Jul 2010 04:25:29 +0000</pubDate>
		<dc:creator>C1G</dc:creator>
		
		<category><![CDATA[linux 维护优化]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[磁盘]]></category>

		<category><![CDATA[ext2online]]></category>

		<category><![CDATA[lvm]]></category>

		<guid isPermaLink="false">http://blog.c1gstudio.com/?p=1019</guid>
		<description><![CDATA[一。查看当前空间
#df -h
Filesystem&#160; &#160; &#160; &#160; &#160; &#160; Size&#160; Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 97G&#160; 1.9G&#160; &#160;91G&#160; &#160;3% /
/dev/mapper/VolGroup00-LogVol01
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;194G&#160; 140G&#160; &#160;44G&#160; 77% /home
/dev/mapper/VolGroup00-LogVol04
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; 97G&#160; &#160;17G&#160; &#160;75G&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>一。查看当前空间</strong><br />
#df -h</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">Filesystem&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Size&nbsp; Used Avail Use% Mounted on</li>
<li>/dev/mapper/VolGroup00-LogVol00</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 97G&nbsp; 1.9G&nbsp; &nbsp;91G&nbsp; &nbsp;3% /</li>
<li>/dev/mapper/VolGroup00-LogVol01</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;194G&nbsp; 140G&nbsp; &nbsp;44G&nbsp; 77% /home</li>
<li>/dev/mapper/VolGroup00-LogVol04</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 97G&nbsp; &nbsp;17G&nbsp; &nbsp;75G&nbsp; 19% /var</li>
<li>/dev/mapper/VolGroup00-LogVol03</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 97G&nbsp; &nbsp;52G&nbsp; &nbsp;41G&nbsp; 56% /opt</li>
<li>/dev/mapper/VolGroup00-LogVol02</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;9.7G&nbsp; 158M&nbsp; 9.1G&nbsp; &nbsp;2% /tmp</li>
<li>/dev/sda1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 99M&nbsp; &nbsp;12M&nbsp; &nbsp;82M&nbsp; 13% /boot</li>
<li>tmpfs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1010M&nbsp; 4.0K 1010M&nbsp; &nbsp;1% /dev/shm</li></ol></div>
<p>/home 增加200G<br />
/opt 增加100G</p>
<p><strong>fdisk 查看下磁盘为1T大小,并全部分给lvm</strong><br />
#fdisk -l</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">Disk /dev/sda: 1000.2 GB, 1000203804160 bytes</li>
<li>255 heads, 63 sectors/track, 121601 cylinders</li>
<li>Units = cylinders of 16065 * 512 = 8225280 bytes</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; Device Boot&nbsp; &nbsp; &nbsp; Start&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End&nbsp; &nbsp; &nbsp; Blocks&nbsp; &nbsp;Id&nbsp; System</li>
<li>/dev/sda1&nbsp; &nbsp;*&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 13&nbsp; &nbsp; &nbsp; 104391&nbsp; &nbsp;83&nbsp; Linux</li>
<li>/dev/sda2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 14&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;535&nbsp; &nbsp; &nbsp;4192965&nbsp; &nbsp;82&nbsp; Linux swap / Solaris</li>
<li>/dev/sda3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;536&nbsp; &nbsp; &nbsp; 121601&nbsp; &nbsp;972462645&nbsp; &nbsp;8e&nbsp; Linux LVM</li></ol></div>
<p>vgdisplay查看卷组空间,还有400G空闲空间<br />
#vgdisplay</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">--- Volume group ---</li>
<li>&nbsp; VG Name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;VolGroup00</li>
<li>&nbsp; System ID&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</li>
<li>&nbsp; Format&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lvm2</li>
<li>&nbsp; Metadata Areas&nbsp; &nbsp; &nbsp; &nbsp; 1</li>
<li>&nbsp; Metadata Sequence No&nbsp; 6</li>
<li>&nbsp; VG Access&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;read/write</li>
<li>&nbsp; VG Status&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;resizable</li>
<li>&nbsp; MAX LV&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0</li>
<li>&nbsp; Cur LV&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 5</li>
<li>&nbsp; Open LV&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;5</li>
<li>&nbsp; Max PV&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0</li>
<li>&nbsp; Cur PV&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1</li>
<li>&nbsp; Act PV&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1</li>
<li>&nbsp; VG Size&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;927.41 GB</li>
<li>&nbsp; PE Size&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;32.00 MB</li>
<li>&nbsp; Total PE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 29677</li>
<li>&nbsp; Alloc PE / Size&nbsp; &nbsp; &nbsp; &nbsp;16320 / 510.00 GB</li>
<li>&nbsp; Free&nbsp; PE / Size&nbsp; &nbsp; &nbsp; &nbsp;13357 / 417.41 GB</li>
<li>&nbsp; VG UUID&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4Wzdqp-f3RH-1lEP-YfXN-01Vp-3K5c-EmtcBE</li></ol></div>
<p><strong>二.开始增加空间</strong><br />
(错误的方式)<br />
#lvextend -L +100G /dev/mapper/VolGroup00-LogVol03</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">Volume group &quot;mapper&quot; not found</li>
<li>&nbsp; Volume group mapper doesn't exist</li></ol></div>
<p>这里的设备名写错了(另注意一定要加"<span style="color:red">+</span>")，正确的是<br />
#lvextend -L +100G /dev/VolGroup00/LogVol03</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">Extending logical volume LogVol03 to 200.00 GB</li>
<li>&nbsp; Logical volume LogVol03 successfully resized</li></ol></div>
<p><strong>三.lvextend修改了lvm的大小，下面还需修改文件系统大小。</strong><br />
可以用umount+resize2fs 或ext2online<br />
umount通常会碰到device is busy，这里用ext2online</p>
<p>下载ext2online<br />
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/e/project/ex/ext2resize/ext2resize/ext2resize-1.1.19/</p>
<p>1.下载i386的rpm<br />
#wget http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/e/project/ex/ext2resize/ext2resize/ext2resize-1.1.19/ext2resize-1.1.19-1.i386.rpm</p>
<p>2.创建sct用户<br />
#useradd sct<br />
#rpm -ivh ext2resize-1.1.19-1.i386.rpm<br />
-----------------<br />
安装完成后会有三个命令：<br />
ext2online   ext2prepare  ext2resize<br />
-----------------<br />
注意：安装此工具，必须有sct用户(当前用户不用是sct)</p>
<p>3.运行<br />
#ext2online /dev/VolGroup00/LogVol03<br />
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b</p>
<p><strong>四.最后检查</strong><br />
#df -h</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">Filesystem&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Size&nbsp; Used Avail Use% Mounted on</li>
<li>/dev/mapper/VolGroup00-LogVol00</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 97G&nbsp; 1.9G&nbsp; &nbsp;91G&nbsp; &nbsp;3% /</li>
<li>/dev/mapper/VolGroup00-LogVol01</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;194G&nbsp; 140G&nbsp; &nbsp;44G&nbsp; 77% /home</li>
<li>/dev/mapper/VolGroup00-LogVol04</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 97G&nbsp; &nbsp;17G&nbsp; &nbsp;75G&nbsp; 19% /var</li>
<li>/dev/mapper/VolGroup00-LogVol03</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;194G&nbsp; &nbsp;52G&nbsp; 133G&nbsp; 28% /opt</li>
<li>/dev/mapper/VolGroup00-LogVol02</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;9.7G&nbsp; 158M&nbsp; 9.1G&nbsp; &nbsp;2% /tmp</li>
<li>/dev/sda1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 99M&nbsp; &nbsp;12M&nbsp; &nbsp;82M&nbsp; 13% /boot</li>
<li>tmpfs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1010M&nbsp; &nbsp; &nbsp;0 1010M&nbsp; &nbsp;0% /dev/shm</li></ol></div>
<p>/opt 已增加到200G.同样的方式再增加/home就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.c1gstudio.com/archives/1019/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 10.148 seconds -->
<!-- Cached page served by WP-Cache -->
