<?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/tag/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.启用PHP连接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>
	方法二:编译PHP的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>模块即在PHP下加载成功
</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模块到PHP.</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>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>
		<item>
		<title>LAMP 全功能编译安装 for CentOS6.3笔记</title>
		<link>http://www.showerlee.com/archives/6</link>
		<comments>http://www.showerlee.com/archives/6#comments</comments>
		<pubDate>Fri, 16 Aug 2013 07:43:08 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=6</guid>
		<description><![CDATA[最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENT [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>
	最近抽空在虚拟机上测试成功了<a href="http://www.showerlee.com/archives/tag/lamp" title="查看LAMP中的全部文章" class="tag_link">LAMP</a>各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS6.3(安装minimal desktop和默认开发包)下测试安装成功,并做了相应优化配置,如有遗漏,还请留言指教.
</p>
<p>
	&nbsp;
</p>
<p>
	LINUX操作系统:centOS6.3 64bit(安装了系统默认开发包)
</p>
<p>
	<a href="http://www.showerlee.com/archives/tag/apache" title="查看APACHE中的全部文章" class="tag_link">APACHE</a>:httpd-2.4.4
</p>
<p>
	<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>:mysql-5.6.10
</p>
<p>
	<a href="http://www.showerlee.com/archives/tag/php" title="查看PHP中的全部文章" class="tag_link">PHP</a>:php-5.4.13
</p>
<p>
	注：推荐安装centos6.3系统时，在系统安装向导中。将默认开发包勾上，避免后期编译报错
</p>
<p>
	&nbsp;
</p>
<p>
	一.安装开发包(使用默认CENTOS更新源):
</p>
<p>
	# yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*
</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>
	三.安装mysql数据库
</p>
<p>
	1.下载编译包：
</p>
<p>
	# wget <a href="http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/" rel="nofollow">http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/</a>
</p>
<p>
	&nbsp;
</p>
<p>
	2.安装前的初始配置工作：
</p>
<p>
	# useradd -d /usr/local/mysql/ mysql &nbsp; #创建一个Mysql用户，指定家目录到/use/local目录下。
</p>
<p>
	# mkdir /usr/local/mysql/data &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</p>
<p>
	# mkdir /usr/local/mysql/log &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #新建mysql下data和log子目录
</p>
<p>
	# chown -R mysql:mysql /usr/local/mysql/data/
</p>
<p>
	# chown -R mysql:mysql /usr/local/mysql/log/
</p>
<p>
	# chmod 750 /usr/local/mysql/data &nbsp; &nbsp; &nbsp;
</p>
<p>
	# chmod 750 /usr/local/mysql/log &nbsp; &nbsp; &nbsp; #修改目录的所属者以及所属组
</p>
<p>
	&nbsp;
</p>
<p>
	3.解包编译安装
</p>
<p>
	# tar -zxv -f mysql-5.6.10.tar.gz &nbsp; &nbsp; &nbsp;
</p>
<p>
	# cd mysql-5.6.10 &nbsp;
</p>
<p>
	# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
</p>
<p>
	-D<a href="http://www.showerlee.com/archives/tag/mysql" title="查看MYSQL中的全部文章" class="tag_link">MYSQL</a>_UNIX_ADDR=/tmp/mysql.sock \
</p>
<p>
	-DDEFAULT_CHARSET=utf8 \
</p>
<p>
	-DDEFAULT_COLLATION=utf8_general_ci \
</p>
<p>
	-DEXTRA_CHARSETS=all \
</p>
<p>
	-DWITH_MYISAM_STORAGE_ENGINE=1 \
</p>
<p>
	-DWITH_INNOBASE_STORAGE_ENGINE=1 \
</p>
<p>
	-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
</p>
<p>
	-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
</p>
<p>
	-DWITH_MEMORY_STORAGE_ENGINE=1 \
</p>
<p>
	-DWITH_FEDERATED_STORAGE_ENGINE=1 \
</p>
<p>
	-DWITH_READLINE=1 \
</p>
<p>
	-DENABLED_LOCAL_INFILE=1 \
</p>
<p>
	-DMYSQL_DATADIR=/usr/local/mysql/data \
</p>
<p>
	-DMYSQL_USER=mysql \
</p>
<p>
	-DMYSQL_TCP_PORT=3306 \
</p>
<p>
	-DSYSCONFDIR=/etc \
</p>
<p>
	-DWITH_SSL=yes
</p>
<p>
	&nbsp;
</p>
<p>
	# &nbsp;make &amp; make install
</p>
<p>
	&nbsp;
</p>
<p>
	编译注解：
</p>
<p>
	-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #安装目录
</p>
<p>
	-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#Unix socket文件路径,自定义此路径防报错
</p>
<p>
	-DDEFAULT_CHARSET=utf8 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#默认字符
</p>
<p>
	-DDEFAULT_COLLATION=utf8_general_ci \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#校验字符
</p>
<p>
	-DEXTRA_CHARSETS=all \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #安装所有扩展字符集
</p>
<p>
	-DWITH_MYISAM_STORAGE_ENGINE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #安装myisam存储引擎
</p>
<p>
	-DWITH_INNOBASE_STORAGE_ENGINE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#安装innodb存储引擎
</p>
<p>
	-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #安装archive存储引擎
</p>
<p>
	-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #安装blackhole存储引擎
</p>
<p>
	-DWITH_MEMORY_STORAGE_ENGINE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#安装memory存储引擎
</p>
<p>
	-DWITH_FEDERATED_STORAGE_ENGINE=1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #安装frderated存储引擎
</p>
<p>
	-DWITH_READLINE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#快捷键功能
</p>
<p>
	-DENABLED_LOCAL_INFILE=1 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#允许从本地导入数据
</p>
<p>
	-DMYSQL_DATADIR=/usr/local/mysql/data \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#数据库存放目录
</p>
<p>
	-DMYSQL_USER=mysql \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #数据库属主
</p>
<p>
	-DMYSQL_TCP_PORT=3306 \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #数据库端口
</p>
<p>
	-DSYSCONFDIR=/etc \ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #MySQL配辑文件
</p>
<p>
	-DWITH_SSL=yes &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #数据库SSL
</p>
<p>
	&nbsp;
</p>
<p>
	4.编写mysql配置项：
</p>
<p>
	# &nbsp;vi /etc/my.cnf
</p>
<p>
	--------------------------------------------
</p>
<p>
	[mysql]</p>
<p># CLIENT #<br />
port &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 3306<br />
socket &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = /tmp/mysql.sock</p>
<p>[mysqld]</p>
<p># GENERAL #<br />
user &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = mysql<br />
default_storage_engine &nbsp; &nbsp; &nbsp; &nbsp; = InnoDB<br />
socket &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = /tmp/mysql.sock<br />
pid_file &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = /var/run/mysqld/mysqld.pid</p>
<p># MyISAM #<br />
key_buffer_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 32M<br />
myisam_recover &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = FORCE,BACKUP</p>
<p># SAFETY #<br />
max_allowed_packet &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 16M<br />
max_connect_errors &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 1000000<br />
skip_name_resolve<br />
sql_mode &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY<br />
sysdate_is_now &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 1<br />
innodb &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = FORCE<br />
innodb_strict_mode &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 1</p>
<p># DATA STORAGE #<br />
datadir &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= /usr/local/mysql/data</p>
<p># BINARY LOGGING #<br />
log-bin &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=/usr/local/mysql/log/bin.log<br />
expire_logs_days &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 30<br />
sync_binlog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 1</p>
<p># CACHES AND LIMITS #<br />
key_buffer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 64M<br />
max_allowed_packet &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 16M<br />
sort_buffer_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 16M<br />
read_buffer_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 4M<br />
read_rnd_buffer_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 16M<br />
thread_stack &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 8M<br />
tmp_table_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 8M<br />
max_heap_table_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 2M<br />
query_cache_type &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 1<br />
query_cache_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 32M<br />
query_cache_limit &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 2M<br />
max_connections &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 2048<br />
thread_cache_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 512<br />
open_files_limit &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 65535<br />
table_definition_cache &nbsp; &nbsp; &nbsp; &nbsp; = 400<br />
table_open_cache &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 2048</p>
<p># INNODB #<br />
innodb_log_files_in_group &nbsp; &nbsp; &nbsp;= 2<br />
innodb_log_file_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 16M<br />
innodb_flush_log_at_trx_commit = 1<br />
innodb_file_per_table &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 1<br />
# 128M这个值视服务器内存而定<br />
innodb_buffer_pool_size &nbsp; &nbsp; &nbsp; &nbsp;= 128M
</p>
<p>
	# 移除多余缓存<br />
performance_schema = 0</p>
<p># LOGGING #<br />
log-error=/usr/local/mysql/log/error.log<br />
general_log=1<br />
general_log_file=/usr/local/mysql/log/mysql.log<br />
slow_query_log=1<br />
slow_query_log_file=/usr/local/mysql/log/slowquery.log<br />
log-output=FILE</p>
<p># 避免MySQL的外部锁定，减少出错几率增强稳定性 #<br />
skip-external-locking</p>
<p># 禁止sql读取本地文件 #<br />
local-infile=0
</p>
<p>
	----------------------------------------
</p>
<p>
	&nbsp;
</p>
<p>
	5.将mysql的库文件路径加入系统的库文件搜索路径中
</p>
<p>
	方法一：直接做软链接
</p>
<p>
	# ln -s /usr/local/mysql/lib/ /usr/lib/mysql
</p>
<p>
	方法二：利用ldconfig导入系统库（推荐）
</p>
<p>
	# echo "/usr/local/mysql/lib" &gt;&gt; /etc/ld.so.conf.d/mysql.conf
</p>
<p>
	# ldconfig
</p>
<p>
	&nbsp;
</p>
<p>
	6.输出mysql的头文件到系统头文件
</p>
<p>
	# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
</p>
<p>
	&nbsp;
</p>
<p>
	7.进入安装路径,初始化配置脚本
</p>
<p>
	# cd /usr/local/mysql
</p>
<p>
	# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
</p>
<p>
	&nbsp;
</p>
<p>
	8.复制mysql启动脚本到系统服务目录
</p>
<p>
	# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
</p>
<p>
	&nbsp;
</p>
<p>
	9.系统启动项相关配置
</p>
<p>
	# chkconfig --add mysqld &nbsp;#添加开机启动服务
</p>
<p>
	# chkconfig --level 35 mysqld on &nbsp;#设置mysql启动
</p>
<p>
	&nbsp;
</p>
<p>
	10.启动mysql
</p>
<p>
	# service mysqld start &nbsp;
</p>
<p>
	注：编译时若socket路径自定义为/var/lib/mysql/mysql.sock，这里需要创建一个mysql接口的软链接，防止登陆后台或安装论坛报错.
</p>
<p>
	# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock &nbsp;
</p>
<p>
	&nbsp;
</p>
<p>
	11. 设置初始账户,并登陆后台:
</p>
<p>
	# /usr/local/mysql/bin/mysqladmin -u root password 123456 &nbsp; #设置密码
</p>
<p>
	# /usr/local/mysql/bin/mysql -u root -p123456 &nbsp; &nbsp; #连接数据库
</p>
<p>
	-----------------------------------
</p>
<p>
	mysql&gt; create database phpwind; &nbsp; &nbsp; &nbsp;#创建数据库
</p>
<p>
	mysql&gt; grant all privileges on *.* to root@'%' identified by '123456' with grant option; &nbsp;#给root用户非本地链接所有权限,并改密码和赋予其给其他人下发权限.
</p>
<p>
	mysql&gt; show variables; #查看mysql设置.
</p>
<p>
	-----------------------------------
</p>
<p>
	注:从启MYSQL也可使用以下命令开启此服务
</p>
<p>
	# /usr/local/mysql/bin/safe_mysqld
</p>
<p>
	如果不设置chkconfig启动项,也可在/etc/rc.local下添加如下命令，使mysql服务利用系统启动脚本运行.
</p>
<p>
	# echo "/usr/local/mysql/bin/safe_mysqld --user=mysql &amp;" &gt;&gt;&nbsp;/etc/rc.local
</p>
<p>
	&nbsp;
</p>
<p>
	
</p>
<p>
	12 添加mysql命令集到系统全局变量
</p>
<p>
	注:如果系统之前未安装mysql客户端,可以将编译好的mysql命令集导入系统全局变量
</p>
<p>
	以后就可以直接使用mysql命令集,而不需要使用绝对路径访问.
</p>
<p>
	# echo "PATH=$PATH:/usr/local/mysql/bin;export PATH" &gt;&gt; /etc/profile
</p>
<p>
	# source /etc/profile
</p>
<p>
	
</p>
<p>
	&nbsp;
</p>
<p>
	四.安装apache网站服务
</p>
<p>
	&nbsp;
</p>
<p>
	1.pcre依赖包安装
</p>
<p>
	# wget <a href="http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download" rel="nofollow">http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download</a>
</p>
<p>
	# tar -xzvf pcre-8.32.tar.gz
</p>
<p>
	# cd pcre-8.32
</p>
<p>
	# ./configure --prefix=/usr/local/pcre
</p>
<p>
	# make &amp;&amp; make install
</p>
<p>
	&nbsp;
</p>
<p>
	2.下载apache
</p>
<p>
	其实这里在apache官网找不到httpd-2.4.4-deps.tar.bz2的编译包,不知道官方怎么想的,最后研究了下最近的2.43deps版本,解压该编译包,发现里面放的其实就是apr和apr-util两个apache的依赖包,现在的方法是直接把2.43的包解压到apache安装根目录即可连同apache编译安装,最后能正常安装使用,算是一个无奈之举,但安装起来较网上单独编译安装依赖包要简便一些.
</p>
<p>
	# wget <a href="http://archive.apache.org/dist/httpd/httpd-2.4.3-deps.tar.bz2" rel="nofollow">http://archive.apache.org/dist/httpd/httpd-2.4.3-deps.tar.bz2</a>
</p>
<p>
	# wget <a href="http://archive.apache.org/dist/httpd/httpd-2.4.4.tar.bz2" rel="nofollow">http://archive.apache.org/dist/httpd/httpd-2.4.4.tar.bz2</a>
</p>
<p>
	&nbsp;
</p>
<p>
	3.解包
</p>
<p>
	注:httpd-2.4.3-deps.tar.bz2已集成APR，安装apache前检查pcre是否安装成功.
</p>
<p>
	# tar jxvf httpd-2.4.4.tar.bz2
</p>
<p>
	# tar jxvf httpd-2.4.3-deps.tar.bz2
</p>
<p>
	# cp -rf httpd-2.4.3/* httpd-2.4.4
</p>
<p>
	# cd httpd-2.4.4
</p>
<p>
	&nbsp;
</p>
<p>
	4.伪装Apache版本信息
</p>
<p>
	---------------
</p>
<p>
	修改 include/ap_release.h文件 "Apache" 参数为 "Microsoft-IIS/5.0"
</p>
<p>
	修改 os/unix/os.h文件 "Unix" 参数为 "Win32"
</p>
<p>
	# cd httpd-2.4.4
</p>
<p>
	# vi include/ap_release.h
</p>
<p>
	#define AP_SERVER_BASEPRODUCT "Apache"
</p>
<p>
	改为
</p>
<p>
	#define AP_SERVER_BASEPRODUCT "Microsoft-IIS/5.0"
</p>
<p>
	&nbsp;
</p>
<p>
	# vi os/unix/os.h
</p>
<p>
	#define PLATFORM "Unix"
</p>
<p>
	改成
</p>
<p>
	#define PLATFORM "Win32"
</p>
<p>
	----------------
</p>
<p>
	&nbsp;
</p>
<p>
	--------------随 &nbsp;笔-----------------
</p>
<p>
	这里走了一些弯路,网上很多资料上写到apache2.4版本打开默认多线程模式时,都是在修改conf/extra/httpd-mpm.conf下prefork MPM处参数,但当我实际操作的时候发现,修改后系统的apache进程并未增加,但在2.2下修改此参数则没有任何问题,最近研究worker模式下才发现到,实际你启用worker模式后,执行此命令
</p>
<p>
	# /usr/local/apache2/bin/apachectl -l
</p>
<p>
	返回的结果如下:
</p>
<p>
	core.c
</p>
<p>
	&nbsp;mod_so.c
</p>
<p>
	&nbsp;http_core.c
</p>
<p>
	worker.c
</p>
<p>
	看到worker.c,这里就想到是不是使用默认的线程模式显示的*.c的这个*就是apache根目录conf/extra/httpd-mpm.conf下对应的参数,想到这个疑问然后就使用默认线程模式从新编译了下apache,执行命令
</p>
<p>
	# /usr/local/apache2/bin/apachectl -l
</p>
<p>
	返回:
</p>
<p>
	&nbsp;core.c
</p>
<p>
	&nbsp;mod_so.c
</p>
<p>
	&nbsp;http_core.c
</p>
<p>
	event.c
</p>
<p>
	OK,到conf/extra/httpd-mpm.conf下,查看有如下几行参数
</p>
<p>
	&lt;IfModule mpm_event_module&gt;
</p>
<p>
	&nbsp; &nbsp;StartServers &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3
</p>
<p>
	&nbsp; &nbsp;MinSpareThreads &nbsp; &nbsp; &nbsp; &nbsp; 75
</p>
<p>
	&nbsp; &nbsp;MaxSpareThreads &nbsp; &nbsp; &nbsp; &nbsp;250
</p>
<p>
	&nbsp; &nbsp;ThreadsPerChild &nbsp; &nbsp; &nbsp; &nbsp; 25
</p>
<p>
	&nbsp; &nbsp;MaxRequestWorkers &nbsp; &nbsp; &nbsp;400
</p>
<p>
	&nbsp; &nbsp;MaxConnectionsPerChild &nbsp; 0
</p>
<p>
	&lt;/IfModule&gt;
</p>
<p>
	将StartServers 参数修改成10
</p>
<p>
	# lsof -i:80
</p>
<p>
	[root@lamp apache2]# lsof -i:80
</p>
<p>
	COMMAND &nbsp; PID &nbsp; USER &nbsp; FD &nbsp; TYPE DEVICE SIZE/OFF NODE NAME
</p>
<p>
	httpd &nbsp; &nbsp;1302 &nbsp; root &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21852 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21854 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21855 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21856 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21857 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21858 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21859 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21860 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21936 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	httpd &nbsp; 21937 daemon &nbsp; &nbsp;4u &nbsp;IPv6 106523 &nbsp; &nbsp; &nbsp;0t0 &nbsp;TCP *:http (LISTEN)
</p>
<p>
	问题解决,看来2.4版本的apache默认线程是需要修改event参数,这里请注意.
</p>
<p>
	-----------------------------------------------------
</p>
<p>
	&nbsp;
</p>
<p>
	5.编译安装：
</p>
<p>
	编译默认event MPM模式(推荐)
</p>
<p>
	# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-pcre=/usr/local/pcre/bin/pcre-config
</p>
<p>
	&nbsp;
</p>
<p>
	编译worker MPM模式(可选,能正常开启服务,但本人未做过相关网站测试,不推荐生产环境下使用)
</p>
<p>
	# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite &nbsp;-with-mpm=worker&nbsp;--with-pcre=/usr/local/pcre/bin/pcre-config
</p>
<p>
	&nbsp;
</p>
<p>
	# make &amp;&amp; make install
</p>
<p>
	&nbsp;
</p>
<p>
	# &nbsp;防止apache启动报错.
</p>
<p>
	# vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	------------------------
</p>
<p>
	ServerName localhost:80
</p>
<p>
	------------------------
</p>
<p>
	&nbsp;
</p>
<p>
	6.启动apache
</p>
<p>
	# /usr/local/apache2/bin/apachectl start &nbsp; &nbsp;
</p>
<p>
	设置开机启动
</p>
<p>
	# echo "/usr/local/apache2/bin/apachectl start" &gt;&gt; /etc/rc.local
</p>
<p>
	&nbsp;
</p>
<p>
	7.配置apache:
</p>
<p>
	1).禁止地址目录访问和索引:
</p>
<p>
	#vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	搜索 &nbsp;Options Indexes FollowSymLinks
</p>
<p>
	将其前面加#注释
</p>
<p>
	-----------------
</p>
<p>
	# Options Indexes FollowSymLinks
</p>
<p>
	-----------------
</p>
<p>
	&nbsp;
</p>
<p>
	2).隐藏版本号:
</p>
<p>
	#vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	加入以下两行:
</p>
<p>
	------------------
</p>
<p>
	ServerTokens ProductOnly
</p>
<p>
	ServerSignature Off
</p>
<p>
	------------------
</p>
<p>
	&nbsp;
</p>
<p>
	3).优化线程数:
