linux中的httpd源码安装方法
???對于源碼我們應該知道所謂源碼就是用特定語言寫成的文本,如C語言。其次源碼安裝
的好處是我們可以使用最新的版本和最新的功能,可以加入各種選項來個性配置,也可
以自定制使其更符合自己的習慣,而且在任何平臺都能夠配置、編譯。
?
源碼
?
用特定的文件寫出的文件就成為源碼
拆解--源碼-----配置(./configure)(makefile)--編譯-----可執行--頭文件?---庫文件--手冊--makeinstall安裝
編譯器gcc?
?????????編譯環境分為四類組
????????????????????????????????????????????????????????DevlompemtLibraries開發庫
??????????????????????????????????????????????????????Devlopmenttools開發工具
??????????????????????????????????????????????????????X?software?Devlopment圖形界面使用的
??????????????????????????????????????????????????????Legacy?software?Developmen?t傳統的軟件開發
庫文件一般存放在這兩個文件里面/lib?/usr/lib?系統會自動找到
動態庫不需要做代碼的一部分,直接跳轉執行?????????????????.so結尾
靜態庫直接編譯好在文件里面???????????????????????????????.a結尾
頭文件/include/usr/include如果不想占用空間可采用鏈接可以使用in-s
手冊man
?拆解位置/usr/local/src
?安裝位置/usr/local/
?配置文件后面可以跟參數選項
??????????????????????????????????????????????????????--prefix?????????????安裝目錄
??????????????????????????????????????????????????????--sysconfdir?????指明系統配置文件目錄
??????????????????????????????????????????????????????--enable???????????選項打開
??????????????????????????????????????????????????????--disable??????????選項關閉
????使用源代碼的好處:加入更多選項來個性化你的配置功能,如果你想使用更新版本的紅帽,你必須得使用源代碼。
這里我給大家提供一個源代碼的下載地方:www.apache.org
下面我給大家安裝一個最新版本的httpd2.4,來讓大家進一步了解源代碼的安裝方法
?
圖1
?
?軟件包拆解tar?-jxvf??????軟件包的地址???-C???????存放軟件包的位置
?而我們的包是存放在/usr/local/src/這個文件里面,然后我們切換到這個包文件里面
?我們仔細看里面的一些文件configure?,INSTALL這個兩個文件,說明是源代碼的安裝
?
?圖2
?
?圖3
?
下一步
?
?我們切換到包的主文件,看是安裝配置文件,執行
????????????./configure--prefix=/usr/local/apache???????指明安裝文件的目錄–附加下面的指令
??????????????sysconfir=/etc/apache?????????????????????????????????指明配置文件的安裝目錄
?
?圖4
??
?這個時候我們可以用rpm?–qa?|grep?–I?apr?來查看一下我們是否裝了arp這個文件,如果發現裝了,這個時候可能是devel庫文件沒有安裝,然后對這個文件來進行安裝,可使用
rpm?–ivh加上包的文件名字
?
?圖5
?????
??????然后我們重新執行一下./configure--prefix=/usr/local/apache–sysconfir=/etc/apache?發現錯誤依舊存在,不過這次錯誤的提示更加詳細了
?
?圖6
?
?圖7
?
下一步
?
?執行make指令
??make?install
?切換到我們剛才把它指定的安裝目錄?/usr/local/apache/?這時候產生了許多頭文件,庫文件
?
?圖8
?
???我們需要給它創建鏈接,系統能夠識別的這些文件并且能調用,我們不可能一個一個的進行創建,我們只需要給它這個目錄創建一個鏈接就可以了。執行
in?–s/usr/local/apr/include/apr-1*?.?指定一個鏈接到當前目錄
?
?庫文件處理方法
?系統能自動找到是在/lib?/usr/lib?這兩個文件里面才會找到
??vim/etc/ld.so.conf?這是一個鏈接庫里面包含
??include?ld.so.conf.d/*.conf?你可以讓在這樣的目錄創建一個*.文件,然后你源碼庫的路徑就可以了
?我們切換到這個目錄下,然后再這個文件里面編輯
?寫入這些文件/usr/local/apr/lib
??ldconfig???????????????????????????????????????更新緩存
??ldconfig?–pv?|?grep?apr?????????????查找這些鏈接文件
?
下一步
?
切換到apr-util-1.5.1tar.gz?系統工具目錄下進入這目錄里面
?
圖9
?
??直接執行./config--prefix=/usr/local/apr-util???--with-apr=/usr/local/apr/bin/apr-1-config?指定它的安裝目錄,并指定apr.config它的安裝目錄
Make
Make?intall
然后查看它安裝后所形成的文件,切換到/usr/local/目錄下,形成apr-util工具文件
?
圖10
?
然后我們重新執行一下./configure--prefix=/usr/local/apache–sysconfir=/etc/apache
?
圖11
?
這次我們需要指明apr-1-config它的安裝文件時在哪里,我們只需要指明就可以了
??????--with-apr=/usr/local/apr/bin/apr-1-config??????--with-apr-until=/usr/local/apr-until/
?
圖12
?
?這個時候會想,這個文件已經安裝了可能是devel這個文件沒有安裝
??rpm?–ivh?/mnt/cdrom/Server/pcre-devel-66-2.e15_1.7.i386.rpm安裝就可以
?安裝好后我們重新執行
??./configure--prefix=/usr/local/apache–sysconfir=/etc/apache???--with-apr=/usr/local/apr/bin/apr-1-config-??-with-apr-until=/usr/local/apr-until/
?生成學多make?file文件然后執行make?
??make?install?把你的文件拷貝到相應的文件里面
?然后為切換到/usr/local/apache/生成了bin?頭文件模塊文件
?
圖13
?
??我們需要給這些頭文件指定相應的鏈接切換到include目錄里面執行
???ln?–s?/usr/local/apache/include/*?.
??對庫文件編輯
??cd?/etc/ld.so.conf.d/
?編輯
?vim?apache.conf寫入
?/usr/local/apache/modules
?ldconfig
?ldconfig?–pv?|?grep?apche?
?
下一步
?
?配置文件
?切換到bin目錄下
?.http?–f?/etc/apache/httpd.conf?掛接配置文件
?控制腳本
?存放腳本的位置是在/etc/init.d,前期給它一個可執行的權限
?編寫一個腳本
?!/bin/bash
???prog=/usr/local/apache/bin/httpd?指明一個名稱
??configfile=/etc/apache/http.conf?指明配置文件
??lockfile=/var/local/subsys/httpd?
??./etc/init.d/functions
??start(){
???????????????if?[?-e?$lockfile?]?;then
????????????????????????echo?“the?prigram?‘basename?$prog’?is?started”
???????????????else
??????????????????????????ehco?–n?–e?“the?prigram?‘basename?$prog’?is?starting….”
?????????????????????????sleep2
????????????????????????$prog-f$configfile?&&?echo-e“\033?[31m?[ok]\033[?0m”?&&?touch?$?lochfile?||?echo-???e?“?\033[31m?[fail]?\033?[0m”
??????????????fi
}
??stop()?{
???????????????if?[?-e?$lockfile?]?;then
???????????????????????echo?-n?“the?program?‘basename?$prog’?is?stoping?….”
???????????????????????sleep2
???????????????????????killproc?http?&&?echo?“ok”?rm?–rf?$?lockfile?||?ehco?“fail”
???????????????else
??????????????????????ehco“the?program?‘basename?$prog’?is?stoped”
??????????????fi
}
?status()?{
?????????????if?[?-e?$lockfile?]?;then
?echo“the?program?‘basename?$prog’?is?running”
?????else
?????????????????????echo“the?program?‘basename?$prog’?is?stop”
?????fi
}
?case?“$1”?in
?start?)
????????start
???????????????;;
?stop)
????????stop
??????????????;
status)
status
;;
restart)
????stop
????start
???????;;
*)
ehcho?“USAGE:?start?|stop|restart|status”
esac
??如果想讓chkconfig?來管理這個腳本,啟動的時候可以自動啟動,我們首先在這個腳本里面添加
??#chkconfig?2345?55?25
??#description:httpd?server?daemon?
?然后執行添加
?chkconfig?–add?httpd
?手冊
?手冊在/usr/local/apache/man
?如果在這里不懂,不明白,我們可以執行man?man?來查看一下man?的幫助
?然后我們打開/etc/man.config?添加一條指令來指明它的man的路徑
?MANPATH=/usr/local/apache/man
?然后man?手冊就做好了.
?以上就是我的源碼安裝方法,如有錯誤聯系作者就可以了….
?
轉載于:https://blog.51cto.com/ymchaofeng/1275194
總結
以上是生活随笔為你收集整理的linux中的httpd源码安装方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7月13日微软MVP社区夏日巡讲北京站活
- 下一篇: linux 其他常用命令