一、安装所需软件

1、httpd-2.2.11.tar.gz
2、mysql-5.1.34.tar.gz
3、php-5.2.9.tar.gz
4、zlib-1.2.3.tar.gz
5、jpegsrc.v6b.tar.gz
6、GD-2.0.33.tar.gz
7、libpng-1.2.8.tar.bz2
8、freetype-2.3.5.tar.bz2
9、ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz


二、安装mysql

# useradd mysql
# tar -zxvf mysql-5.1.34.tar.gz
# cd mysql-5.1.34
# ./configure --prefix=/usr/local/mysql
# make
# make install
# cp support_files/my-medium.cnf /etc/my.cnf
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
# chown -R root .
# chgrp -R mysql var
# chgrp -R mysql .
# bin/mysqld_safe --user=mysql & 启动mysql

添加启动项
Vim /etc/rc.local
增加以下行:
/usr/local/mysql/bin/mysql_safe --user=mysql &

关闭mysql命令:
/user/local/mysql/bin/mysqladmin -u root shutdown
查看版本
/usr/local/mysql/bin/mysqladmin version




二、安装apache

#tar -zxvf httpd-2.2.11.tar.gz

#cd httpd-2.2.11

#./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-expires --

enable-cache --enable-mem-cache
注释:--prefix是按照目录。enable后面模块选项。这里选择一些常用的模块,so是支持动态链接机制

上加载DSO模块。后面装PHP时就会创建一个so的php模块。rewrite就是常用到的重写。expires是控制

HTTP的"Expires:"和"Cache-Control:"头内容,PHP用header控制缓存时要用到。其他的就不都说了,

具有可以参考Apache2.2版中文手册:
http://www.lampchina.net/manu/apache/programs/configure.html#module

#make

#make install


启动apache: /usr/local/httpd/bin/apachectl start


三、安装其他模块
-------------------------

A1、安装freetype

#tar -xvf freetype-2.3.5.tar.bz2

#./configure --prefix=/usr/local/freetype

# make && make install
--------------------------------
A2、 安装libpng

注:安装libpng前首先需要安装zlib,要注意,另外文件解压缩后并没有configure文件,要注意看

INSTALL文件,copy适当的makefile出来

# tar -xvf libpng-1.2.8.tar.bz2

# cd libpng-1.2.8

# cp scripts/makefile.std makefile

# make 注意此处没有./configure ,直接make

#make install


------------------------
A3、安装jpeg

# tar -zxvf jpegsrc.v6b.tar.gz

# cd jpeg-6b/

因为jpeg安装不能自动创建文件夹,所以要先创建文件夹,否则会找不到文件夹而编译失败。
分别创建,如图
# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/include
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/man
# mkdir /usr/local/jpeg6/man/man1

#./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static

# make

# make install

-------------------------------------------------------------
A4、最后安装GD

#tar -zxvf GD-2.0.33.tar.gz

# cd GD-2.0.33
# ./configure --prefix=/usr/local/gd --with-jpeg --with-png --with-freetype
#make

# make install

---------------------------------

四、安装php

# tar -zxvf php-5.2.9.tar.gz

#cd php-5.2.9

#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/lib --with-

apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-zlib --enable-mbstring --enable-xml -

with-gd --with-jpeg-dir=/usr/local/jpeg6 --with-png-dir --with-freetype-

dir=/usr/local/freetype --disable-debug



(注释: 今天在编译PHP5.2.9的时候过程中,提示:

configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!

可能是由于mysql的库不完全,后来在网上搜了N+X小时以后,偶然间发现一贴,情况和我的一样。
后有人回复说要确认mysql-devel是否安装了,我想了一下,系统我就装了mysql和mysql-server,马上

rpm查了一下mysql-devel,果然没有安装,安装mysql-server,重新再编译,OK!)


# make

#make install

#cp php.ini-dist /usr/local/lib/php.ini

疑惑:
开始不成功,后来我又根据编译后提示复制了一份,操作如下:
# cp php.ini-dist /usr/local/php/lib/php.ini

不知道以上哪个位置正确,有待验证

#Vim /usr/local/lib/php.ini
A、 修改php的配置
1) 修改php时区。php5默认是格林威治时间,不修改的话与中国时间相差8小时。
输入
/timezone
回车查找
改成 date.timezone = PRC
其中PRC:People's Republic of China ×××,
更详细解决方法请参考本论坛的
http://www.phpfans.net/bbs/viewthread.php?tid=60
--------
2)显示notice敬告提示
php5默认关闭notice敬告提示,如果不是做服务器,是在本地调试,建议打开notice敬告提示.
输入
/error_reporting
回车查找
改成
error_reporting = E_ALL

输入
:wq
回车,保存退出。

B、修改httpd.conf的配置
b1) 用 / 命令后面加AddType 找到它 ,在它的下面 编写
AddType application/x-httpd-php .php .phtml (识别PHP 文件)

b2)正常编译php后,会自动在httpd.conf中添加如下行,如果没有添加上,需要手动添加。

LoadModule php5_module modules/libphp5.so

b3)输入 /DirectoryIndex
回车查找,在后面
新增index.php

注释::

如果出现类似的这样的错误
httpd: Syntax error on line 53 of /usr/local/httpd/conf/httpd.conf: Cannot load

/usr/local/httpd/modules/libphp5.so into server: /usr/local/httpd/modules/libphp5.so: cannot

restore segment prot after reloc: Permission denied
这个应该是selinux限制的
可以关闭selinux或者执行
chcon–t texrel_shlib_t /usr/local/httpd/modules/libphp5.so
然后再重启apache

-----------------------------------------------
测试

配置完成后,我们测试一下
在网站根目录创建一个phpinfo.php
vi /usr/local/httpd/htdocs/phpinfo.php

输入
<?php
phpinfo();
?>



=================================补充安装zendoptimiter=========================
注意:要对应不同的版本,不能随便安装,我这里安装的是3.3.9 ,对应php5.2.版


在编译php4时加上下列参数
--disable-debug (这个参数在现在的php版本应该是缺省的)

tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
mv ZendOptimizer-3.3.9-linux-glibc23-i386 zend
cd zend
cd data
cd 5_2_x_comp/
cp ZendOptimizer.so /usr/local/zend/lib


把下列行加入php.ini,不要加入任何空格和tab符
zend_optimizer.optimization_level=15
zend_extension=/usr/local/Zend/lib/ZendOptimizer.so


_______________________以下这段不理解,网上写的_______________

回过头来修改FACL值,设置这么多,这里是最关键的了

[root@www.zhougang.name ~]# chcon -u system_u /usr/local/Zend/
[root@www.zhougang.name ~]# chcon -t httpd_sys_content_t /usr/local/Zend/

[root@www.zhougang.name ~]# chcon -u system_u /usr/local/Zend/ZendOptimizer.so
[root@www.zhougang.name ~]# chcon -t texrel_shlib_t /usr/local/Zend/ZendOptimizer.so
___________________________________________________________________________

如果在运行apache,重新启动它
/usr/local/httpd/bin/apachectl stop
/usr/local/httpd/bin/apachectl start


如果你能在输出的Zend部分找到象下面的输出,那就是成功了。
This program makes use of the Zend scripting language engine:
Zend Engine v2.2.0, Copyright (c) 1998-2000 Zend Technologies
with Zend Optimizer v3.3.9, Copyright (c) 1998-2000, by Zend Technologies