</p>
<p>
	如果apche访问量过大，将会导致页面打开迟缓，下载速度也降低，如果由于经费和环境问题，可以通过对Apache2增加模块MPM来进行优化, 这里我选择线程型MPM加以优化：
</p>
<p>
	注:此方法仅对编译安装apache有效:
</p>
<p>
	a.开启mpm：
</p>
<p>
	#vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	找到以下这行内容,去掉注释.
</p>
<p>
	Include conf/extra/httpd-mpm.conf （如果没有此段代码可以新加。没有此文件httpd-mpm.conf可以新建，也可以直接加代码到）
</p>
<p>
	b.优化配置：
</p>
<p>
	#vi &nbsp;/usr/local/apache2/conf/extra/httpd-mpm.conf
</p>
<p>
	找到如下代码,修改成以下参数即可.
</p>
<p>
	# event MPM配置:
</p>
<p>
	------------------------
</p>
<p>
	&lt;IfModule mpm_event_module&gt;
</p>
<p>
	&nbsp; StartServers&nbsp;5
</p>
<p>
	&nbsp; ServerLimit&nbsp;5000
</p>
<p>
	&nbsp; MaxClients&nbsp;4000
</p>
<p>
	&nbsp; MinSpareThreads&nbsp;100
</p>
<p>
	&nbsp; MaxSpareThreads&nbsp;400
