大家在看了我的LAMPlinuxapache+mysql+php)平台编译安装的实现的文章后,有的人可能会说:apachemysqlphp的安装是不是太麻烦了?能不能只编译安装php

    答案当然是可以了,只不过虽然编译安装比较麻烦,但整个安装过程你比较熟悉:配置文件在哪个路径、安装在哪个目录、帮助文件在哪儿等等,同时结合php不容易出现问题。虽然编译安装比较麻烦,但还是建议使用编译安装实现LAMP平台的构建。

    如果你非常喜欢只编译安装php也可以,下面我给你一种使用apache的扩展模块工具apxs解决yum安装的httpdphp连接问题。

1.安装httpd

  1. # yum install httpd 
  2.  
  3. # service httpd start 

在地址栏里输入http://172.16.22.1(你输入你自己的IP地址,这个是我的),验证web服务是否可以正常工作。

2.安装mysql

方法和LAMPlinuxapache+mysql+php)平台编译安装的实现的安装mysql的方法一样,这里不再赘述。

说明:这个mysql安装不是编译安装,而是解压之后就可以使用,相当于绿色软件哦。

3.编译安装php

解决依赖关系:

  1. # yum -y groupinstall "X Software Development" 
  2. # yum -y groupinstall "Development Libraries"  # yum -y groupinstall "Development Tools

如果想让编译的php支持mcrypt扩展,需下载 libmcrypt-2.5.7-5.el5.i386.rpm

libmcrypt-devel-2.5.7-5.el5.i386.rpm两个软件包,此时我们支持扩展。

  1. # rpm –ivh libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 

编译安装php-5.3.10

 首先下载源码包至本地目录。

  1. # tar xvf php-5.3.10.tar.bz2 
  2. # cd php-5.3.10 
  3. # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt 

说明:如果前面第1步解决依赖关系时安装mcrypt相关的两个rpm包,此./configure命令还可以带上--with-mcrypt选项以让php支持mycrpt扩展。

说明:此时你是不是发现编译不通过呢?答案是肯定的了,因为你给的路径--with-apxs2=/usr/local/apache/bin/apxs系统找不到apxs,当然就编译不通过了,你说干脆把这一句给删除了,不要了。

不行,此时webphp就不能结合使用了,apxs就是实现apache扩展功能使phpweb服务结合使用的啊。怎么办呢?

仔细想一想:是不是只要编译的时候给的apxs路径系统能找到apxs这个工具就行,yeah,思路正确了,下面就是安装这个工具了。只要安装httpd-devel这个软件包,就会有apxs了。

  1. # yum install httpd-devel –y   
  2. # rpm –ql httpd-devel | grep “apxs” 

此时你会发现真的有apxs这个工具啊!并且路径在/usr/sbin/apxs

于是赶紧:

  1. # ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/sbin/apxs --with-mcrypt 
  2.  
  3. # make 
  4. # make test 
  5. # make install 

php提供配置文件:

  1. # cp php.ini-production /usr/local/php/lib/php.ini 

编辑apache配置文件httpd.conf,以apache支持php

  1. # vim /etc/httpd/httpd.conf 

 添加如下二行

AddType application/x-httpd-php  .php 

AddType application/x-httpd-php-source  .phps  

 定位至DirectoryIndex index.html

   修改为:  

DirectoryIndex  index.php  index.html 

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

  1. # service httpd restart 
  2.  
  3. #cd /usr/local/apache/htdocs 
  4.  
  5. #vim index.php 
  6.  <?php 
  7.  phpinfo() 
  8. ?> 

此时你发现使用rpm格式的httpd也能和mysql以及编译安装的php构建LAMP平台了。

补充知识:

    apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。

    因此,要使用这个扩展机制,你的平台必须支持DSO特性,而且Apache httpd必须内建了mod_so模块。apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测:

# httpd -l

    该命令的输出列表中应该mod_so模块。如果所有这些条件均已具备,则可以很容易地借助apxs安装你自己的DSO模块以扩展Apache服务器的功能。