Linux學習之安裝Apache httpd中,APR not found,APR-util not found,pcre-config for libpcre not found問題解決

小背景

這幾天折騰Linux,跟着別人一步一步進行Linux中httpd服務的安裝,踩了很多坑,幸運的是最後還是完成了,下面是對過程的簡單記錄。

實驗環境

  • Linux環境:CentOS Linux 7
  • Windows環境:win10
  • 虛擬機:VMware® Workstation 12 Pro

實驗過程

  1. 在本次實驗中,我們使用的是源碼包安裝的方式和yum在線安裝兩種安裝形式,最後會有個小的對比。
  2. 首先下載apache的安裝包,點此下載,解壓:tar -zvxf httpd-2.4.39.tar.gz;進入解壓目錄:cd httpd-2.4.39;如下圖所示,在INSTALL文件中其實提供了安裝的具體步驟,就是通過三條命令搞定。./configure --prefix=/usr/local/apache2 ; make; make install ; 即可,之後啓動服務。這個prefix就是你軟件安裝的位置,通過源碼安裝軟件的時候一般情況下都安裝在/usr/local 的目錄下,因此此次實驗也是在這個目錄下面。
    目錄下的文件詳情INSTALL文件詳情
  3. 原來以爲我也會這麼簡單就安裝好了,但是當我運行第一個命令的時候就報錯:APR not found,那麼只好去下載APR的庫,點此下載,下載之後和上述操作一樣,解壓–> 進入目錄–>make && make install,安裝好了之後,再次進入httpd的目錄中,再次configure一次,這次的命令需要加上新的後綴:./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr,其中後面的是你安裝的APR所在的目錄。
  4. 這次APR not found錯誤解決了,出現了新的錯誤:APR-util not found,然後就去下載APR-util的庫唄,點此下載,下載好了之後,再來一遍:解壓–> 進入目錄–>make && make install,安裝好了之後,再次進入httpd的目錄中,再次configure一次,這次的命令需要加上新的後綴:./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util,其中後面的是你安裝的APR-util所在的目錄。
  5. 好了這次configure執行成功了,但是在make的時候又出現了錯誤:pcre-config for libpcre not found,這個那還和前面一樣唄,先去下載再說,下載目錄爲:點此下載
  6. 在這裏插入圖片描述如上圖所示,由於一開始我下載的是pcre2,安裝好了之後,在httpd服務make編譯的時候還是出現了錯誤,Did not find pcre-config script,後來參考了這篇論壇問答裏的老哥說的,不要安裝pcre2,直接安裝pcre即可,於是又進入/usr/local目錄下面把pcre2的目錄刪掉,其實就是卸載pcre2軟件,之後重新安裝了pcre,之後再次進入,httpd目錄下面,執行命令:./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre,這次前面的錯誤沒有了,但是出現了一個和之前apr相關的錯誤:can not find libapr-0.la in /usr/local/apr-1.6.1/lib,出現這個錯誤的原因是:APR-util是依賴於APR的庫的而在配置文件中的安裝目錄可能和自己的安裝目錄不一致,因此直接進入APR的庫目錄,將配置文件修改,如下圖所示:
  7. cd /usr/local/apr-util/lib
    apr-util文件目錄
  8. vi libaprutil-1.la ,找到配置依賴位置,並進行修改(此處需要根據自身的安裝位置進行調整)
    APR配置文件修改
  9. 之後最後一次運行下面兩個命令,httpd終於安裝成功了:
  • ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
  • make && make install
  1. 安裝成功之後,就需要啓動服務,源碼安裝的一般直接在安裝目錄啓動即可,通過/usr/local/apache2/bin/apachectl start命令啓動服務,此時會提示缺少服務器名稱,這是小問題沒啥關係。但是我想使用本地電腦的瀏覽器訪問虛擬機的頁面,一直無法連接。
  2. 針對上面的問題,首先想到將虛擬機和本機的網絡連接方式換成橋接的方式,如下圖所示。
    使用橋接方式連接主機
  3. 換好之後,通過 ifconfig獲取到虛擬機的IP地址
    查看IP地址
  4. 之後在本地通過ping命令發現可以通,但是在瀏覽器中輸入IP地址還是無法連接,參考這篇文章首先查看防火牆的狀態(systemctl status firewalld.service),之後將防火牆關閉(systemctl stop firewalld.service ),再次查看防火牆狀態發現已經關閉了。
    在這裏插入圖片描述
  5. 最後在本機瀏覽器中輸入IP地址,終於好了!
    瀏覽器顯示
  6. 前面有提到會使用兩種方法來安裝httpd服務,因此我們首先將源碼安裝的httpd服務關閉,/usr/local/apache2/bin/apachectl stop,關閉之後通過yum install -y httpd安裝httpd服務,yum在線安裝之後一般啓動命令會在/sbin/目錄下,可以直接在任意目錄下使用,啓動yum安裝的http服務apachectl start,在本機的瀏覽器中刷新一下會發現兩者的頁面是不一樣的,如下所示:yum安裝httpd的頁面
  7. 至此CenOS Linux 7下安裝httpd服務實驗就算結束了,在此過程中踩了很多坑,但也學到了很多,也希望可以幫助到其他一起來踩坑的小夥伴,寫的不好還請輕噴。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章