</p>
<p>
	&nbsp; ThreadLimit&nbsp;200
</p>
<p>
	&nbsp; ThreadsPerChild&nbsp;100
</p>
<p>
	&nbsp; MaxRequestWorkers &nbsp; &nbsp;400
</p>
<p>
	&nbsp; MaxRequestsPerChild &nbsp;100
</p>
<p>
	&lt;/IfModule&gt;
</p>
<p>
	------------------------
</p>
<p>
	&nbsp;
</p>
<p>
	&nbsp;
</p>
<p>
	# worker MPM配置:
</p>
<p>
	-----------------------
</p>
<p>
	&lt;IfModule mpm_event_module&gt;
</p>
<p>
	&nbsp; StartServers&nbsp;5
</p>
<p>
	&nbsp; ServerLimit&nbsp;5000
</p>
<p>
	&nbsp; MaxClients&nbsp;4000
</p>
<p>
	&nbsp; MinSpareThreads&nbsp;100
</p>
<p>
	&nbsp; MaxSpareThreads&nbsp;400
</p>
<p>
	&nbsp; ThreadLimit&nbsp;200
</p>
<p>
	&nbsp; ThreadsPerChild&nbsp;100
</p>
<p>
	&nbsp; MaxRequestWorkers &nbsp; &nbsp;400
