Linuxapache+php配置:

文中用到的源码包版本:

httpd-2.2.23.tar.gz

php-5.4.7.tar.bz2

1.apache的安装

下载apache,我这里下载的是httpd-2.2.23.tar.gz源码包

命令列表:

tar -zxvf httpd-2.2.23.tar.gz  -C ./

cd httpd-2.2.23

./configure --prefix=/usr/local/httpd-2.2.23/  --enable-module=so

make

make install

安装apache至/usr/local/httpd-2.2.23 并配置apache支持dso

 

2.下载安装php

下载php,我这里下载的是php-5.4.7.tar.bz2源码包

安装php之前,需要装一些依赖

yum -y install  libxml2 libxslt  gd-* libpng freetype

命令列表:

tar -jxvf php-5.4.7.tar.bz2 -C ./

cd php-5.4.7

./configure  --prefix=/usr/local/php-5.4.7  --with-apxs2=/usr/local/httpd-2.2.23/bin/apxs(整合apache[可选])   --with-mysql=/usr/local/mysql (整合mysql[可选])

注:cp php.ini-dist /usr/local/lib/php.ini  【此步骤在本文中使用的php-5.4.7版本中,可以不用拷贝】

 

3.配置相关参数

对apache做如下配置

vim /usr/local/http-2.2.23/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so                        添加php支持     
AddType application/x-httpd-php   .php                                           

存盘退出

【如果不是php-5.4.7需要设置如下】:

vim /usr/local/lib/php.ini

#register-golbals=on

 

4.启动服务

/usr/local/httpd-2.2.23/bin/apachectl -k start

5、测试是否支持php

在htdocs目录下创建 index.php 写入:

<?php
 echo phpinfo();
?>

保存退出后,直接访问: http://ip/index.php 即可!

 

 

报错处理:

报错1:

apache ./configure  报错:

configure: error: APR not found. Please read the documentation

经网上查阅资料才知道这是Apache的关联软件

  在apr.apache.org网站上可以下载此软件(apr-1.4.5.tar.gz);编译安装完成后;本以为就可以相安无事的进行Apache的安装 ;没想到 突然间报了个

    configure: error: APR-util not found. Please read the documentation

 然后就下载apr-util-0.9.19.tar.bz2进行编译安装

安装完成后再次进行Apache的编译安装 没想到又报错了


configure: error: APR version 1.3.0 or later is required
真的怒了  又看了下 ,主要是因为apr版本过低造成的,应该卸载相关旧版本后

安装新版本  我又下载了 apr-util-1.3.12.tar.gz


yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs

具体步骤如下:

1.解决apr not found问题——————>

   [root@yahoo test]# tar -zxf apr-1.4.5.tar.gz

   [root@yahoo apr-1.4.5]# ./configure --prefix=/usr/local/apr

   [root@yahoo apr-1.4.5]# make

   [root@yahoo apr-1.4.5]# make install

 2.解决APR-util not found问题>>>>

   [root@yahoo test]# tar -zxf apr-util-1.3.12.tar.gz

   [root@yahoo apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util -with- apr=/usr/local/apr/bin/apr-1-config

  [root@yahoo apr-util-1.3.12]# make
  [root@yahoo apr-util-1.3.12]# make install

3.编译Apache

  [root@yahoo httpd-2.3.12-beta]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/

 [root@yahoo httpd-2.3.12-beta]# make
 [root@yahoo httpd-2.3.12-beta]# make install

[root@yahoo httpd-2.3.12-beta]# /usr/local/apache2/bin/apachectl start

 

 

报错2:

apache 出现 make[2]: *** [exports.lo] Error 1

 

类似于以下信息:
“exports.c:1653: error: redefinition of 'ap_hack_apr_version_string'
exports.c:1022: error: previous definition of 'ap_hack_apr_version_string' was here
make[2]: *** [exports.lo] Error 1
make[2]: Leaving directory `/usr/local/src/httpd-2.2.*/server'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/httpd-2.2.*/server'
make: *** [all-recursive] Error 1”
 

在configure后加上 “--with-included-apr”  重新编译

再次make && make install即可

报错3:

 启动apache时候报错:

./bin/apachectl -k start
httpd: apr_sockaddr_info_get() failed for sys.followme.com.cn
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

是因为apache 里ServerName与本地主机名不一致

将httpd.conf里的ServerName改成与主机名一致即可

将主机名更改为localhost.localdomain 也可。

 

3、apache 禁止显示目录列表的方法

A.在配置虚拟目录下设置参数为
 Options  FollowSymLinks 
 B.在配置虚拟目录下设置参数为
 Options -Indexes FollowSymLinks 
C.在根目录的 .htaccess 文件中输入(但此方法对所有的虚拟目录都起作用)
    <Files *>
    Options -Indexes
    </Files>

同样也说一下显示目录列表的方法
A.在配置虚拟目录下设置参数为
 Options Indexes FollowSymLinks 
B.在配置虚拟目录下设置参数为
Options +Indexes FollowSymLinks 
C.在根目录的 .htaccess 文件中找到此段,删除掉即可----不推荐
    <Files *>
    Options -Indexes
    </Files>