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

<channel>
	<title>DevOps技术分享 &#187; PHP</title>
	<atom:link href="http://www.showerlee.com/archives/category/programming/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.showerlee.com</link>
	<description>与你共同学习运维开发</description>
	<lastBuildDate>Mon, 19 Oct 2020 05:51:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>CentOS6.3下添加PHP扩展模块mssql</title>
		<link>http://www.showerlee.com/archives/1269</link>
		<comments>http://www.showerlee.com/archives/1269#comments</comments>
		<pubDate>Wed, 13 Aug 2014 17:01:07 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=1269</guid>
		<description><![CDATA[&#160; 如果在LINUX系统上需要使用PHP连接Microsoft SQL Server 2005数据库 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
	&nbsp; 如果在LINUX系统上需要使用<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>连接Microsoft SQL Server 2005数据库,我们常见的连接数据库方式是使用ODBC方式连接.
</p>
<p>
	&nbsp; FreeTDS为Linux系统提供了TDS协议的开源客户端。由于MSSQL和Sybase使用的恰是TDS协议，所以在Linux中可以用FreeTDS连接MSSQL，下面简绍使用php的db-lib连接Microsoft SQL Server 2005数据库.
</p>
<p>
	&nbsp;
</p>
<p>
	LINUX操作系统: &nbsp; centOS6.3 64bit(安装了系统默认开发包)
</p>
<p>
	APACHE: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;httpd-2.4.4
</p>
<p>
	<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;php-5.4.13
</p>
<p>
	freetds: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; freetds-0.91
</p>
<p>
	&nbsp;
</p>
<p>
	一.关闭iptables和SELINUX
</p>
<p>
	# service iptables stop
</p>
<p>
	# setenforce 0
</p>
<p>
	# vi /etc/sysconfig/selinux
</p>
<p>
	---------------
</p>
<p>
	SELINUX=disabled
</p>
<p>
	---------------
</p>
<p>
	&nbsp;
</p>
<p>
	二.同步时间
</p>
<p>
	# ntpdate cn.pool.ntp.org
</p>
<p>
	&nbsp;
</p>
<p>
	一.安装APACHE+<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>
</p>
<p>
	传送门：<a href="http://www.showerlee.com/archives/6" target="_blank">http://www.showerlee.com/archives/6</a>
</p>
<p>
	&nbsp;
</p>
<p>
	二.使用FreeTDS启用<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>连接MSSQL
</p>
<p>
	1.下载FreeTds
</p>
<p>
	# su -
</p>
<p>
	# wget <a href="ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz" rel="nofollow">ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz</a>
</p>
<p>
	&nbsp;
</p>
<p>
	2.安装FreeTds
</p>
<p>
	# tar -zxvf freetds-stable.tgz
</p>
<p>
	# cd freetds-0.91
</p>
<p>
	# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static&nbsp;
</p>
<p>
	# make &amp;&amp; make install
</p>
<p>
	&nbsp;
</p>
<p>
	3.启用<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>连接MSSQL
</p>
<p>
	方法一:编译php加上freetds路径(初次部署推荐)
</p>
<p>
	# wget <a href="http://cn2.php.net/distributions/php-5.4.13.tar.bz2" rel="nofollow">http://cn2.php.net/distributions/php-5.4.13.tar.bz2</a>
</p>
<p>
	# tar -jxvf php-5.4.13.tar.bz2
</p>
<p>
	# cd php-5.4.13
</p>
<p>
	# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/lib --with-zlib-dir=/usr/local/lib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --enable-soap --enable-sockets &nbsp;--enable-xml --enable-mbstring --with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-curl=/usr/lib --with-freetype-dir=/usr/include/freetype2/freetype/ --enable-bcmath --enable-calendar --enable-zip --enable-maintainer-zts <span style="color:#E53333;">--with-mssql=/usr/local/freetds</span>
</p>
<p>
	# make &amp;&amp; make install
</p>
<p>
	&nbsp;
</p>
<p>
	方法二:编译<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>的mssql扩展并加上freetds路径(二次部署推荐)
</p>
<p>
	# wget <a href="http://cn2.php.net/distributions/php-5.4.13.tar.bz2" rel="nofollow">http://cn2.php.net/distributions/php-5.4.13.tar.bz2</a>
</p>
<p>
	# tar -jxvf php-5.4.13.tar.bz2
</p>
<p>
	# cd php-5.4.13/ext/mssql
</p>
<p>
	# /usr/local/php/bin/phpize
</p>
<p>
	# ./configure --with-php-config=/usr/local/php/bin/php-config <span style="color:#E53333;">--with-mssql=/usr/local/freetds</span>
</p>
<p>
	# make &amp;&amp; make install
</p>
<p>
	&nbsp;
</p>
<p>
	安装完毕,按照编译安装后的提示
</p>
<p>
	mssql.so模块会默认保存在 /usr/local/php5/lib/php/extensions/no-debug-zts-20090626/ 目录下
</p>
<p>
	&nbsp;
</p>
<p>
	加载该模块到php
</p>
<p>
	# vi /usr/local/php5/lib/php.ini
</p>
<p>
	添加如下行：
</p>
<p>
	extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20090626/mssql.so"
</p>
<p>
	重启apache:
</p>
<p>
	# /usr/local/apache2/bin/apachectl restart&nbsp;
</p>
<p>
	<span style="color:#E53333;"><br />
</span>
</p>
<p>
	<span style="color:#E53333;">注: 如果编译php加载freetds 时候出现不能找到freetds目录,则需要以下操作(官方的Faq)</span>
</p>
<p>
	<span style="color:#E53333;"># touch /usr/local/freetds/include/tds.h</span>
</p>
<p>
	<span style="color:#E53333;"># touch /usr/local/freetds/lib/libtds.a</span>
</p>
<p>
	&nbsp;
</p>
<p>
	4.添加phpinfo功能，测试页面
</p>
<p>
	添加以下内容info.php到/usr/local/apache2/htdocs/下,测试php模块是否加载.
</p>
<p>
	# vi &nbsp;/usr/local/apache2/htdocs/info.php
</p>
<p>
	---------------
</p>
<p>
	&lt;?php
</p>
<p>
	echo phpinfo();
</p>
<p>
	?&gt;
</p>
<p>
	---------------
</p>
<p>
	检查80端口是否打开
</p>
<p>
	# lsof -i:80
</p>
<p>
	浏览器输入 <a href="http://localhost/info.php" rel="nofollow">http://localhost/info.php</a>
</p>
<p>
	显示有如下测试页面内容, <span>mssql.so</span>模块即在<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>下加载成功
</p>
<p>&nbsp;<br />
<a href="http://www.showerlee.com/wp-content/uploads/2014/08/mssql.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/08/mssql.jpg" alt="mssql" width="669" height="511" class="alignnone size-full wp-image-1270" /></a></p>
<p>
	&nbsp;
</p>
<p>
	5.数据库连接测试页面:
</p>
<p>
	假定mssql数据库IP为192.168.100.10,端口为1433,管理员账号密码都为"sa"
</p>
<p>
	# vi /usr/local/apache2/htdocs/test_mssql_conn.php
</p>
<p>
	---------------------------------------------
</p>
<p>
	&lt;?php&nbsp;
</p>
<p>
	if(mssql_connect('192.168.100.10,1433','sa','sa')){&nbsp;
</p>
<p>
	echo &nbsp; "成功 ";&nbsp;
</p>
<p>
	}&nbsp;
</p>
<p>
	else &nbsp; {&nbsp;
</p>
<p>
	echo &nbsp; "失败 ";&nbsp;
</p>
<p>
	}&nbsp;
</p>
<p>
	?&gt;
</p>
<p>
	---------------------------------------------
</p>
<p>
	&nbsp;
</p>
<p>
	浏览器输入 <a href="http://localhost/test_mssql_conn.php" rel="nofollow">http://localhost/test_mssql_conn.php</a>
</p>
<p>
	测试最终连接状态.
</p>
<p>
	&nbsp;
</p>
<p>
	大功告成....
</p>
<p>
	
</p>
<p>
	<span style="color:#E53333;">后记: 如果有些朋友使用Yum安装的LAMP环境,然后后期需要添加mssql模块到<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>.</span>
</p>
<p>
	<span style="color:#E53333;">部署方法:</span>
</p>
<p>
	<span style="color:#E53333;">#&nbsp;</span><span style="color:#E53333;">yum install php-mssql -y</span>
</p>
<p>
	<span style="color:#E53333;"># service httpd restart</span>
</p>
<p></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/1269">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOS6.3下添加PHP扩展模块mssql" href="http://www.showerlee.com/archives/1269">http://www.showerlee.com/archives/1269</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/1269/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] PHP+MYSQL留言板制作</title>
		<link>http://www.showerlee.com/archives/1062</link>
		<comments>http://www.showerlee.com/archives/1062#comments</comments>
		<pubDate>Wed, 08 Jan 2014 15:33:25 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=1062</guid>
		<description><![CDATA[PYTHON学习先告一段落,最近一直在研究PHP,刚好最近看到留言板制作,所以整理了点自己的心得写了出来,供大 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PYTHON学习先告一段落,最近一直在研究<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>,刚好最近看到留言板制作,所以整理了点自己的心得写了出来,供大家参考
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PS:代码包下载地址: <a href="http://www.showerlee.com/wp-content/uploads/2014/01/bbs.rar" target="_blank">bbs_code.rar</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境: &nbsp; &nbsp;WAMP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	IDE: &nbsp; &nbsp; &nbsp; &nbsp; NETBEANS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SQL工具: &nbsp; &nbsp; NAVICAT
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	显示效果
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如图:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/01/11.jpg"><br class="Apple-interchange-newline" /><br />
<img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/01/11.jpg" alt="1" width="518" height="124" class="alignnone size-full wp-image-1175" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/01/21.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/01/21.jpg" alt="2" width="952" height="442" class="alignnone size-large wp-image-1176" /></a><span></span><a href="http://www.showerlee.com/wp-content/uploads/2014/01/31.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/01/31.jpg" alt="3" width="400" height="193" class="alignnone size-large wp-image-1177" /></a><span>&nbsp;</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2014/01/41.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2014/01/41.jpg" alt="4" width="203" height="98" class="alignnone size-large wp-image-1178" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.导入MYSQL数据:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	将如下SQL语句导入库,假定库名称为bbs,这里保证库与表字段的编码都为UTF-8模式
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	CREATE TABLE `message` (
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;`id` tinyint(1) NOT NULL auto_increment,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;`user` varchar(25) NOT NULL,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;`title` varchar(50) NOT NULL,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;`content` tinytext NOT NULL,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;`lastdate` date NOT NULL,
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;PRIMARY KEY &nbsp;(`id`)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.部分<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>代码
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">add.php</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//加载conn.php文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	include("conn.php");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//加载head.php文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	include("head.php");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//提交表单到数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if($_POST['submit']){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; $sql = "insert into message(id,user,title,content,lastdate) " .
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; mysql_query($sql);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; echo "&lt;script language=\"javascript\"&gt;alert('添加成功');history.go(-1)&lt;/script&gt;";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--利用JS对表单输入进行字符限制--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;SCRIPT language=javascript&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;function CheckPost() {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;if (myform.user.value==""){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("请填写用户名");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myform.user.focus();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;if (myform.title.value.length&lt;5){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("标题不能少于5个字符");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myform.title.focus();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;if (myform.content.value==""){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("必须要填写留言内容");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myform.content.focus();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/SCRIPT&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--HTML表单结构--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;form action="add.php" method="post" name="myform" onsubmit="return CheckPost();"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	用户: &lt;input type="text" size="10" name="user"/&gt;&lt;br&gt; &nbsp; &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	标题: &lt;input type="text" name="title" value="value" size="40" maxlength="40"/&gt;&lt;br&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	内容: &lt;textarea name="content"&gt;&lt;/textarea&gt;&lt;br/&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;input type='submit' name='submit' value="发布留言"/&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/form&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">head.php</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--HTML头导航链接--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;head&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;title&gt;&lt;/title&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;link href=\'#\'" /css.css" rel="stylesheet" type="text/css"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;b&gt;&lt;a href=\'#\'" /a&gt; | &lt;a href="list.php"&gt;浏览留言&lt;/a&gt; | &lt;a href="login.php"&gt;登陆&lt;/a&gt;&lt;/b&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;hr size="1"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">list.php</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//加载conn.php文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	include("conn.php");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//加载head.php文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	include("head.php");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//设置分页值为5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$pagesize=5;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//取得除域名外后面完整的地址路径
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$url=$_SERVER["REQUEST_URI"];
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//取得该固定键值[path][query]的url数组
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$url=parse_url($url);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//print_r($url);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//取得url的[path]路径值
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$url=$url[path];
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//取得test表信息
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$numq = &nbsp;mysql_query("select * from message");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//取得test表内容的行数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$num = mysql_num_rows($numq);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//判断是否能取到page参数值
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if($_GET[page]){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;//将该值传给pageval
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;$pageval=$_GET[page];
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;//计算page值,供SQL语句使用
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;$page=($pageval-1)*$pagesize;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;//等价于 $page = $page.',' 意思就是将page参数值与,连接起来
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;$page.=",";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//判断数据库条目总数大于页数,显示分页
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if($num &gt; $pagesize){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;//判断上一页和下一页的值若小于0,则按照0处理
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;if($pageval&lt;=1)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;$pageval=1;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;//显示分页
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;echo "共 $num 条".
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;//.(...).用来连接变量名
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;" &lt;a href=$url?page=".($pageval-1)."&gt;上一页&lt;/a&gt; &lt;a href=$url?page=".($pageval+1)."&gt;下一页&lt;/a&gt;";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--HTML留言列表结构--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;$sql = "select * from message order by id desc limit $page $pagesize";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;$query = mysql_query($sql);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;while($row=mysql_fetch_array($query)){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;tr bgcolor="#eff3ff"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;td&gt;标题：&lt;?=$row[title]?&gt; 用户：&lt;?=$row[user]?&gt;&lt;/td&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;/tr&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;tr bgColor="#ffffff"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;&lt;td&gt;内容：&lt;? echo htmtocode($row[content]); ?&gt;&lt;/td&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;tr bgColor="#ffffff"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;td&gt;时间：&lt;?=$row[lastdate]?&gt;&lt;/td&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;/tr&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/table&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">conn.php</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//登录MYSQL数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//进入BBS库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_select_db("bbs", $conn);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//使用UTF-8中文编码传输数据流
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_query("set names 'UTF8'");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//修改空格和回车编码为HTML可识别编码
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	function htmtocode($content){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;$content = str_replace("\n","&lt;br&gt;", str_replace(" ", "&amp;nbsp;", $content));
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;return $content;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">login.php</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//加载conn.php文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	include("conn.php");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//判断是否退出,并标记cookie为out,返回登录页
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if($_GET[out]){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;setcookie("cookie","out");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;echo "&lt;script language=\"javascript\"&gt;location.href='login.php';&lt;/script&gt;";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//提交表单判断登录ID是否为admin,密码是否匹配'<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>'的MD5值,并标记cookie为ok
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if($_POST[id] =='admin'){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;$pw=md5($_POST[pw]);
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;if ($pw=='e1bfd762321e409cee4ac0b6e841963c'){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;setcookie("cookie","ok");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;//刷新登录页面使cookie标记值生效.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;echo "&lt;script language=\"javascript\"&gt;location.href='login.php';&lt;/script&gt;";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//加载head.php文件
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	include("head.php");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	//提交表单判断cookie标记值不为ok,则显示登录页,否则显示退出页
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	if($_COOKIE['cookie']!='ok'){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--利用JS对登录字符进行限制--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;SCRIPT language=javascript&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;function Checklogin(){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;if (myform.id.value ==""){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("请填写登录名");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myform.id.focus();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;if (myform.id.value !=="admin"){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("用户名错误");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myform.id.focus();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;if (myform.pw.value ==""){
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alert("密码不能为空");
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myform.pw.focus();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/SCRIPT&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--HTML登录页--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;form action="" method="post" name="myform" onsubmit="return Checklogin();"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;用户名: &lt;INPUT type="text" name="id" /&gt;&lt;br&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;密&amp;nbsp;&amp;nbsp;码: &lt;INPUT type="password" name="pw" /&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;&lt;input type="submit" name="submit" value="登陆"&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;/form&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}else{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;!--HTML退出页--&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;&lt;a href='?out=login'&gt;退出&lt;/a&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------------------------------------</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/1062">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="[PHP] PHP+MYSQL留言板制作" href="http://www.showerlee.com/archives/1062">http://www.showerlee.com/archives/1062</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/1062/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache下PHP添加xcache模块</title>
		<link>http://www.showerlee.com/archives/694</link>
		<comments>http://www.showerlee.com/archives/694#comments</comments>
		<pubDate>Tue, 27 Aug 2013 17:05:10 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[XCACHE，PHP]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=694</guid>
		<description><![CDATA[安装环境centOS6.3 APACHE:apache-2.4.4 PHP:5.4.13&#160; 1.安装 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>安装环境centOS6.3</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>APACHE:apache-2.4.4</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>PHP:5.4.13&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>1.安装xchache:</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># wget <a href="http://xcache.lighttpd.net/pub/Releases/3.0.1/xcache-3.0.1.tar.gz" rel="nofollow">http://xcache.lighttpd.net/pub/Releases/3.0.1/xcache-3.0.1.tar.gz</a></span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># tar xf xcache-3.0.1.tar.gz&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># cd xcache-3.0.1 &nbsp; &nbsp; &nbsp; #xcache是php的扩展，要使用php命令加载此扩展&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># /usr/local/php5/bin/phpize &nbsp; &nbsp; &nbsp;#phpize命令作用是要准备一个php扩展准备编译，所以扩展要先执行编译&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>#./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>#php-config表示能够获取php的配置信息以及编译时的选项信息；&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>##由于不在默认路径下，xcache要获取php安装时所启用的功能，否则xcache会找不到php的路径&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>#make&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>#make install &nbsp; &nbsp;&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>安装结束时，会出现类似如下行：&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>Installing shared extensions: &nbsp; &nbsp; /usr/local/php/lib/php5/extensions/no-debug-zts-20100525/&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>#安装共享扩展模块路径，先把这个路径复制下来，等一下复制到xcache的配置文件中&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>2 编辑php.ini，整合php和xcache</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="font-family:宋体;"># cd xcache-3.0.1</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># vi xcache.ini&nbsp;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>将xcache配置文件下内容添加到PHP配置文件/usr/local/php5/lib/php.ini下</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>并找到extension这行,修改为</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>extension =/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/xcache.so</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>重启服务</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>service httpd restart</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>3.添加phpinfo功能，测试页面</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>添加以下内容info.php到/usr/local/apache2/htdocs/下,测试php模块是否加载.</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># vi &nbsp;/usr/local/apache2/htdocs/info.php</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>---------------</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>&lt;?php</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>echo phpinfo();</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>?&gt;</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>---------------</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>检查80端口是否打开</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span># lsof -i:80</span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>浏览器输入 <a href="http://localhost/info.php" rel="nofollow">http://localhost/info.php</a></span><span><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span>显示有如下测试页面内容,PHP模块即在APACHE下加载成功</span>
</p>
<p><a href="http://www.showerlee.com/wp-content/uploads/2013/08/113.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/113.jpg" alt="1" width="622" height="458" class="alignnone size-full wp-image-695" /></a></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/694">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Apache下PHP添加xcache模块" href="http://www.showerlee.com/archives/694">http://www.showerlee.com/archives/694</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/694/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>理解php-fpm的两种执行方式</title>
		<link>http://www.showerlee.com/archives/687</link>
		<comments>http://www.showerlee.com/archives/687#comments</comments>
		<pubDate>Tue, 27 Aug 2013 16:56:03 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=687</guid>
		<description><![CDATA[前段时间配置php-fpm的时候，无意间发现原来他还有两种执行方式。与Apache一样，他的进程数也是可以根据 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	前段时间配置php-fpm的时候，无意间发现原来他还有两种执行方式。与Apache一样，他的进程数也是可以根据设置分为动态和静态的。关于Apache的工作方式及对应的设置方法，我已经在《Ubuntu下配置Apache的Worker模式》一文中写出，这里不再多说。
</p>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	而php-fpm也是同样存在两种方式，一种是直接开启指定数量的php-fpm进程，不再增加或者减少；另一种则是开始的时候开启一定数量的php-fpm进程，当请求量变大的时候，动态的增加php-fpm进程数到上限，当空闲的时候自动释放空闲的进程数到一个下限。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这两种不同的执行方式，可以根据服务器的实际需求来进行调整。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这里先说一下涉及到这个的几个参数吧，他们分别是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm表示使用那种方式，有两个值可以选择，就是static（静态）或者dynamic（动态）。在更老一些的版本中，dynamic被称作apache-like。这个要注意看配置文件给出的说明了。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	下面4个参数的意思分别为：
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.max_children：静态方式下开启的php-fpm进程数量。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.start_servers：动态方式下的起始php-fpm进程数量。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.min_spare_servers：动态方式下的最小php-fpm进程数量。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.max_spare_servers：动态方式下的最大php-fpm进程数量。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如果dm设置为static，那么其实只有pm.max_children这个参数生效。系统会开启设置的数量个php-fpm进程。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	如果dm设置为dynamic，那么pm.max_children参数失效，后面3个参数生效。系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程，然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	那么，对于我们的服务器，选择哪种执行方式比较好呢？事实上，跟Apache一样，我们运行的PHP程序在执行完成后，或多或少会有内存泄露的问题。这也是为什么开始的时候一个php-fpm进程只占用3M左右内存，运行一段时间后就会上升到20-30M的原因了。所以，动态方式因为会结束掉多余的进程，可以回收释放一些内存，所以推荐在内存较少的服务器或者VPS上使用。具体最大数量根据 内存/20M 得到。比如说512M的VPS，建议pm.max_spare_servers设置为20。至于pm.min_spare_servers，则建议根据服务器的负载情况来设置，比较合适的值在5~10之间。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	然后对于比较大内存的服务器来说，设置为静态的话会提高效率。因为频繁开关php-fpm进程也会有时滞，所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到。比如说2GB内存的服务器，可以设置为50；4GB内存可以设置为100等。
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	本博客建立在512M的VPS上，因此我设置的参数如下：
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm=dynamic
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.max_children=20
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.start_servers=5
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.min_spare_servers=5
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pm.max_spare_servers=20
</div>
<div style="padding:0px;margin:0px;color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	这样就可以最大的节省内存并提高执行效率。
</div>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/687">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="理解php-fpm的两种执行方式" href="http://www.showerlee.com/archives/687">http://www.showerlee.com/archives/687</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/687/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP添加mcrypt扩展模块</title>
		<link>http://www.showerlee.com/archives/583</link>
		<comments>http://www.showerlee.com/archives/583#comments</comments>
		<pubDate>Tue, 27 Aug 2013 10:47:17 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Mcrypt]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=583</guid>
		<description><![CDATA[系统环境：centOS6.3 APACHE：httpd-2.4.2 PHP：php-5.3.21 一.安装mc [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centOS6.3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	APACHE：httpd-2.4.2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>：php-5.3.21
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	一.安装mcrypt
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>1.下载Libmcrypt,mhash,mcrypt安装包&nbsp;</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	libmcrypt-2.5.8.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://sourceforge.net/project/showfiles.php?group_id=87941&#038;package_id=91774&#038;release_id=487459" rel="nofollow">http://sourceforge.net/project/showfiles.php?group_id=87941&#038;package_id=91774&#038;release_id=487459</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mhash-0.9.9.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://sourceforge.net/project/showfiles.php?group_id=4286&#038;package_id=4300&#038;release_id=645636" rel="nofollow">http://sourceforge.net/project/showfiles.php?group_id=4286&#038;package_id=4300&#038;release_id=645636</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mcrypt-2.6.8.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://sourceforge.net/project/showfiles.php?group_id=87941&#038;package_id=91948&#038;release_id=642101&#038;nbsp" rel="nofollow">http://sourceforge.net/project/showfiles.php?group_id=87941&#038;package_id=91948&#038;release_id=642101&#038;nbsp</a>;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>2 .先安装Libmcrypt</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar -zxvf libmcrypt-2.5.8.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd libmcrypt-2.5.8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/php5/bin/phpize #动态编译php模块，使其可以使用configure编译。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make install &nbsp; &nbsp; # libmcript默认安装在/usr/local #
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>3.安装mhash</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar -zxvf mhash-0.9.9.9.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd mhash-0.9.9.9
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/php5/bin/phpize&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>4.安装mcrypt</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar -zxvf mcrypt-2.6.8.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd mcrypt-2.6.8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/php5/bin/phpize&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#&nbsp;./configure --with-php-config=/usr/local/php5/bin/php-config&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	安装完毕,按照编译安装后的提示
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mcrypt.so模块会默认保存在 /usr/local/php5/lib/php/extensions/no-debug-zts-20090626/ 目录下
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>5.加载该模块到php</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi&nbsp;/usr/local/php5/lib/php.ini
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加如下行：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20090626/mcrypt.so"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启apache:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/usr/local/apache2/bin/apachectl restart
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>6.添加phpinfo功能，测试页面</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	添加以下内容info.php到/usr/local/apache2/htdocs/下,测试php模块是否加载.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi &nbsp;/usr/local/apache2/htdocs/info.php
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&lt;?php
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	echo phpinfo();
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	?&gt;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	检查80端口是否打开
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# lsof -i:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	浏览器输入 <a href="http://localhost/info.php" rel="nofollow">http://localhost/info.php</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	显示有如下测试页面内容, mcrypt.so模块即在<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>下加载成功
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p><a href="http://www.showerlee.com/wp-content/uploads/2013/08/210.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/210.png" alt="2" width="585" height="224" class="alignnone size-full wp-image-584" /></a></p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/583">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="PHP添加mcrypt扩展模块" href="http://www.showerlee.com/archives/583">http://www.showerlee.com/archives/583</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/583/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