</p>
<p>
	&nbsp; MaxRequestsPerChild &nbsp;100
</p>
<p>
	&lt;/IfModule&gt;
</p>
<p>
	-----------------------
</p>
<p>
	------------------------------------------------------
</p>
<p>
	其中最重要的参数是 ThreadsPerChild和 MaxClients：
</p>
<p>
	&nbsp;
</p>
<p>
	#ThreadsPerChild
</p>
<p>
	每个子进程建立的线程数，子进程在启动时建立这些线程后就不再建立新的线程了
</p>
<p>
	#MaxClients
</p>
<p>
	允许同时伺服的最大接入请求数量（在worker下就是最大线程数量）
</p>
<p>
	#ServerLimit：
</p>
<p>
	对最大子进程数的上限，该值必须大于等于MaxClients/ThreadsPerChild
</p>
<p>
	#ThreadLimit：
</p>
<p>
	对ThreadsPerChild的上限，该值必须大于等于 ThreadsPerChild，如果将ThreadLimit设置成一个高出实际需要很多的ThreadsPerChild值，将会有过多的共享内存被 分配，应当和ThreadsPerChild可能达到的最大值保持一致.
</p>
<p>
	#StartServers：
</p>
<p>
	服务器启动时的服务进程数目，该值肯定小于等于ServerLimit
