<?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>Boulevard Of Broken Dreams &#187; phpmyadmin</title>
	<atom:link href="http://www.ray77.com/tag/phpmyadmin/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ray77.com</link>
	<description>Walking alone ... Waiting alone ...</description>
	<lastBuildDate>Mon, 10 May 2010 14:24:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>CentOS 5.0 编译安装 Apache+PHP+Mysql+Zend Optimizer+Eaccelerator+phpMyAdmin</title>
		<link>http://www.ray77.com/centos-apache-php-mysql.html</link>
		<comments>http://www.ray77.com/centos-apache-php-mysql.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 12:50:33 +0000</pubDate>
		<dc:creator>Rock</dc:creator>
				<category><![CDATA[Develop]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.ray77.com/centos-apache-php-mysql.html</guid>
		<description><![CDATA[CentOS Linux
　　CentOS是Community ENTerprise Operating System的简称，我们有很多人叫它社区企业操作系统，不管你怎么叫它，它都是Linux操作系统的一个发行版本。
　　CentOS并不是全新的Linux发行版，倘若一说到Red Hat这个大名，大家似乎都听过。在Red Hat家族中有企业版的产品，它是Red Hat Enterprise Linux（以下称之为RHEL），CentOS正是这个RHEL的克隆版本。RHEL是很多企业采用的Linux发行版本，需要向Red Hat付费才可以使用，并能得到付过费用的服务和技术支持和版本升级。CentOS可以像RHEL一样的构筑Linux系统环境，但不需要向Red Hat付任何的产品和服务费用，同时也得不到任何有偿技术支持和升级服务。

　　Red Hat公司的产品中，有Red Hat Linux（如Redhat8,9）和针对企业发行的版本Red Hat Enterprise Linux，都能够通过网络FTP免费的获得并使用，但是在2003年的时候，Red Hat Linux停止了发布，它的项目由Fedora Project这个项目所取代，并以Fedora Core这个名字发行并提供给普通用户免费使用。Fedora Core这个Linux发行版更新很快，大约半年左右就有新的版本发布。目前的版本是Fedora Core 6，这个Fedora Core试验的韵味比较浓厚，每次发行都有新的功能被加入到其中，得到的成功结果将被采用道RHEL的发布中。虽说这样，频繁的被改进更新的不安定产品对于企业来说并不是最好的选择，大多数企业还是会选择有偿的RHEL产品（这里面有很深的含义，比如说企业用Linux赚钱，赚到的钱回报给企业，资金在企业间流通，回报社会，提高服务水准等）。
　　在构成RHEL的大多数软件包中，都是基于GPL协议发布的，也就是我们常说的开源软件。正因为是这样，Red Hat公司也遵循这个协议，将构成RHEL的软件包公开发布，只要是遵循GPL协议，任何人都可以在原有的软件构成的基础上再开发和发布。CentOS就是这样在RHEL发布的基础上将RHEL的构成克隆再现的一个Linux发行版本。RHEL的克隆版本不只CentOS一个，还有White Box Enterprise Linux和TAO Linux 和Scientific Linux（其他的这些都没听说过，是吧？）。
　　虽然说是RHEL的克隆，但并不是一模一样，所说的克隆是具有100%的互换性（真的么？）。但并不保障对应RHEL的软件在CentOS上面也能够100%的正常工作。并且安全漏洞的修正和软件包的升级对应RHEL的有偿服务和技术支持来说，数日数星期数个月的延迟情况也有（其实也没看出来多慢）。
　　CentOS的特点
　　在CentOS的全称里面我们可以看到Enterprise OS，也就是说企业系统，这个企业系统并不是企业级别的系统，而是它可以提供企业级应用所需要的要素。
　　例如：
　　稳定的环境
　　长期的升级更新支持
　　保守性强
　　大规模的系统也能够发挥很好的性能
　　CentOS满足以上的要素，满足上面要素的发行版还有Fedora 。Fedora和CentOS非常的相像，但是对CentOS来说，Fedora提供更多的新的功能和软件，发布更新快等特点，这样在稳定性和管理方面就增加了很多工作。企业所需要的系统环境应该是，高效稳定的系统环境，一次构建后能够长期使用的系统环境，所以Fedora那样的频繁更新发布的系统环境并不对应企业的应用。另一方面，CentOS却能够满足以上企业的需要，在众多的RHEL的克隆版本中，CentOS是很出众很优秀的。
　　官方网站：http://www.centos.org
　　中文社区：http://www.centospub.com/bbs
1、下载centos 5
我是下载的DVD版本，大家也可以下载服务器CD安装版本，其实都差不多。大家可以到这儿下载，速度很快的。
http://ftp.iasi.roedu.net/mirrors/ce&#8230;86-bin-DVD.iso
当然也可以在windows下用BT或迅雷下载，速度也很不错的。
下载后当然就刻录成光盘。我建议你刻录DVD啦，如果是菜鸟，也可以在图形界面进行学习，不会这么抓不住头脑。
2、（1）安装CentOS 5
作为服务器，不安装不需要的组件，所以在选择组件的时候，除了选择FTP SERVER外取消所有组件的选择。也不要选web服务器。因为我们后面要手动编译安装。
系统约定RPM包和源码包存放位置
RPM包和源码包存放位置 /usr/local/src
源码包编译安装位置(prefix) /usr/local/xxx
脚本以及维护程序存放位置 /usr/local/sbin
MySQL 数据库位置 /var/lib/mysql
Apache 网站根目录 /home/www
Apache 虚拟主机日志根目录 /data/logs/www
yum RPM包信息文件 /etc/yum.list
3、系统环境部署及调整
（1）. 检查系统是否正常
# ...]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 610px"><img style="display: block; border: 0px;" title="CentOS 5.0 编译安装 Apache+PHP+Mysql+Zend Optimizer+Eaccelerator+phpMyAdmin" src="http://www.ray77.com/wp-content/uploads/2009/02/centos.jpg" border="0" alt="centos" width="600" height="182" /><p class="wp-caption-text">CentOS Linux</p></div>
<p>　　CentOS是Community ENTerprise Operating System的简称，我们有很多人叫它社区企业操作系统，不管你怎么叫它，它都是Linux操作系统的一个发行版本。<br />
　　CentOS并不是全新的Linux发行版，倘若一说到Red Hat这个大名，大家似乎都听过。在Red Hat家族中有企业版的产品，它是Red Hat Enterprise Linux（以下称之为RHEL），CentOS正是这个RHEL的克隆版本。RHEL是很多企业采用的Linux发行版本，需要向Red Hat付费才可以使用，并能得到付过费用的服务和技术支持和版本升级。CentOS可以像RHEL一样的构筑Linux系统环境，但不需要向Red Hat付任何的产品和服务费用，同时也得不到任何有偿技术支持和升级服务。</p>
<p><span id="more-668"></span></p>
<p>　　Red Hat公司的产品中，有Red Hat Linux（如Redhat8,9）和针对企业发行的版本Red Hat Enterprise Linux，都能够通过网络FTP免费的获得并使用，但是在2003年的时候，Red Hat Linux停止了发布，它的项目由Fedora Project这个项目所取代，并以Fedora Core这个名字发行并提供给普通用户免费使用。Fedora Core这个Linux发行版更新很快，大约半年左右就有新的版本发布。目前的版本是Fedora Core 6，这个Fedora Core试验的韵味比较浓厚，每次发行都有新的功能被加入到其中，得到的成功结果将被采用道RHEL的发布中。虽说这样，频繁的被改进更新的不安定产品对于企业来说并不是最好的选择，大多数企业还是会选择有偿的RHEL产品（这里面有很深的含义，比如说企业用Linux赚钱，赚到的钱回报给企业，资金在企业间流通，回报社会，提高服务水准等）。<br />
　　在构成RHEL的大多数软件包中，都是基于GPL协议发布的，也就是我们常说的开源软件。正因为是这样，Red Hat公司也遵循这个协议，将构成RHEL的软件包公开发布，只要是遵循GPL协议，任何人都可以在原有的软件构成的基础上再开发和发布。CentOS就是这样在RHEL发布的基础上将RHEL的构成克隆再现的一个Linux发行版本。RHEL的克隆版本不只CentOS一个，还有White Box Enterprise Linux和TAO Linux 和Scientific Linux（其他的这些都没听说过，是吧？）。<br />
　　虽然说是RHEL的克隆，但并不是一模一样，所说的克隆是具有100%的互换性（真的么？）。但并不保障对应RHEL的软件在CentOS上面也能够100%的正常工作。并且安全漏洞的修正和软件包的升级对应RHEL的有偿服务和技术支持来说，数日数星期数个月的延迟情况也有（其实也没看出来多慢）。<br />
　　<strong>CentOS的特点</strong><br />
　　在CentOS的全称里面我们可以看到Enterprise OS，也就是说企业系统，这个企业系统并不是企业级别的系统，而是它可以提供企业级应用所需要的要素。<br />
　　例如：<br />
　　稳定的环境<br />
　　长期的升级更新支持<br />
　　保守性强<br />
　　大规模的系统也能够发挥很好的性能<br />
　　CentOS满足以上的要素，满足上面要素的发行版还有Fedora 。Fedora和CentOS非常的相像，但是对CentOS来说，Fedora提供更多的新的功能和软件，发布更新快等特点，这样在稳定性和管理方面就增加了很多工作。企业所需要的系统环境应该是，高效稳定的系统环境，一次构建后能够长期使用的系统环境，所以Fedora那样的频繁更新发布的系统环境并不对应企业的应用。另一方面，CentOS却能够满足以上企业的需要，在众多的RHEL的克隆版本中，CentOS是很出众很优秀的。<br />
　　官方网站：<a href="http://www.centos.org">http://www.centos.org</a><br />
　　中文社区：<a href="http://www.centospub.com/bbs">http://www.centospub.com/bbs</a></p>
<p>1、下载centos 5<br />
我是下载的DVD版本，大家也可以下载服务器CD安装版本，其实都差不多。大家可以到这儿下载，速度很快的。<br />
<a href="http://ftp.iasi.roedu.net/mirrors/ce...86-bin-DVD.iso">http://ftp.iasi.roedu.net/mirrors/ce&#8230;86-bin-DVD.iso</a></p>
<p>当然也可以在windows下用BT或迅雷下载，速度也很不错的。</p>
<p>下载后当然就刻录成光盘。我建议你刻录DVD啦，如果是菜鸟，也可以在图形界面进行学习，不会这么抓不住头脑。</p>
<p>2、（1）安装CentOS 5<br />
作为服务器，不安装不需要的组件，所以在选择组件的时候，除了选择FTP SERVER外取消所有组件的选择。也不要选web服务器。因为我们后面要手动编译安装。</p>
<p>系统约定RPM包和源码包存放位置</p>
<p>RPM包和源码包存放位置 /usr/local/src<br />
源码包编译安装位置(prefix) /usr/local/xxx<br />
脚本以及维护程序存放位置 /usr/local/sbin<br />
MySQL 数据库位置 /var/lib/mysql<br />
Apache 网站根目录 /home/www<br />
Apache 虚拟主机日志根目录 /data/logs/www<br />
yum RPM包信息文件 /etc/yum.list</p>
<p>3、系统环境部署及调整</p>
<p>（1）. 检查系统是否正常<br />
# more /var/log/messages //检查有无系统内核级错误信息<br />
# demesg //检查硬件设备是否有错误信息<br />
# ifconfig //检查网卡设置是否正确<br />
# ping www.163.com // 检查网络是否正常</p>
<p>（2）. 关闭不需要的服务<br />
# export LANG=&#8217;en_US&#8217; //设置语言<br />
# setup //选择启动的服务<br />
进入system service 选项。<br />
以space 键选定所需服务。<br />
以下仅列出需要启动的服务，未列出的服务一律关闭：<br />
crond<br />
irqbalance 仅当服务器CPU为S.M.P架构或支持双核心、HT技术时，才需开启，否则关闭。<br />
microcode_ctl<br />
network<br />
vsftpd<br />
sshd<br />
syslog</p>
<p>（3）、修改/etc/yum.repos.d/CentOS-Base.repo，将镜象站点地址改为在中国的镜象站点地址。不然我们通过yum安装软件速度会极慢。修改如下：</p>
<p># CentOS-Base.repo<br />
#<br />
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.<br />
# The mirror system uses the connecting IP address of the client and the<br />
# update status of each mirror to pick mirrors that are updated to and<br />
# geographically close to the client. You should use this for CentOS updates<br />
# unless you are manually picking other mirrors.<br />
#<br />
# If the mirrorlist= does not work for you, as a fall back you can try the<br />
# remarked out baseurl= line instead.<br />
#<br />
#</p>
<p>[base]<br />
name=CentOS-$releasever &#8211; Base<br />
baseurl=<a href="http://mirror.be10.com/centos/">http://mirror.be10.com/centos/</a>$releasever/os/$basearch/<br />
gpgcheck=1<br />
gpgkey=<a href="http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5">http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</a><br />
protect=1</p>
<p>#released updates<br />
[updates]<br />
name=CentOS-$releasever &#8211; Updates<br />
baseurl=<a href="http://mirror.be10.com/centos/">http://mirror.be10.com/centos/</a>$releasever/updates/$basearch/<br />
gpgcheck=1<br />
gpgkey=<a href="http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5">http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</a><br />
protect=1</p>
<p>#packages used/produced in the build but not released<br />
[addons]<br />
name=CentOS-$releasever &#8211; Addons<br />
baseurl=<a href="http://mirror.be10.com/centos/">http://mirror.be10.com/centos/</a>$releasever/addons/$basearch/<br />
gpgcheck=1<br />
gpgkey=<a href="http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5">http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</a><br />
protect=0</p>
<p>#additional packages that may be useful<br />
[extras]<br />
name=CentOS-$releasever &#8211; Extras<br />
baseurl=<a href="http://mirror.be10.com/centos/">http://mirror.be10.com/centos/</a>$releasever/extras/$basearch/<br />
gpgcheck=1<br />
gpgkey=<a href="http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5">http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</a><br />
protect=0</p>
<p>#additional packages that extend functionality of existing packages<br />
[centosplus]<br />
name=CentOS-$releasever &#8211; Plus<br />
baseurl=<a href="http://mirror.be10.com/centos/">http://mirror.be10.com/centos/</a>$releasever/centosplus/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
gpgkey=<a href="http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5">http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</a><br />
protect=1</p>
<p>#contrib &#8211; packages by Centos Users<br />
[contrib]<br />
name=CentOS-$releasever &#8211; Contrib<br />
baseurl=<a href="http://mirror.be10.com/centos/">http://mirror.be10.com/centos/</a>$releasever/contrib/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
protect=0<br />
gpgkey=<a href="http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5">http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5</a></p>
<p>#packages in testing<br />
[testing]<br />
name=CentOS-5 &#8211; Testing<br />
baseurl=<a href="http://mirror.be10.com/centos/5/testing/i386/">http://mirror.be10.com/centos/5/testing/i386/</a></p>
<p>gpgcheck=1<br />
enabled=0<br />
protect=0</p>
<p>保存。</p>
<p>（2）更新系统，我们使用yum,</p>
<p>然后执行：<br />
# yum upgrade<br />
建议更新所有列出的程序，rhel 5.X的稳定性还要继续努力呢。</p>
<p>（4）、定时校正服务器时间<br />
# yum install ntp<br />
# crontab -e<br />
0 23 * * * root /usr/sbin/ntpdate 210.72.145.44 &gt; /dev/null 2&gt;&amp;1</p>
<p>以上命令设置好后存盘。您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。</p>
<p>(5). 对TCP/IP网络参数进行调整，加强抗SYN Flood能力<br />
# echo &#8216;net.ipv4.tcp_syncookies = 1&#8242; &gt;&gt; /etc/sysctl.conf //将net.ipv4.tcp_syncookies = 1写入sysctl.conf 文件<br />
# sysctl -p //查看</p>
<p>（6）、FTP服务器的配置<br />
vi /etc/vsftpd/vsftpd.conf<br />
把anonymous_enable=YES注释掉不允许匿名登录。<br />
把chroot_list_enable=YES<br />
chroot_list_file=/etc/vsftpd.chroot_list<br />
前的注释去掉。<br />
把ftpd_banner=*前的注释去掉。后面改成你的欢迎信息(这样设置可以避免显示ftp服务器的版本信息)<br />
然后保存，service vsftpd start就可以了。</p>
<p>这时应当添加用户，因为root默认不能通过FTP方式登录。</p>
<p># adduser username<br />
# passwd userpassword</p>
<p>这样对于我们上传一些文件到系统中很方便。</p>
<p>4. 重新启动系统<br />
# init 6</p>
<p>5. 使用 yum 程序安装所需开发包（以下为标准的 RPM 包名称）<br />
# yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel</p>
<p>#这里我们将编译GD所必须的一些小软件比如libpng,libtiff,freetype,libjpeg,等先用RPM的方式一并安装好，避免手动编译浪费时间，同时也能避免很多错误，这几个小软件的编译很麻烦。这几个小软件编译错误了，GD当然安装不了，php5的编译当然也没戏了。所以我们抓大放小，对这些小牛鬼蛇神采取快速简洁的方式进行安装。并且对服务器的性能也不能产生什么影响。<br />
另外libxml2系统已经默认安装了，所以我们不需要手工编译了，直接安装它的开发包就行了。</p>
<p>6. 源码编译安装所需包 (Source)<br />
(1) GD2<br />
# cd /usr/local/src<br />
# wget <a href="http://www.boutell.com/gd/http/gd-2.0.34.tar.gz">http://www.boutell.com/gd/http/gd-2.0.34.tar.gz</a><br />
# tar xzvf gd-2.0.34.tar.gz<br />
# cd gd-2.0.34<br />
# CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; ./configure &#8211;prefix=/usr/local/gd2 &#8211;mandir=/usr/share/man //./configure 配置。</p>
<p># make //make 是用来编译的，它从 Makefile 中读取指令，然后编译。<br />
# make install //make install 是用来安装的，它也从 Makefile 中读取指令，安装到指定的位置。</p>
<p>(2) Apache 日志截断程序<br />
# cd /usr/local/src<br />
# wget <a href="http://cronolog.org/download/cronolog-1.6.2.tar.gz">http://cronolog.org/download/cronolog-1.6.2.tar.gz</a><br />
# tar xzvf cronolog-1.6.2.tar.gz<br />
# cd cronolog-1.6.2<br />
# ./configure &#8211;prefix=/usr/local/cronolog<br />
# make<br />
# make install</p>
<p>7、编译mysql 5.0.46<br />
mysql 5.0.46是企业版本，貌似双数版本都是企业版本了。个人觉得代码质量要比社区版本要好一些。大家可以下载，免费使用。并不需要向mysql公司交钱。</p>
<p>cd /usr/local/src<br />
# wget <a href="http://mirror.provenscaling.com/mysq...-5.0.46.tar.gz">http://mirror.provenscaling.com/mysq&#8230;-5.0.46.tar.gz</a><br />
# tar xzvf mysql-5.0.46.tar.gz<br />
# cd mysql-5.0.46</p>
<p>修改mysql 客户端最大连接数， 默认的只有100,远远达不到我们的要求。</p>
<p># vi sql/mysqld.cc</p>
<p>搜索找到下面一行：<br />
{&#8220;max_connections&#8221;, OPT_MAX_CONNECTIONS,<br />
&#8220;The number of simultaneous clients allowed.&#8221;, (gptr*) &amp;max_connections,<br />
(gptr*) &amp;max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,<br />
0},</p>
<p>将其中的100改为1500, 当然小点也可以，根据你的需要来，不建议改的太大。</p>
<p>{&#8220;max_connections&#8221;, OPT_MAX_CONNECTIONS,<br />
&#8220;The number of simultaneous clients allowed.&#8221;, (gptr*) &amp;max_connections,<br />
(gptr*) &amp;max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,<br />
0},</p>
<p>保存。</p>
<p># CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; ./configure &#8211;prefix=/usr/local/mysql &#8211;localstatedir=/var/lib/mysql &#8211;with-comment=Source &#8211;with-server-suffix=-enterprise-gpl &#8211;with-mysqld-user=mysql &#8211;without-debug &#8211;with-big-tables &#8211;with-charset=utf8 &#8211;with-collation=utf8_general_ci &#8211;with-extra-charsets=all &#8211;with-pthread &#8211;enable-static &#8211;enable-thread-safe-client &#8211;with-client-ldflags=-all-static &#8211;with-mysqld-ldflags=-all-static &#8211;enable-assembler &#8211;without-innodb &#8211;without-ndb-debug &#8211;without-isam</p>
<p>配置成功会提示：</p>
<p>MySQL has a Web site at <a href="http://www.mysql.com/">http://www.mysql.com/</a> which carries details on the<br />
latest release, upcoming features, and other information to make your<br />
work or play with MySQL more productive. There you can also find<br />
information about mailing lists for MySQL discussion.</p>
<p>Remember to check the platform specific part of the reference manual for<br />
hints about installing MySQL on your platform. Also have a look at the<br />
files in the Docs directory.</p>
<p>Thank you for choosing MySQL!</p>
<p>// 注意 ，CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; 这个环境参数只针对intel P4 芯片，如果你的CPU是AMD的，注意不能使用。请查看相应的编译优化参数。否则程序会无法编译，即使编译成功也无法运行，嘿嘿。</p>
<p>关于其他CPU的优化请看我的BLOG的一篇转贴：<br />
<a href="http://www.cnprint.org/bbs/blogs/1/blog43.html">http://www.cnprint.org/bbs/blogs/1/blog43.html</a></p>
<p># make<br />
编译的时间可能会比较长，毕竟优化的比较厉害。</p>
<p># make install</p>
<p>编译安装完成后执行后续操作：<br />
# useradd mysql //添加 mysql 用户<br />
# cd /usr/local/mysql<br />
# bin/mysql_install_db &#8211;user=mysql<br />
# chown -R root:mysql . //设置权限，注意后面有一个 &#8220;.&#8221;<br />
# chown -R mysql /var/lib/mysql //设置 mysql 目录权限<br />
# chgrp -R mysql . //注意后面有一个 &#8220;.&#8221;<br />
# cp share/mysql/my-medium.cnf /etc/my.cnf<br />
# cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld //开机自动启动 mysql。<br />
# chmod 755 /etc/rc.d/init.d/mysqld<br />
# chkconfig &#8211;add mysqld<br />
# /etc/rc.d/init.d/mysqld start //启动 MySQL<br />
# bin/mysqladmin -u root password &#8220;password_for_root&#8221;<br />
# service mysqld stop //关闭 MySQL</p>
<p>8. 编译安装 Apache<br />
# cd /usr/local/src<br />
# wget <a href="http://www.ip97.com/apache.org/httpd/httpd-2.2.6.tar.gz">http://www.ip97.com/apache.org/httpd/httpd-2.2.6.tar.gz</a><br />
# tar zxvf httpd-2.2.6.tar.gz<br />
# cd httpd-2.2.6</p>
<p>依次安装apr和apr-util</p>
<p># cd srclib/apr<br />
# CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; ./configure &#8211;prefix=/usr/local/apr &#8211;enable-threads &#8211;enable-other-child &#8211;enable-static<br />
# make &amp;&amp; make install</p>
<p># cd ../apr-util<br />
# CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; ./configure &#8211;prefix=/usr/local/apr-util &#8211;with-apr=/usr/local/apr/ &#8211;with-mysql=/usr/local/mysql<br />
# make &amp;&amp; make install</p>
<p>cd /usr/local/src/httpd-2.2.6<br />
# CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; ./configure &#8211;prefix=/usr/local/apache2 &#8211;enable-mods-shared=all &#8211;with-mysql=/usr/local/mysql &#8211;enable-cache &#8211;enable-file-cache &#8211;enable-mem-cache &#8211;enable-disk-cache &#8211;enable-static-support &#8211;enable-static-htpasswd &#8211;enable-static-htdigest &#8211;enable-static-rotatelogs &#8211;enable-static-logresolve &#8211;enable-static-htdbm &#8211;enable-static-ab &#8211;enable-static-checkgid &#8211;disable-cgid &#8211;disable-cgi &#8211;with-apr=/usr/local/apr/ &#8211;with-apr-util=/usr/local/apr-util/ &#8211;enable-ssl &#8211;with-ssl=/usr/include/openssl</p>
<p># make<br />
# make install<br />
# echo &#8216;/usr/local/apache2/bin/apachectl start &#8216; &gt;&gt; /etc/rc.local //将 apachectl 的调用加入到你的系统启动文件中。</p>
<p>注解：<br />
./configure //配置源代码树<br />
&#8211;prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ，也就Apache的安装目录。<br />
&#8211;enable-module=so //打开 so 模块，so 模块是用来提 DSO 支持的 apache 核心模块<br />
&#8211;enable-mods-shared=all //编译全部的模板，对于不需要我们可以在httpd.conf去掉。<br />
&#8211;enable-cache //支持缓存<br />
&#8211;enable-file-cache //支持文件缓存<br />
&#8211;enable-mem-cache //支持记忆缓存<br />
&#8211;enable-disk-cache //支持磁盘缓存<br />
&#8211;enable-static-support //支持静态连接(默认为动态连接)<br />
&#8211;enable-static-htpasswd //使用静态连接编译 htpasswd &#8211; 管理用于基本认证的用户文件<br />
&#8211;enable-static-htdigest //使用静态连接编译 htdigest &#8211; 管理用于摘要认证的用户文件<br />
&#8211;enable-static-rotatelogs //使用静态连接编译 rotatelogs &#8211; 滚动 Apache 日志的管道日志程序<br />
&#8211;enable-static-logresolve //使用静态连接编译 logresolve &#8211; 解析 Apache 日志中的IP地址为主机名<br />
&#8211;enable-static-htdbm //使用静态连接编译 htdbm &#8211; 操作 DBM 密码数据库<br />
&#8211;enable-static-ab //使用静态连接编译 ab &#8211; Apache HTTP 服务器性能测试工具<br />
&#8211;enable-static-checkgid //使用静态连接编译 checkgid<br />
&#8211;disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本<br />
&#8211;disable-cgi //禁止编译 CGI 版本的 PHP<br />
&#8211;enable-ssl // 编译 ssl模块。</p>
<p>我们不再使用worker模式编译apache，worker模式和php貌似有一些不协调不稳定之处。所以使用了默认的perfork模式。</p>
<p>将apache设置成开机自启动:</p>
<p>在/etc/rc.d/rc.local文件中加入一行<br />
/usr/local/apache2/bin/apachectl start<br />
这样每次重新启动系统以后,apache也会随系统一起启动.</p>
<p>或者<br />
# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd<br />
然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)<br />
# chkconfig: 2345 10 90<br />
# description: Activates/Deactivates Apache Web Server<br />
最后，运行chkconfig把Apache添加到系统的启动服务组里面：<br />
# chkconfig &#8211;add httpd<br />
# chkconfig httpd on</p>
<p>9、编译php 5.2.5-devel。<br />
php 5.2.4有点小BUG，无法在centos 5上正常编译，官方已经在php5.2.5中修复了。所以我们使用php 5.2.5进行编译。<br />
Suhosin是php增强型安全补丁，可以编译到静态内核中，也可以编译成php动态扩展。我个人强烈你建议安装成静态内核。Suhosin已经进入freebsd和gentoo的ports。下面的以下先说静态安装步骤。当然你也可以在安装php后将它编译成php的动态扩展。</p>
<p># cd /usr/local/src<br />
# wget <a href="http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror">http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror</a><br />
wget <a href="http://www.hardened-php.net/suhosin/...9.6.2.patch.gz">http://www.hardened-php.net/suhosin/&#8230;9.6.2.patch.gz</a><br />
# tar zxvf php-5.2.5.tar.gz<br />
# gunzip suhosin-patch-5.2.1-0.9.6.2.patch.gz<br />
# cd php-5.2.5</p>
<p># CHOST=&#8221;i686-pc-linux-gnu&#8221; CFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; CXXFLAGS=&#8221;-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer&#8221; ./configure &#8211;prefix=/usr/local/php &#8211;with-apxs2=/usr/local/apache2/bin/apxs &#8211;with-pear=/usr/share/php &#8211;with-zlib-dir &#8211;with-bz2 &#8211;with-libxml-dir=/usr &#8211;with-gd=/usr/local/gd2 &#8211;enable-gd-native-ttf &#8211;enable-gd-jis-conv &#8211;with-freetype-dir &#8211;with-jpeg-dir &#8211;with-png-dir &#8211;with-ttf=shared,/usr &#8211;enable-mbstring &#8211;with-mysql=/usr/local/mysql &#8211;with-mysqli=/usr/local/mysql/bin/mysql_config &#8211;with-config-file-path=/etc &#8211;with-iconv &#8211;disable-ipv6 &#8211;enable-static &#8211;enable-maintainer-zts &#8211;enable-zend-multibyte &#8211;enable-inline-optimization &#8211;enable-zend-multibyte &#8211;enable-sockets &#8211;enable-soap &#8211;with-openssl</p>
<p>配置成功会提示：</p>
<p>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
| License: |<br />
| This software is subject to the PHP License, available in this |<br />
| distribution in the file LICENSE. By continuing this installation |<br />
| process, you are bound by the terms of this license agreement. |<br />
| If you do not agree with the terms of this license, you must abort |<br />
| the installation process at this point. |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</p>
<p>Thank you for using PHP.</p>
<p># make</p>
<p># make install</p>
<p># cp php.ini-recommended /etc/php.ini</p>
<p>在这里也顺便说一下将suhosin安装成为php的动态扩展的方法。毕竟网上根本不见它的中文安装教程。</p>
<p>虽然我个人不推荐这种方式。</p>
<p>wget <a href="http://www.hardened-php.net/suhosin/...sin-0.9.16.tgz">http://www.hardened-php.net/suhosin/&#8230;sin-0.9.16.tgz</a><br />
tar zxvf suhosin-0.9.16.tgz<br />
cd suhosin-0.9.16<br />
./configure &#8211;with-php-config=/usr/local/php/bin/php-config<br />
make<br />
make install</p>
<p>会提示编译的模块存在的目录，记住它。<br />
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/</p>
<p>然后在php.ini中增加一行下列语句。<br />
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/suhosin.so</p>
<p>10 、整合apache 与php<br />
# vi /usr/local/apache2/conf/httpd.conf<br />
在最后一行加上：<br />
AddType application/x-httpd-php .php</p>
<p>查找：(设置 WEB 默认文件)<br />
DirectoryIndex index.html<br />
替换为：<br />
DirectoryIndex index.php index.html index.htm //在 WEB 目录不到默认文件，httpd 就会执行 /var/www/error/noindex.html</p>
<p>找到这一段：<br />
# AllowOverride controls what directives may be placed in .htaccess files.<br />
# It can be &#8220;All&#8221;, &#8220;None&#8221;, or any combination of the keywords:<br />
# Options FileInfo AuthConfig Limit<br />
#<br />
AllowOverride none</p>
<p>更改为AllowOverride all<br />
允许apache rewrite</p>
<p># 监听443端口,支持https连接<br />
取消注释 httpd.conf 中的 Include conf/extra/httpd-ssl.conf</p>
<p>保存httpd.conf，退出。</p>
<p># /usr/local/apache2/bin/apachectl restart //重启 Apache</p>
<p>这时会出现错误：</p>
<p>/usr/local/apache2/bin/apachectl start<br />
httpd: Syntax error on line 107 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied</p>
<p>不急，我们慢慢解决。</p>
<p>先重启下机器：<br />
reboot<br />
这个Permission denied问题，在centos 5下面一般是Selinux引起的，作为生产用服务器，我建议你千万别草率地关掉Selinux一了百了。就像家里的防盗网，阻碍了你的猫自由进出窗户，你不能为了猫方便，就把防盗网简单拆除是同样的道理。我看见网上许多人建议把Selinux简单关闭来解决这个问题，很不以为然。<br />
我们可以这样操作：</p>
<p># audit2allow -d<br />
allow initrc_t usr_t:file execmod;<br />
allow mount_t default_t:file execute;</p>
<p># cd /etc/selinux/targeted/modules/<br />
# audit2allow -M local -d</p>
<p>屏幕产生如下提示：</p>
<p>产生类型强制文件：local.te<br />
正在编译策略<br />
checkmodule -M -m -o local.mod local.te<br />
semodule_package -o local.pp -m local.mod</p>
<p>********************重要 ***********************</p>
<p>为了在内核中加载这个新创建的策略软件包，<br />
您需要执行</p>
<p>semodule -i local.pp</p>
<p>我们运行</p>
<p># semodule -i local.pp</p>
<p>这样就让Selinux加载了新的规则。</p>
<p>更详细的内容请看我在BLOG上的转贴：</p>
<p><a href="http://www.cnprint.org/bbs/blogs/1/blog48.html">http://www.cnprint.org/bbs/blogs/1/blog48.html</a></p>
<p>reboot</p>
<p>哈哈，apache不会再报错了吧？<br />
这样我保留了selinux的功能，同时apache也能正常运行。</p>
<p>11. 查看确认 L.A.M.P 环境信息<br />
vi /usr/local/apache2/htdocs/phpinfo.php</p>
<p>新增加下面一行，并保存。</p>
<p>&lt;?php phpinfo(); ?&gt;</p>
<p># chmod 755 /usr/local/apache2/htdocs/phpinfo.php</p>
<p>用浏览器打开 <a href="http://127.0.0.1/phpinfo.php">http://127.0.0.1/phpinfo.php</a></p>
<p># echo &#8216; &#8216; &gt; /usr/local/apache2/htdocs/testdb.php<br />
# chmod 755 /usr/local/apache2/htdocs/testdb.php<br />
# service mysqld start<br />
用浏览器打开 <a href="http://127.0.0.1/testdb.php">http://127.0.0.1/testdb.php</a><br />
检查 phpinfo 中的各项信息是否正确。</p>
<p>12、设置SSL并创建自己的CA</p>
<p># cd /usr/share/ssl/misc</p>
<p># ./CA -newca</p>
<p>屏幕上出现如下的提示:CA certificate filename (or enter to create)</p>
<p>这是要求输入要创建的CA的证书文件名, 可以直接回车或输入证书文件名。</p>
<p>Making CA certificate &#8230;<br />
Generating a 1024 bit RSA private key<br />
&#8230;&#8230;&#8230;++++++<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..++++++<br />
writing new private key to &#8216;./demoCA/private/./cakey.pem&#8217;<br />
Enter PEM pass phrase:</p>
<p>Verifying password &#8211; Enter PEM pass phrase:-</p>
<p>此时要求输入和验证CA的私钥口令、国家代码（中国是CN）、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。</p>
<p>至此,在当前目录下生成了demoCA的目录,CA的证书就在该目录下,文件名为cacert.pem</p>
<p>生成服务器的证书请求</p>
<p># ./CA -newreq</p>
<p>屏幕上出现如下的提示:</p>
<p>Generating a 1024 bit RSA private key<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..++++++<br />
&#8230;..++++++<br />
writing new private key to &#8216;newreq.pem&#8217;<br />
Enter PEM pass phrase:<br />
Verifying password &#8211; Enter PEM pass phrase:</p>
<p>此时要求输入和验证服务器的私钥口令、国家代码（中国是CN）、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。</p>
<p>Please enter the following &#8216;extra&#8217; attributes</p>
<p>to be sent with your certificaterequest</p>
<p>A challenge password []:</p>
<p>An optional company name []:</p>
<p>.Request (and private key) is in newreq.pem</p>
<p>这是要求输入服务器的相关信息。</p>
<p>此时,在当前目录下生成了一个名为newreq.pem的文件,包含了要生成服务器数字证书的请求。</p>
<p>签署证书</p>
<p># ./CA -sign</p>
<p>屏幕上出现如下的提示:</p>
<p>Using configuration from /usr/share/ssl/openssl.cnf</p>
<p>Enter PEM pass phrase:</p>
<p>此时一样需要输入CA的私钥口令、国家代码（中国是CN）、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。</p>
<p>Certificate is to be certified until Nov 19 13:46:19 2002 GMT (365 days)</p>
<p>Sign the certificate? [y/n]:y</p>
<p>这时显示证书请求文件中的各项信息,并询问是否要签署证书，回答y，进行签署。</p>
<p>1 out of 1 certificate requests certified, commit? [y/n]y</p>
<p>回答y,会显示已经签署的证书的信息,并在当前目录下生成服务器的证书文件newcert.pem。</p>
<p># mkdir /usr/local/apache2/conf/ssl.crt/<br />
# mkdir /usr/local/apache2/conf/ssl.key/<br />
# cp newcert.pem /usr/local/apache2/conf/ssl.crt/server.pem<br />
# cp newreq.pem /usr/local/apache2/conf/ssl.key/server.pem</p>
<p>更改服务器的证书文件的相关配置<br />
# vi /usr/local/apache2/conf/extra/httpd-ssl.conf</p>
<p>查找并修改</p>
<p># Server Certificate:<br />
# Point SSLCertificateFile at a PEM encoded certificate. If<br />
# the certificate is encrypted, then you will be prompted for a<br />
# pass phrase. Note that a kill -HUP will prompt again. Keep<br />
# in mind that if you have both an RSA and a DSA certificate you<br />
# can configure both in parallel (to also allow the use of DSA<br />
# ciphers, etc.)<br />
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.pem<br />
#SSLCertificateFile /usr/local/apache2/conf/server-dsa.crt</p>
<p># Server Private Key:<br />
# If the key is not combined with the certificate, use this<br />
# directive to point at the key file. Keep in mind that if<br />
# you&#8217;ve both a RSA and a DSA private key you can configure<br />
# both in parallel (to also allow the use of DSA ciphers, etc.)<br />
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.pem<br />
#SSLCertificateKeyFile /usr/local/apache2/conf/server-dsa.key</p>
<p>示例文件</p>
<p>在SSL的根目录中生成一个index.html,它是如下所示:</p>
<p>＜html＞</p>
<p>这是SSL示例!</p>
<p>＜/html＞</p>
<p>测试</p>
<p>假如Web服务器的DNS名称是www.cnprint.org.</p>
<p>在浏览器的URL地址栏里输入 <a href="http://www.cnprint.org/，浏览器便会显示APACHE安装时确省的Test">http://www.cnprint.org/，浏览器便会显示APACHE安装时确省的Test</a> Page.</p>
<p>在浏览器的URL地址栏里输入 <a href="https://www.cnprint.org/，注意:是">https://www.cnprint.org/，注意:是</a> https 而不是http !</p>
<p>浏览器会提示站点已经采用了SSL进行数据的加密传输.由于我们的CA证书不是浏览器缺省的信任的根证书,所以,浏览器会说无法确认服务器的证书可信。暂时不管,一直NEXT,最后,浏览器会显示:这是SSL示例!</p>
<p>可以把CA的证书放在非SSL的站点上,让浏览器下载并安装CA证书,并将其设置成可信任的根证书,便可解决上面的问题.8 解除HTTPD起动时的口令输入。</p>
<p>由于安全的原因,Web服务器的私钥是口令加密了的，每次重新起动HTTPD或Linux时,都会要求输入Web服务器的私钥的口令。</p>
<p>如果要解除HTTPD起动时的口令输入,可以这样:</p>
<p># cd /usr/local/apache2/conf/ssl.key/<br />
# cp server.pem server.pem.org<br />
# openssl rsa -in server.pem.org -out server.pem<br />
# chmod 400 server.pem</p>
<p>另外在网上看到一个方法，我没有试。有兴趣的可以试下。</p>
<p>创建SSL密码自动应答文件，否则每次Apache启动的时候，都会要求你输入SSL的密码.<br />
创建 /usr/local/apache2/conf/ssl.key/sendsslpwd ,内容如下.<br />
#!/bin/bash<br />
SSLpasswd=&#8221;YOUR PASSPHRASE&#8221;<br />
echo $SSLpasswd<br />
chmod 755 /usr/local/apache2/conf/ssl.key/sendsslpwd</p>
<p>此时，Web服务器的私钥已经没有口令加密,一定要确保server.pem文件除root外,任何用户均无权读取它。</p>
<p>13、安装 Zend Optimizer<br />
# cd /usr/local/src<br />
# wget <a href="http://downloads.zend.com/optimizer/...21-i386.tar.gz">http://downloads.zend.com/optimizer/&#8230;21-i386.tar.gz</a><br />
# tar xzvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz<br />
# ./ZendOptimizer-3.3.0-linux-glibc21-i386/install.sh<br />
按照它的提示一步步进行就行了。<br />
总之一句话。如果你的服务器环境不需要ZendOptimizer，那么能不安就不安装这个。避免和eaccelerator冲突。</p>
<p>14、安装eaccelerator // eaccelerator是php的加速软件，使用后php的执行效率会有较大幅度的提升。目前eaccelerator 0.9.5.2已经和ZendOptimizer-3.3.0能够基本上兼容啦。不过我个人觉得，ZendOptimizer-3.3.0没有加速的功能，反而使php运行变慢，只是起到了运行zend加密文件的作用而已。闲话不多说了，大家有兴趣的，可以去google下。</p>
<p># cd /usr/local/src<br />
# wget <a href="http://bart.eaccelerator.net/source/....9.5.2.tar.bz2">http://bart.eaccelerator.net/source/&#8230;.9.5.2.tar.bz2</a><br />
# tar -jxvf eaccelerator-0.9.5.2.tar.bz2<br />
# cd eaccelerator-0.9.5.2</p>
<p>export PHP_PREFIX=&#8221;/usr/local/php&#8221;<br />
$PHP_PREFIX/bin/phpize //指定一下php的目录</p>
<p># ./configure &#8211;enable-eaccelerator=shared &#8211;with-php-config=$PHP_PREFIX/bin/php-config // 设置</p>
<p># make &amp; make install</p>
<p>编译安装后我们会看到屏幕提示的eaccelerator.so所在的目录，比如我得到的是/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so，记住这个路径，待会要用到。</p>
<p>修改php.ini（安装完zend之后，php.ini存放于/usr/local/Zend/etc）<br />
在文件最后，zend之前，注意，这部分内容务必放在zend之前，不然可能会出现不可预期的服务器问题。添加下列信息：</p>
<p>[eaccelerator]<br />
extension=&#8221;/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so&#8221;<br />
eaccelerator.shm_size=&#8221;32&#8243;<br />
eaccelerator.cache_dir=&#8221;/tmp/eaccelerator&#8221;<br />
eaccelerator.enable=&#8221;1&#8243;<br />
eaccelerator.optimizer=&#8221;1&#8243;<br />
eaccelerator.check_mtime=&#8221;1&#8243;<br />
eaccelerator.debug=&#8221;0&#8243;<br />
eaccelerator.filter=&#8221;"<br />
eaccelerator.shm_max=&#8221;0&#8243;<br />
eaccelerator.shm_ttl=&#8221;0&#8243;<br />
eaccelerator.shm_prune_period=&#8221;0&#8243;<br />
eaccelerator.shm_only=&#8221;0&#8243;<br />
eaccelerator.compress=&#8221;1&#8243;<br />
eaccelerator.compress_level=&#8221;9&#8243;</p>
<p>解释:<br />
zend_extension 是安装完程序自动指示给我们的<br />
eaccelerator.shm_size=&#8221;32&#8243; 缓存大小单位MB<br />
eaccelerator.cache_dir=&#8221;/tmp/eaccelerator&#8221; 缓存路径</p>
<p># mkdir /tmp/eaccelerator // 建立目录<br />
# chmod 0777 /tmp/eaccelerator // 修改目录属性</p>
<p>最后重新启动apachectl</p>
<p>重启apache，phpinfo显示：<br />
This program makes use of the Zend Scripting Language Engine:<br />
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies<br />
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator<br />
with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies<br />
with Zend Optimizer v3.3.0, Copyright (c) 1998-2006, by Zend Technologies</p>
<p>也会有eAccelerator的具体信息。</p>
<p>15、安装phpmyadmin，管理mysql数据库</p>
<p># cd /usr/local/apache2/htdocs/<br />
# wget <a href="http://nchc.dl.sourceforge.net/sourc...-8-only.tar.gz">http://nchc.dl.sourceforge.net/sourc&#8230;-8-only.tar.gz</a></p>
<p># tar zxvf phpMyAdmin-2.11.1-all-languages-utf-8-only.tar.gz<br />
# mv phpMyAdmin-2.11.1-all-languages-utf-8-only phpmyadmin</p>
<p># cd phpmyadmin/libraries</p>
<p>修改配置文件<br />
# vi config.default.php</p>
<p>找到这几行进行修改：<br />
$cfg['Servers'][$i]['auth_type'] = &#8216;http&#8217;; // Authentication method (valid choices: config, http, HTTP, signon or cookie)<br />
$cfg['Servers'][$i]['user'] = &#8216;root&#8217;; // MySQL user<br />
$cfg['Servers'][$i]['password'] = &#8216;PASSWORD&#8217;; // MySQL password (only needed</p>
<p>经过这几个步骤，我们一个比较安全的LAMP服务器就环境基本建立成功啦。感觉上也不是很难，是吧？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ray77.com/centos-apache-php-mysql.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress攻略：数据库清理与优化篇</title>
		<link>http://www.ray77.com/wp-database-optimization.html</link>
		<comments>http://www.ray77.com/wp-database-optimization.html#comments</comments>
		<pubDate>Wed, 24 Dec 2008 12:42:08 +0000</pubDate>
		<dc:creator>Rock</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[数据库]]></category>

		<guid isPermaLink="false">http://www.ray77.com/?p=512</guid>
		<description><![CDATA[　　很多朋友用Wordpress构架的Blog往往会发现自己Blog的使用时间长了，页面的读取速度会慢慢的降低，其实这有很大一部分因素是由于Wordpress的数据库的冗余了。定期优化Wordpress的数据库，是保证Wordpress正常和快速工作的根本。
　　在这里Rock教大伙几招优化数据库的方法，咳咳…要开始讲了哦。  
　　首先最简单的方法就是利用自己的数据库管理系统做自动的优化，最常用的应该就是phpMyAdmin了吧，优化方法如图（勾选所有的表，选择优化表）：

　　接下来有两个比较实用的并且有效的减少数据库大小的方法。一个是删除RSS缓存（并关闭RSS缓存功能），另一个是删除自动保存缓存（并关闭RSS缓存功能），在操作之前，请务必先将数据库备份好哦！
　　那么来删除RSS缓存。什么是RSS缓存？如果你打开你的Wordpress数据库，你会发现在 wp_options这张表里有若干的占用大量空间的形如rss_f07b6018d7bc77b2520b5ec4296f3e66_ts的数据，它们占用体积庞大，往往占到数据库的一半以上。这些文件的存在当然是有原因的，我们每次打开Wordpress管理后台就能看到一串RSS消息，例如哪些网站链接到你了。Wordpress又有什么新闻了。显然对大多数人毫无意义，但求一删而后快。
　　删除方法很简单，在wordpress数据库中选择只在wp_options中搜索 rss_ 然后把类似rss_xxxxxxxxxxxxx的结果都删除掉（如下图），最简单的做法就是下载Clean Options这个插件。记住，不管你用什么方法删除后，记得如前所述，优化一下你的数据库。

　　但是即使这样删除后，你再次登陆后台又会有新的rss_xxxxxxxxxxxx这类数据生成，因此如果你要彻底关闭这个功能，那就得修改/wp-admin/index.php文件。在其中找到如下的语句，全部删除，然后再重复上面删除rss_的方法，这些垃圾文件就彻底与你无缘了。  
&#60;script type=&#8221;text/javascript&#8221;&#62;
jQuery(function($) {
var ajaxWidgets = {
dashboard_incoming_links: &#8216;incominglinks&#8217;,
dashboard_primary: &#8216;devnews&#8217;,
dashboard_secondary: &#8216;planetnews&#8217;,
dashboard_plugins: &#8216;plugins&#8217;
};
$.each( ajaxWidgets, function(i,a) {
var e = jQuery(&#8216;#&#8217; + i + &#8216; div.dashboard-widget-content&#8217;).not(&#8216;.dashboard-widget-control&#8217;).find(&#8216;.widget-loading&#8217;);
if ( e.size() ) { e.parent().load(&#8216;index-extra.php?jax=&#8217; + a); }
} );
});
&#60;/script&#62;
　　现在Wordpress升级到了2.7，很多朋友发现这个版本里/wp-admin/index.php文件并没有像我所说的上面的代码。不要急，教你另一个禁用生成rss_数据的方法。那就是打开你的wp-config.php在下面配置里添加一行如下代码，就实现了禁用。
define(&#8216;MAGPIE_CACHE_ON&#8217;, 0);
　　最后要讲的就是删除自动保存缓存以达到优化数据库的功能。我们每次写新的日志或者页面，Wordpress都不停的给我们自动保存，最后自动保存的数据往往比你日志的数据更大，而当你文章写好之后，这些数据其实已经没有多少意义了。留着占用数据库空间未免可惜。删除的方法很简单，如下图phpMyAdmin中选定你的数据库，再选定sql这个tab，输入如下语句并执行就可以了。
DELETE FROM wp_posts WHERE post_type = &#8220;revision&#8221;;
 
　　当然，如果你也不需要Wordpress这个自动保存功能的话，那么还是打开你的wp-config.php在下面配置里添加如下一行代码。
define(&#8216;WP_POST_REVISIONS&#8217;, false);
　　嗯，搞定了:cool: ，顺带一提的是上面那种rss_ 的方法强烈建议大家去做，为什么？你可以先把你的数据导出来，然后按我的方法把rss_数据删除后，再把数据导出来比较一下。你会发现你的数据库大小缩到了以前的三分之一以下，这下明白了rss_占用了你多少数据库空间了吧。  
]]></description>
			<content:encoded><![CDATA[<p>　　很多朋友用Wordpress构架的Blog往往会发现自己Blog的使用时间长了，页面的读取速度会慢慢的降低，其实这有很大一部分因素是由于Wordpress的数据库的冗余了。定期优化Wordpress的数据库，是保证Wordpress正常和快速工作的根本。</p>
<p>　　在这里Rock教大伙几招优化数据库的方法，咳咳…要开始讲了哦。 <img src='http://www.ray77.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' /> </p>
<p>　　首先最简单的方法就是利用自己的数据库管理系统做自动的优化，最常用的应该就是phpMyAdmin了吧，优化方法如图（勾选所有的表，选择优化表）：</p>
<p><img class="aligncenter size-full wp-image-513" title="youhua1" src="http://www.ray77.com/wp-content/uploads/2008/12/youhua1.jpg" alt="youhua1" width="550" height="375" /></p>
<p>　　接下来有两个比较实用的并且有效的减少数据库大小的方法。一个是<strong><span style="color: #008000;">删除RSS缓存（并关闭RSS缓存功能），</span></strong>另一个是<span style="color: #008000;"><strong>删除自动保存缓存（并关闭RSS缓存功能）</strong></span>，在操作之前，请务必先将数据库备份好哦！<span id="more-512"></span></p>
<p>　　那么来删除RSS缓存。什么是RSS缓存？如果你打开你的Wordpress数据库，你会发现在 wp_options这张表里有若干的占用大量空间的形如rss_f07b6018d7bc77b2520b5ec4296f3e66_ts的数据，它们占用体积庞大，往往占到数据库的一半以上。这些文件的存在当然是有原因的，我们每次打开Wordpress管理后台就能看到一串RSS消息，例如哪些网站链接到你了。Wordpress又有什么新闻了。显然对大多数人毫无意义，但求一删而后快。</p>
<p>　　删除方法很简单，在wordpress数据库中选择只在wp_options中搜索 rss_ 然后把类似rss_xxxxxxxxxxxxx的结果都删除掉（如下图），最简单的做法就是下载Clean Options这个插件。记住，不管你用什么方法删除后，记得如前所述，优化一下你的数据库。</p>
<p><img class="aligncenter size-full wp-image-515" title="youhua2" src="http://www.ray77.com/wp-content/uploads/2008/12/youhua2.jpg" alt="youhua2" width="550" height="270" /></p>
<p>　　但是即使这样删除后，你再次登陆后台又会有新的rss_xxxxxxxxxxxx这类数据生成，因此如果你要彻底关闭这个功能，那就得修改/wp-admin/index.php文件。在其中找到如下的语句，全部删除，然后再重复上面删除rss_的方法，这些垃圾文件就彻底与你无缘了。 <img src='http://www.ray77.com/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' /> </p>
<p><span style="color: #3366ff;">&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
jQuery(function($) {<br />
var ajaxWidgets = {<br />
dashboard_incoming_links: &#8216;incominglinks&#8217;,<br />
dashboard_primary: &#8216;devnews&#8217;,<br />
dashboard_secondary: &#8216;planetnews&#8217;,<br />
dashboard_plugins: &#8216;plugins&#8217;<br />
};<br />
$.each( ajaxWidgets, function(i,a) {<br />
var e = jQuery(&#8216;#&#8217; + i + &#8216; div.dashboard-widget-content&#8217;).not(&#8216;.dashboard-widget-control&#8217;).find(&#8216;.widget-loading&#8217;);<br />
if ( e.size() ) { e.parent().load(&#8216;index-extra.php?jax=&#8217; + a); }<br />
} );<br />
});<br />
&lt;/script&gt;</span></p>
<p>　　现在Wordpress升级到了2.7，很多朋友发现这个版本里/wp-admin/index.php文件并没有像我所说的上面的代码。不要急，教你另一个禁用生成rss_数据的方法。那就是打开你的wp-config.php在下面配置里添加一行如下代码，就实现了禁用。</p>
<p><strong><span style="color: #3366ff;">define(&#8216;MAGPIE_CACHE_ON&#8217;, 0);</span></strong></p>
<p>　　最后要讲的就是删除自动保存缓存以达到优化数据库的功能。我们每次写新的日志或者页面，Wordpress都不停的给我们自动保存，最后自动保存的数据往往比你日志的数据更大，而当你文章写好之后，这些数据其实已经没有多少意义了。留着占用数据库空间未免可惜。删除的方法很简单，如下图phpMyAdmin中选定你的数据库，再选定sql这个tab，输入如下语句并执行就可以了。</p>
<p><strong><span style="color: #3366ff;">DELETE FROM wp_posts WHERE post_type = &#8220;revision&#8221;;</span></strong></p>
<p> <img class="aligncenter size-full wp-image-514" title="youhua3" src="http://www.ray77.com/wp-content/uploads/2008/12/youhua3.jpg" alt="youhua3" width="550" height="194" /></p>
<p>　　当然，如果你也不需要Wordpress这个自动保存功能的话，那么还是打开你的wp-config.php在下面配置里添加如下一行代码。</p>
<p><span style="color: #3366ff;"><strong>define(&#8216;WP_POST_REVISIONS&#8217;, false);</strong></span></p>
<p>　　嗯，搞定了:cool: ，顺带一提的是上面那种rss_ 的方法强烈建议大家去做，为什么？你可以先把你的数据导出来，然后按我的方法把rss_数据删除后，再把数据导出来比较一下。你会发现你的数据库大小缩到了以前的三分之一以下，这下明白了rss_占用了你多少数据库空间了吧。 <img src='http://www.ray77.com/wp-includes/images/smilies/icon_evil.gif' alt=':evil:' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ray77.com/wp-database-optimization.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
