新手在CentOs7装一个Apache时,可以参考本文,我自己鼓捣这个搞了两个晚上,太不给力了!

 1.下载httpd源码包

       [root@localhost utils]# mkdir /usr/local/utils

       [root@localhost utils]# cd /usr/local/utils

       [root@localhost utils]# wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.34.tar.gz

       [root@localhost utils]# tar -zxvf httpd-2.4.34.tar.gz

 2.下载依赖包(apr/apr-util/pcre)

       [root@localhost utils]# wget http://archive.apache.org/dist/apr/apr-1.5.1.tar.gz

       [root@localhost utils]# wget http://archive.apache.org/dist/apr/apr-util-1.6.0.tar.gz

       [root@localhost utils]# wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.zip        

       [root@localhost utils]# tar -zxvf apr-1.6.3.tar.gz

       [root@localhost utils]# tar -zxvf apr-util-1.5.1.tar.gz

       [root@localhost utils]# unzip pcre-8.42.zip

 3.分别进行安装

        apr安装

             [root@localhost apr-1.6.3]# mkdir /usr/local/apr

             [root@localhost apr-1.6.3]# ./configure --prefix=/usr/local/apr

             [root@localhost apr-1.6.3]# make

             [root@localhost apr-1.6.3]# make install

        apr-util安装

             [root@localhost apr-util-1.5.1]# mkdir /usr/local/apr-util

             [root@localhost apr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config --enable-utf8

             [root@localhost apr-util-1.5.1]# make && make install

        pcre安装

             [root@localhost pcre-8.42]# mkdir /usr/local/pcre

             [root@localhost pcre-8.42]# ./configure --prefix=/usr/local/pcre

             [root@localhost pcre-8.42]# make && make install

 4.安装httpd源码包

        [root@localhost httpd-2.4.34]#

              ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

        [root@localhost httpd-2.4.34]# make && make install        

 5.启动Apache

        开启80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

        重启防火墙: firewall-cmd --reload

        修改httpd.conf配置文件:打开/usr/local/apache/conf/httpd.conf,找到# ServerName www.example.com:80这一行,把#号删掉

        启动Apache:[root@localhost conf]# /usr/local/apache/bin/apachectl start 或者  [root@localhost bin]# ./apachectl start       

        在浏览器地址栏输入:http://192.168.1.109/,会显示:It works! 

        大功告成!!!     

        关闭Apache :[root@localhost conf]# /usr/local/apache/bin/apachectl stop

        重启Apache :[root@localhost conf]# /usr/local/apache2/bin/apachectl restart        

 6.遇到的问题及解决办法(少踩坑,少走弯路)       

            ********************************************************************************************

        如果遇到以下错误,则表示需要安装expat-devel。

        xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录  #include <expat.h>

        原因:缺少expat-devel包,安装该包即可:yum install expat-devel

        ********************************************************************************************

              如果遇到下面的问题,是因为是安装了最新的1.6版本的apr-util导致的,调整为1.5版本的就可以了 !      

        /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserCreate'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserFree'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetUserData'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_Parse'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString'
         /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
         collect2: error: ld returned 1 exit status
         make[2]: *** [htpasswd] Error 1
         make[2]: Leaving directory `/usr/local/httpd-2.4.26/support'
         make[1]: *** [all-recursive] Error 1
         make[1]: Leaving directory `/usr/local/httpd-2.4.26/support'
         make: *** [all-recursive] Error 1

       ******************************************************************************