</p>
<p>
	#MinSpareThreads和MaxSpareThreads：
</p>
<p>
	通过新建或结束子进程的方式，将空闲线程的总数维持在这个范围内
</p>
<p>
	#MaxRequestsPerChild：
</p>
<p>
	用于控制服务器建立新进程和结束旧进程的频 率，其实是一个为了防止内存溢出的参数，每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后，子进程将 会结束。对于KeepAlive链接，只有第一个请求会被计数。事实上，它改变了每个子进程限制最大链接数量的行为。
</p>
<p>
	&nbsp;
</p>
<p>
	可以通过检查HTTPServer/logs/error_log日志，判断MaxClients是否需要增加，如果有报错，就说明apache自上次重启至今，曾经发生过达到MaxClients的情况：
</p>
<p>
	--------------------------------------------------
</p>
<p>
	4).关闭TRACE Method.
</p>
<p>
	#vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	-----------------------
</p>
<p>
	TraceEnable off
</p>
<p>
	-----------------------
</p>
<p>
	&nbsp;
</p>
<p>
	5).实现service和chkconfig系统控制httpd开启关闭
</p>
<p>
	&nbsp;
</p>
<p>
	# vi /etc/ld.so.conf.d/apache2.4.4.conf
</p>
<p>
	-----------
