一、换yum
原因:安装apache2.4是需要安装apr 、 apr-util 、pcre、httpd四个包, 在安装pcre包时会报错:
configure: error: You need a C++ compiler for C++ support
处理这个问题的方法是执行: yum install -y gcc gcc-c++
但是RedHat Linux6.4的yum未注册,执行上面的install失败,所以要将RedHat Linux6.4 自带的yum 换成CentOS 6.4的yum
(ps:如果你Linux 本身就是CentOS 6.4,跳过此步骤)
换yum步骤如下:
1.1.删除自带的yum
查看:rpm -qa|grep yum(此时会打印yum的一些信息)
删除:rpm -qa | grep yum | xargs rpm -e --nodeps
再使用查看命令,如果删除成功时,就没有yum打印信息
1.2.下载CentOS 6.4 yum
命令如下:
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
注意:0.3.1-2.1、1.1.2-16、3.2.29-81、1.1.30-40是作者安装时最新的版本号,如果你下载时报错404 Not Found,就是版本不对,可以访问http://mirrors.163.com/centos/6/os/x86_64/Packages查看相关文件的最新版本,修改版本号下载。如果你的虚拟机不能上互联网,可以在一台上网的机子访问 http://mirrors.163.com/centos/6/os/x86_64/Packages,下载上面的文件,再拷贝到Linux虚拟机上
1.3.安装yum
执行命令:
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
注意: 最后两个文件有依赖,需要一起安装,但是安装时会报错:
error: Failed dependencies:python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-81.el6.centos.noarch
原因是python-urlgrabber版本低于3.9.1-10,需要重新安装高版本的python-urlgrabber。
查看python-urlgrabber版本:
rpm -qa|grep python-urlgrabber (打印信息:python-urlgrabber-3.9.1-8.el6.noarch)
删除旧版本:
rpm -e python-urlgrabber-3.9.1-8.el6.noarch
安装3.9.1-10以上版本:
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
注意:先在http://mirrors.163.com/centos/6/os/x86_64/Packages/中找到python-urlgrabber文件下载下来,下载方式同步骤1.2
安装完毕后再执行:
rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
1.4.配置repo文件
下载配置文件:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
将文件放到 /etc/yum.repos.d下,打开文件, 将文件中 $releasever 字符 替换为 数据 6 (CentOS的版本)
1.5.清除原有缓存
yum clean all
1.6.获取yum列表
yum makecache
至此,完成更换yum全部操作
二、安装apache
2.1 下载文件
apr 和apr-util 包: http://apr.apache.org/download.cgi
作者下载时最新版本:apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz
pcre包: https://sourceforge.net/projects/pcre/files/pcre/
作者下载时最新版本:pcre-8.41.tar.gz
httpd包: http://httpd.apache.org/download.cgi#apache24
作者下载时最新版本:httpd-2.4.27.tar.gz
2.2 安装
在Linux根目录下创建文件夹/apache,将上面四个文件拷贝至此文件夹
2.2.1 安装apr
[root@localhost apache]# tar zxvf apr-1.6.2.tar.gz
[root@localhost apache]# cd apr-1.6.2
[root@localhost apr-1.6.2]# mkdir /usr/local/apr
[root@localhost apr-1.6.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.2]# make
[root@localhost apr-1.6.2]# make install
2.2.2 安装 apr-util
[root@localhost apache]# tar zxvf apr-util-1.6.0.tar.gz
[root@localhost apache]# cd apr-util-1.6.0
[root@localhost apr-util-1.6.0]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util-1.6.0]# make
报错:xml/apr_xml.c:401: error: ‘apr_xml_parser’ has no member named ‘xp’ (打印很多这样‘XP’错误)
处理:
[root@localhost apr-util-1.6.0]# yum -y install expat-devel
重新make:
[root@localhost apr-util-1.6.0]# make
[root@localhost apr-util-1.6.0]# make install
2.2.3 安装pcre
[root@localhost apache]# tar zxvf pcre-8.41.tar.gz
[root@localhost apache]# cd pcre-8.41
[root@localhost pcre-8.41]# mkdir /usr/local/pcre
[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config
报错:configure: error: You need a C++ compiler for C++ support
处理:
[root@localhost Desktop]# yum -y install gcc gcc-c++ autoconf automake (此处就是作者要换yum的原因)
重新make:
[root@localhost pcre-8.41]# make
[root@localhost pcre-8.41]# make install
ps:在执行./configure, 拷贝网上的指令 ./configure --prefix=(空格)/usr/local/pcre ,=后面有个空格,导致后面make总是报错:
make: *** No targets specified and no makefile found. Stop. 拷贝别人指令要小心,还有 ./configure --prefix=/usr/local/pcre (空格) --with,这个地方是需要空格,没有会导致指令执行失败。作者是Linux菜鸟,对这种问题真是防不胜防。
2.2.4 安装httpd
[root@localhost httpd-2.4.27]# tar zxvf httpd-2.4.27.tar.gz
[root@localhost httpd-2.4.27]# cd httpd-2.4.27
[root@localhost httpd-2.4.27]# ./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@localhost httpd-2.4.27]# make
报错:
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/app/apache/httpd-2.4.27/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/app/apache/httpd-2.4.27/support'
make: *** [all-recursive] Error 1
处理:
找到解压后的httpd-2.4.27文件夹,在/srclib文件夹下,新建apr、apr-util文件夹(注意不要带版本号,写成apr-1.6.2),将 我们之前解压后的apr-1.6.2、apr-util-1.6.0文件夹中的内容分别拷贝到apr、apr-util文件夹中。(这个步骤直接执行下面语句就行,注意语句执行的目录,以及版本号是否正确)
[root@localhost apache]# cp -r apr-1.6.2 /app/apache/httpd-2.4.27/srclib/apr
[root@localhost apache]# cp -r apr-util-1.6.0 /app/apache/httpd-2.4.27/srclib/apr-util
再加上--with-included-apr 重新编译:
[root@localhost httpd-2.4.27]# ./configure --with-included-apr --prefix=/usr/local/apache --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@localhost httpd-2.4.27]# make
[root@localhost httpd-2.4.27]# make install
2.2.5 启动apache
[root@localhost Desktop]# /usr/local/apache/bin/apachectl start (作者安装完,其实就是启动状态)
报错:AH00558: httpd
处理:
找到 httpdd 安装文件夹 /usr/local/apache/conf 文件httpd.conf,找到 #ServerName www.example.com:80,在下面添加
ServerName localhost:80
再执行:
[root@localhost Desktop]# /usr/local/apache/bin/apachectl start
打印: httpd (pid 20085) already running (早已启动,但是这个地方还是需要添加ServerName localhost:80,我们才能通过浏览器访问 到http://localhost)
测试:在浏览器中输入: http://localhost 提示It works! 安装成功!