博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apache_1.3.41+mysql-4.0.26+php-4.4.8+Redhat5 linux
阅读量:6070 次
发布时间:2019-06-20

本文共 3410 字,大约阅读时间需要 11 分钟。

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环境编译的流程,具体配置因环境和需求而异。

    本文转自vcdog 51CTO博客,原文链接:http://blog.51cto.com/255361/837867,如需转载请自行联系原作者

你可能感兴趣的文章
推断两条单链表是否相交
查看>>
Linux ftrace框架介绍及运用
查看>>
UVA 12295 Optimal Symmetric Paths
查看>>
【技术贴】tomcat启动失败 can not find a free socket的解决办法
查看>>
根据结构体里面元素的某个地址计算机构体地址
查看>>
如何使用 ADO.NET 和 Visual C# .NET 以编程方式创建 SQL Server 数据库
查看>>
Hash碰撞与拒绝服务攻击
查看>>
atmega8 例程:按键输入检测
查看>>
坑爹的AVR编译器中文路径问题
查看>>
(转)程序员真的是吃青春饭的吗?(献给即将进入职场的程序员们)
查看>>
C++获取一个文件夹下的所有文件名(转)
查看>>
asp:HyperLink中 Eval要用string.Format绑定
查看>>
常见数据库端口号
查看>>
Concurrent Request:Inactive phase,No Manager status
查看>>
查看linux版本号的几种方法
查看>>
[转]MyBatis传入多个参数的问题 - mingyue1818
查看>>
Meteor 加入账户系统
查看>>
iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer
查看>>
计算几位学生的平均分
查看>>
Python黑客编程2 入门demo--zip暴力破解
查看>>