</p>
<p>
	/usr/local/apache2/lib
</p>
<p>
	------------
</p>
<p>
	# ldconfig
</p>
<p>
	# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
</p>
<p>
	# vi /etc/init.d/httpd
</p>
<p>
	在首行#!/bin/sh 下面添加：
</p>
<p>
	----------------
</p>
<p>
	#chkconfig:345 61 61
</p>
<p>
	#description:Apache httpd
</p>
<p>
	--------------- &nbsp;
</p>
<p>
	# chkconfig --add httpd
</p>
<p>
	# chkconfig httpd on
</p>
<p>
	# service httpd restart
</p>
<p>
	&nbsp;
</p>
<p>
	6).修改log日志格式实现每天保存.
</p>
<p>
	#vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	找到CustomLog和ErrorLog行,注释掉修改为以下参数
</p>
<p>
	--------------------------------
</p>
<p>
	CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d.access_log 86400 480" combined
</p>
<p>
	ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d.error_log 86400 480"
</p>
<p>
	---------------------------------
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	7).修改apache权限:
</p>
<p>
	# vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	------------------
</p>
<p>
	User www
</p>
<p>
	Group www
</p>
<p>
	------------------
</p>
<p>
	注:这里其实就相当于用户执行WEB浏览会触发httpd进程，该进程由于属主属组都为www,所以对属主属组为www的目录都有读写权限，当然前提你的目录u=r+w+x,这样就保证开发人员在执行PHP语句时能对项目目录下的文件具有读写权限，避免运维人员手动对需要读写的子目录再设置777权限，保证项目顺利实施.
