1.下載準備工具文件並解壓
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.28.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.3.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
tar zxvf httpd-2.4.28.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
tar zxvf apr-1.6.3.tar.gz
[root@test_01 apache2.4]# ls /usr/local//src/ apr-1.6.3 apr-1.6.3.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz httpd-2.4.28 httpd-2.4.28.tar.gz mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
2.編譯安裝apr和apr-util
apr和apr-util通用的函數庫,apache依賴與這兩個函數庫。
cd /usr/local/src/apr-1.6.1
./configure --prefix=/usr/local/apr
make && make install
cd /usr/local/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
在編譯過程中出現瞭如下錯誤:
錯誤①
configure: error: no acceptable C compiler found in $PATH
出現該錯誤是因爲沒有安裝gcc套件,yum安裝後解決問題。
[root@test_01 apache2.4]# yum install -y gcc
錯誤②
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
yum安裝pcre-devel包後解決
yum install -y pcre-devel
3.編譯安裝httpd
cd /usr/local/src/httpd-2.4.27
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
編譯過程中都正常,但是make&&make install 的時候出現瞭如下錯誤
/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
原因:該錯誤是因爲缺少了xml相關的庫,導致reference無效
解決方法:
①安裝libxml2-devel
[root@test_01 ~]# yum install -y libxml2-devel
②刪除apr-util目錄並且重新編譯安裝
[root@test_01 ~]#rm -rf /usr/local/apr-util [root@test_01 ~]# cd /usr/local/src/apr-util-1.6.1/ [root@test_01 apr-util-1.6.1]# make clean [root@test_01 apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@test_01 apr-util-1.6.1]#make && make install
③重新編譯安裝httpd,成功解決。