1. 程式人生 > 實用技巧 >原始碼編譯 apache2.4

原始碼編譯 apache2.4

ApacheHTTPServer是Apache軟體基金會的一個開放原始碼的網頁伺服器軟體,可以在大多數電腦作業系統中執行。由於其跨平臺和安全性,被廣泛使用,是最流行的Web伺服器軟體之一。它快速、可靠並且可通過簡單的API擴充套件,將Perl/Python等直譯器編譯到伺服器中。

[root@Jaking12~]#yuminstall-ygccpcrepcre-develexpat-develbzip2openssl-develzlib*libtool
[root@Jaking12src]#rz
[root@Jaking12src]#tarxvfapr-1.7.0.tar.gz
[root@Jaking12src]#ls
apr-1.7.0apr-1.7.0.tar.gz
[root@Jaking12src]#cdapr-1.7.0
[[email protected]]#./configure--prefix=/usr/local/apr
[[email protected]]#make
[[email protected]]#makeinstall

[[email protected]]#cd..
[root@Jaking12src]#rz
rzwaitingtoreceive.
zmodemtrl+Cȡ

100%541KB541KB/s00:00:010Errors..

[root@Jaking12src]#ls
apr-1.7.0apr-1.7.0.tar.gzapr-util-1.6.1.tar.gz
[root@Jaking12src]#tarxfapr-util-1.6.1.tar.gz
[root@Jaking12src]#ls
apr-1.7.0apr-1.7.0.tar.gzapr-util-1.6.1apr-util-1.6.1.tar.gz
[root@Jaking12src]#cdapr-util-1.6.1
[[email protected]]#./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr
[[email protected]]#make
[[email protected]]#makeinstall
更多的選項可以通過./configure--help瞭解
官方的編譯選項文件http://httpd.apache.org/docs/current/programs/configure.html

--prefix=/usr/local/apache
--sysconfdir=/etc/httpd//指定配置檔案在安裝在哪個路徑。如不指定,配置檔案就在程式安裝的目錄;如指定/etc目錄
--with-apr=/usr/local/apr//指定依賴的apr路徑。注意必須指明路徑,否則編譯時會自動去找/usr下的apr,而不是編譯的高版本apr,下同
--with-apr-util=/usr/local/apr-util
--with-mpm=MPM//指定預設的[prefork|worker|event]	如3種MPM模組都編譯了,則通過此項指定預設使用哪種
--with-pcre//依賴pcre庫用於解決正則表示式問題。##安裝pcre-devel(相容Perl的正則表示式庫)
--enable-so//開啟so模組,啟用動態裝載模組功能
--enable-ssl//啟用ssl功能。注意要先安裝,https使用
--enable-cgi//啟用cgi功能,為非執行緒方式工作的mpm使用
--enable-cgid//以執行緒工作(worker/event)的mpm使用
--enable-rewrite//支援URL重寫
--enable-zlib//通用壓縮機制
--enable-module=most//[all|most|……]	指定啟用哪些模組。可指定具體的模組名,也可使用all表示啟用所有模組,most表示啟用大多數常用模組。
一般使用most即可
--enable-mpms-shared=all//啟用MPM支援的模式,啟用哪種mpm(prefork,worker,event),使用worker或event時要另外一種方式編譯php(編譯時使用了–enable-maintainer-zts選項)
--enable-deflate//傳輸壓縮機制,節約頻寬提供對內容的壓縮傳輸編碼支援一般是html、js、css等內容的站點。使用此引數會大大
提高傳輸速度提升訪問者訪問的體驗。在生產環境中這是apache調優的一個重要選項之一
[[email protected]]#cd..
[root@Jaking12src]#rz
rzwaitingtoreceive.
zmodemtrl+Cȡ

100%8983KB8983KB/s00:00:010Errors

[root@Jaking12src]#ls
apr-1.7.0apr-1.7.0.tar.gzapr-util-1.6.1apr-util-1.6.1.tar.gzhttpd-2.4.39.tar.gz
[root@Jaking12src]#tarxfhttpd-2.4.39.tar.gz
[root@Jaking12src]#ls
apr-1.7.0apr-util-1.6.1httpd-2.4.39
apr-1.7.0.tar.gzapr-util-1.6.1.tar.gzhttpd-2.4.39.tar.gz
[root@Jaking12src]#cdhttpd-2.4.39
[[email protected]]#./configure--prefix=/usr/local/apache24--enable-so--enable-ssl--enable-cgi--enable-rewrite--with-zlib--with-pcre--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--enable-modules=most--enable-mods-shared=most--enable-mpms-shared=all--with-mpm=event
[[email protected]]#make
[[email protected]]#makeinstall

所有元件/usr/local/apache24
主配置檔案/usr/local/apache24/conf
啟動指令碼/usr/local/apache24/bin/apachectl

[[email protected]]#ls/usr/local/apache24/
binbuildcgi-binconferrorhtdocsiconsincludelogsmanmanualmodules
[[email protected]]#ls/usr/local/apache24/conf/
extrahttpd.confmagicmime.typesoriginal
[[email protected]]#ls/usr/local/apache24/bin/
abapxsdbmmanageenvvars-stdhtcachecleanhtdigesthttpdlogresolve
apachectlcheckgidenvvarsfcgistarterhtdbmhtpasswdhttxt2dbmrotatelogs
[[email protected]]#ll/usr/local/apache24/bin/apachectl
-rwxr-xr-x1rootdip3440Mar1016:45/usr/local/apache24/bin/apachectl

啟動 apache2.4

[[email protected]]#/usr/local/apache24/bin/apachectl
AH00558:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,usingfe80::250:56ff:fe2c:fe97%ens33.Setthe'ServerName'directivegloballytosuppressthismessage
這是一個提示,問題不大(⊙o⊙)…