</p>
<p>&nbsp;</p>
<p>
	
</p>
<p>
	
</p>
<p>
	五.安装php模块
</p>
<p>
	1.处理依赖包
</p>
<p>
	暂无..
</p>
<p>
	2.安装PHP
</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>
	此处编译安装了我们项目经常用到的PHP模块,如有其它需要可以自定义添加.
</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&nbsp;--with-pdo-mysql=/usr/local/mysql&nbsp;LIBS="-liconv"
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	#注:其中最后一个参数--enable-maintainer-zts在安装PHP5.4最新版本时必须添加(5.3貌似不需要),表示打开PHP进程安全Thread Safe,默认不添加为NON&nbsp;Thread Safe,开启apache服务会报错.....(此处被坑了一下午...#$%^&amp;*)
</p>
<p>
	# make
</p>
<p>
	# make install
</p>
<p>
	&nbsp;
</p>
<p>
	安装结束后:
</p>
<p>
	添加php配置文件,需要CP一个源码里面的php.ini-development或php.ini-production &nbsp;到/usr/local/php/lib为php.ini
</p>
<p>
	#cd ~/php-5.4.13
</p>
<p>
	#cp php.ini-development /usr/local/php5/lib/php.ini
</p>
<p>
	&nbsp;
</p>
<p>
	3.配置<a href="http://www.showerlee.com/archives/tag/apache" title="查看APACHE中的全部文章" class="tag_link">APACHE</a>的PHP模块:
</p>
<p>
	编辑Apache配置文件，
</p>
<p>
	# vi /usr/local/apache2/conf/httpd.conf
</p>
<p>
	并添加以下一行：
