緣由:安裝apache2.4是須要安裝apr 、 apr-util 、pcre、httpd四個包, 在安裝pcre包時會報錯:node
configure: error: You need a C++ compiler for C++ supportpython
處理這個問題的方法是執行: yum install -y gcc gcc-c++ c++
可是RedHat Linux6.4的yum未註冊,執行上面的install失敗,因此要將RedHat Linux6.4 自帶的yum 換成CentOS 6.4的yumapache
(ps:若是你Linux 自己就是CentOS 6.4,跳過此步驟)centos
換yum步驟以下: 瀏覽器
查看:rpm -qa|grep yum(此時會打印yum的一些信息)緩存
刪除:rpm -qa | grep yum | xargs rpm -e --nodepsapp
再使用查看命令,若是刪除成功時,就沒有yum打印信息測試
命令以下: url
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.2-1六、3.2.29-8一、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虛擬機上
執行命令:
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
下載配置文件:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
將文件放到 /etc/yum.repos.d下,打開文件, 將文件中 $releasever 字符 替換爲 數據 6 (CentOS的版本)
yum clean all
yum makecache
至此,完成更換yum所有操做
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
在Linux根目錄下建立文件夾/apache,將上面四個文件拷貝至此文件夾
[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
[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
[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菜鳥,對這種問題真是防不勝防。
[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.二、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
[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! 安裝成功!