apache_1.3.41+mysql-4.0.26+php-4.4.8+Redhat5 linux 成功编译安装


前言:本试验中用到的几个版的包分别为:apache_1.3.41.tar.gz;
mysql-4.0.26.tar.gz;
php-4.4.8.tar.gz.
Apache整合PHP有两种方式:
一种是DSO模式,把PHP当作Apache的外部模块来调用,这样增加了Apache的灵活性,但会带来5%的性能降低;另一种方式是把PHP编译进Apache的内核,这样牺牲了以后调整的灵活性(每次对PHP的重新编译,都需要再次编译Apache), 但性能会高一些。Perl、Python也是如此。
这里选择把PHP静态编译进Apache内核。
编译AMP:
安装编译所需要的软件包:
# yum install gcc gcc-c++ termcap libtermcap libtermcap-devel libxml2-devel
1. 编译安装MySQL:
因为PHP的编译依赖MySQL的存在,并且MySQL的编译不依赖与Apache与PHP,所以首先编译MySQL.
解压MySQL源码包:
# tar xvf mysql-4.0.26.tar.gz -C /usr/src
添加mysql用户和组:
# groupadd mysql
# useradd -g mysql mysql
配置、编译并安装MySQL:
# cd /usr/src/mysql-4.0.26
# ./configure --prefix=/usr/local/mysql
在./configure时,如果出现如下错误:configure: error: This is a Linux system without a working getconf,
and Linuxthreads was not found. Please install it (or a new glibc) and try again.See the Installation chapter in the Reference Manual for more information.
只须运行一下:echo '/* Linuxthreads */' >> /usr/include/pthread.h命令后,再./configure 就ok了.
# make
# make install
更详细的MySQL编译配置选项,请查阅MySQL官方手册。
拷贝MySQL配置文件:
# cp /usr/src/mysql-4.0.26/support-files/my-large.cnf /etc/my.cnf
初始化MySQL数据库:
# /usr/local/mysql/bin/mysql_install_db --user=mysql
修改MySQL数据库库文件目录拥有者、拥有组:
# chown -R mysql:mysql /usr/local/mysql/var
复制MySQL启动脚本,并加入到系统启动项:
# cp /usr/src/mysql-4.0.26/support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
启动MySQL服务器:
# service mysqld start
另外:MySQL的客户端程序在/usr/local/mysql/bin/mysql
2. 预编译Apache 1.3.X:
解压Apache 1.3.x源码包:
# tar xvf /root/apache_1.3.41.tar.gz -C /usr/src
配置Apache 1.3.x但不编译安装:
# cd /usr/src/apache_1.3.41
# ./configure --prefix=/usr/local/httpd
3. 编译安装PHP:
解压PHP源码包:
# tar xvf /root/php-4.4.8.tar.gz -C /usr/src
配置、编译并安装PHP:
# cd /usr/src/php-4.4.8
# ./configure --prefix=/usr/local/php4 --with-apache=/usr/src/apache_1.3.41 -
-with-mysql=/usr/local/mysql
# make
# make install
PHP有很多功能模块,请根据实际需求开启,详细配置选项请查阅PHP官方手册。
拷贝PHP配置文件:
# cp /usr/src/php-4.4.8/php.ini-dist /usr/local/php4/lib/php.ini
4. 正式编译安装Apache 1.3.x:
特别说明:
由于Apache 1.3.x版本源代码中对最大进程数限制为256,所以建议修改源代码后再编译。
# vi /usr/src/apache_1.3.41/src/include/httpd.h
在第276行找到:
#define HARD_SERVER_LIMIT 256
修改为:
#define HARD_SERVER_LIMIT 2560
保存退出
配置、编译并安装Apache 1.3.x:
# cd /usr/src/apache_1.3.41
# ./configure --prefix=/usr/local/httpd –activate-module=src/modules/php4/
libphp4.a
# make
# make install
特别注意:configure时,src/modules/php4/libphp4.a是不存在的,不用担心,这样写才能正确编
译。
Apache也有很多功能,请根据实际需求开启,详细参阅官方手册。
修改Apache 1.3.x配置文件:
# vi /usr/local/httpd/conf/httpd.conf
找到如下内容:
<IfModule mod_mime.c>
TypesConfig /usr/local/httpd/conf/mime.types
</IfModule>
修改为:
<IfModule mod_mime.c>
TypesConfig /usr/local/httpd/conf/mime.types
AddType application/x-httpd-php .php
AddType application/x-httpd-source .phps
</IfModule>
保存退出
复制Apache 1.3.x启动脚本并添加到系统启动项:
# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
在/etc/init.d/httpd开头添加如下内容:
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 64 36
# description: Apache HTTP Server 1.3
# chkconfig --add httpd
# chkconfig httpd on
启动Apache 1.3.x:
# service httpd start
测试:
在/usr/local/httpd/htdocs中创建一个PHP测试页:
# vi /usr/local/httpd/htdocs/test.php
内容如下:
<?php
phpinfo();
hello world!
?>
使用浏览器访问http://localhost/test.php,如果显示PHP的状态信息,则表示编译安装成功。
这里只介绍了整个AMP环境编译的流程,具体配置因环境和需求而异。