Linux学习日记——源码编译Apache
【本文為筆者在學習Linux 下的軟件安裝時,嘗試使用源碼安裝Apache 的過程,事后進行一個小小的總結,發現錯誤望指正。】
一、典型的源碼編譯安裝軟件的過程包括以下3步:
1) 運行 configure 命令,并結合必要的參數以生成Makefile ;(讀者可以自行百度Makefile 相關知識)
2) 運行 make 命令生成各類模塊和主程序;
3) 運行 make install 命令將必要的文件復制到安裝目錄中。
(以上過程都在對應軟件安裝包的根目錄中進行)
二、安裝過程
Linux 系統中,一般是在 /usr/local/src 目錄中下載源碼包 (不是硬性規定,只是一個習慣),在該目錄下可以通過命令:
wegt http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz 下載。資源來自清華大學開源軟件鏡像站(https://mirrors.cnnic.cn/),很多鏡像資源都可以在里面找到。
下載完成后使用 tar 進行解壓,然后進入 /usr/local/src/httpd-2.4.27 目錄,進入目錄后需要使用 configure 工具生成Makefile ,對于我這樣的菜鳥來說只用了最簡單的方式生成,因為配置Apache 時可以加入的參數實在是太多了。命令: ./configure --prefix=/usr/local/apache/ 在這之后,configure 會產生很多輸出,開始checking 很多編譯環境(是夠有gcc 工具、軟件依賴關系之類的)。
這時候很多人會出現安裝失敗的報錯信息(configure: error: APR not found. Please read the documentation. 沒有找到APR,請閱讀文檔)這時候需要先配置相關依賴,一般來說后面還會出現缺少 apr-util 以及 pcre 的情況。若沒有出錯則直接跳到第4步即可。(注:1-3步 是報錯后配置環境,應該在 /usr/local/ 目錄下進行操作,配置完成后檢查當前目錄是否存在 apr apr-util pcre 三個文件夾,然后再進入到?/usr/local/src/httpd-2.4.27 目錄中繼續之前操作?)
1 下載包
wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz ?
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
2 ?安裝(下面演示 apr 的安裝 其他安裝方式相同)
tar -zxf apr-1.4.5.tar.gz
cd apr-1.4.5?
./configure --prefix=/usr/local/apr
make && make install (這種組合命令,如果不是在root 下運行,使用 sudo 也只能通過root 運行 make 而 make install 依然沒有權限,筆者是通過bash 解決
【sudo bash -c ' make && make install ?'】)
3 ?最后在編譯Apache 的時候 加上:
./configure ? --prefix=/usr/local/apache/ ? --with-apr=/usr/local/apr ? --with-apr-util=/usr/local/apr-util/ ? --with-pcre=/usr/local/pcre/
4 ?完成上一步之后會在當前目錄下生成Makefile 文件,這時候使用make 和 make install 命令安裝即可。 命令:??make && make install
5 ?以上操作順利完成后,Apache 已經安裝完成,可以通過命令:?/usr/local/apache/bin/apachectl start? 打開服務
然后使用 ifconfig 指令查看服務器地址:
6 ?最后在瀏覽器中輸入域名地址,結果如下安裝成功:
?
這種源碼編譯的方式,只是體驗一下這個過程,熟悉其中的流程以及原理后加深自己的理解,以上方式安裝雖然看似很簡單,但是是由于使用了簡單的編譯方式。使用源碼編譯安裝軟件其實存在很多弊端,首先,系統中必須存在gcc 工具(對于安全生產有一定的影響);其次,源碼編譯本身是有很多的可選參數的,這些參數對應著不同的功能,安裝時指定了哪些參數,軟件就具備哪些功能,而對于不同的使用環境,需求應該是不同的,因此最壞的情況下,需要重新進行編譯安裝(除一些通過添加模塊來添加功能的項目外,這些項目可以不重新編譯,只需要編譯相應的模塊即可)。另外,編譯安裝的過程耗時很長,并不適用于大規模的項目部署。最后源碼編譯無法完成軟件的管理功能(卸載、升級、檢測...)。重在了解,另外RedHat 為了解決源碼編譯存在的種種不足,使用了更加簡單的RPM (RedHat Package Manager)包管理機制。讀者可以在 http://man.linuxde.net/rpm 查看詳細內容。
?
轉載于:https://www.cnblogs.com/helianthus/p/7494168.html
總結
以上是生活随笔為你收集整理的Linux学习日记——源码编译Apache的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用powershell批量导入AD用户
- 下一篇: 导入Jquery.min.js时 JQu