</p>
<p>
	--------------------------------------------
</p>
<p>
	AddType application/x-httpd-php .php
</p>
<p>
	--------------------------------------------
</p>
<p>
	并在 DirectoryIndex 一行后面加上 index.php
</p>
<p>
	如果PHP无法加载，检查httpd.conf配置下是否有该行配置(默认安装PHP后会自动将该行写入)
</p>
<p>
	LoadModule php5_module modules/libphp5.so
</p>
<p>
	&nbsp;
</p>
<p>
	4.测试PHP加载:
</p>
<p>
	注: 编译安装的apache 网页存放路径跟rpm包安装的不一样。编译安装的路径在/usr/local/apache2/htdocs/
</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>
	显示有如下测试页面内容,PHP模块即在<a href="http://www.showerlee.com/archives/tag/apache" title="查看APACHE中的全部文章" class="tag_link">APACHE</a>下加载成功
</p>
<p>
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/image001.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" alt="image001" height="564" src="http://www.showerlee.com/wp-content/uploads/2013/08/image001.png" width="609" /></a>
</p>
<p>
	&nbsp;
</p>
<p>
	&nbsp;<a href="http://www.showerlee.com/wp-content/uploads/2013/08/image003.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" alt="image003" height="527" src="http://www.showerlee.com/wp-content/uploads/2013/08/image003.png" width="672" /></a>&nbsp;&nbsp;<a href="http://www.showerlee.com/wp-content/uploads/2013/08/image002.png"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" alt="image002" height="224" src="http://www.showerlee.com/wp-content/uploads/2013/08/image002.png" width="658" /></a>
</p>
<p>
	&nbsp;&nbsp;
</p>
<p>
	测试本地mysql是否正常连接
</p>
<p>
	# vi &nbsp;/usr/local/apache2/htdocs/index.php
</p>
<p>
	---------------------
</p>
<p>
	&lt;html&gt;&lt;body&gt;&lt;h1&gt;The page to test mysql local connection.&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;
</p>
<p>
	&lt;?php
</p>
<p>
	&nbsp;$conn=mysql_connect('localhost','root','123456');
</p>
<p>
	&nbsp;if ($conn)
</p>
<p>
	&nbsp; &nbsp;echo "&lt;h2&gt;Success...&lt;/h2&gt;";
</p>
<p>
	&nbsp;else
</p>
<p>
	&nbsp; &nbsp;echo "&lt;h2&gt;Failure...&lt;/h2&gt;";
</p>
<p>
	&nbsp;
</p>
<p>
	?&gt;
</p>
<p>
	---------------------
</p>
<p>
	浏览器输入 <a href="http://localhost" rel="nofollow">http://localhost</a>
</p>
<p>
	显示如下页面,表示连接成功.
</p>
<p>
	&nbsp;
</p>
<p>
	&nbsp;<a href="http://www.showerlee.com/wp-content/uploads/2013/08/image004.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" alt="image004" height="140" src="http://www.showerlee.com/wp-content/uploads/2013/08/image004.jpg" width="650" /></a>
</p>
<p>
	&nbsp;
</p>
<p>
	5.PHP配置项: (默认路径/usr/local/php5/lib/php.ini)
</p>
<p>
	# vi /usr/local/php5/lib/php.ini
</p>
<p>
	-------------------------
</p>
<p>
	# 隐藏PHP版本信息：
</p>
<p>
	expose_php = Off
</p>
<p>
	# 关闭警告及错误信息,爆路径:
</p>
<p>
	display_errors = Off
</p>
<p>
	# 调整时区,防止phpinfo()函数报错.
</p>
<p>
	date.timezone =PRC
</p>
<p>
	# 开启php错误日志并设置路径.
</p>
<p>
	log_errors = On
</p>
<p>
	error_log = /usr/local/apache2/logs/php_error.log
</p>
<p>
	&nbsp;
</p>
<p>
	--------------大功告成O(∩_∩)O~-----------------
</p>
<p>
	&nbsp;
</p>
<p>
	觉得不错,请大家回帖支持下....
</p>
<p>
	&nbsp;</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/6">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="LAMP 全功能编译安装 for CentOS6.3笔记" href="http://www.showerlee.com/archives/6">http://www.showerlee.com/archives/6</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/6/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
