1. 程式人生 > >Apache(httpd)源碼包安裝

Apache(httpd)源碼包安裝

Apache apache httpd

Apache安裝

Apache是一個基金會名字,httpd才是我們需要安裝的軟件包,httpd早期的名字叫做Apache;
Apache官網www.apache.org

下載地址
2.2源碼包: http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
2.4源碼包: http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
apr: http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
apr-util: https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz

apr和apr-util是一個通用的函數庫,它讓httpd可以不關心底層的操作系統平臺,可以方便移植(Linux移植到Windows)

下載與解壓軟件包

wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
tar zxvf apr-1.6.3.tar.gz
tar zxvf httpd-2.4.29.tar.gz

安裝apr-1.63

cd apr-1.6.3/
./configure --prefix=/usr/local/apr
//檢查下命令是否正常運行echo $?
make && make install

安裝apr-util

cd /usr/local/src/apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

錯誤排除

告錯:

xml/apr_xml.c:35:19: 致命錯誤:expat.h:沒有那個文件或目錄

那麽就搜索提示的expat
yum list |grep -i expat

[root@shu-test apr-util-1.6.1]# yum list |grep -i expat
expat.x86_64                                2.1.0-10.el7_3             @anaconda
expat-devel.x86_64                          2.1.0-10.el7_3             @base    
expat.i686                                  2.1.0-10.el7_3             base     
expat-devel.i686                            2.1.0-10.el7_3             base     
expat-static.i686                           2.1.0-10.el7_3             base     
expat-static.x86_64                         2.1.0-10.el7_3             base     
[root@shu-test apr-util-1.6.1]#

安裝expat-devel包

yum install -y expat-devel

安裝httpd

cd /usr/local/src/httpd-2.4.29/
./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

錯誤排除

告錯1:

checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
提示:缺少PCRE;

解決:查詢與安裝pcre

yum list |grep -i pcre
yum install -y pcre-devel

告錯2:

collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 錯誤 1
make[2]: 離開目錄“/usr/local/src/httpd-2.4.29/support”
make[1]: *** [all-recursive] 錯誤 1
make[1]: 離開目錄“/usr/local/src/httpd-2.4.29/support”
make: *** [all-recursive] 錯誤 1

解決方案:
刪除文件,重新解壓源碼包安裝,先復制文檔,在configure後加上 “--with-included-apr”。再重新編譯;

cd /usr/local/src/
cp -r apr-1.6.3 /usr/local/src/httpd-2.4.29/srclib/apr
cp -r apr-util-1.6.1 /usr/local/src/httpd-2.4.29/srclib/apr-util
cd /usr/local/src/httpd-2.4.29/
./configure --prefix=/usr/local/apache2.4 --with-included-apr --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
make && make install

啟動httpd

/usr/local/apache2.4/bin/apachectl start

查詢httpd是否啟動

ps aux |grep httpd
netstat -lntp

httpd目錄詳解

apache2.4文件夾下
conf文件夾:配置文件
htdocs:主頁文件
logs文件夾:日誌文件
modules:模塊存放

查看apache調用的模塊

/usr/local/apache2.4/bin/httpd -M
/usr/local/apache2.4/bin/apachectl -M

Apache(httpd)源碼包安裝