什麼是編譯安裝——編譯:將源代碼變爲機器可執行的代碼文件。安裝:將可執行文件安裝到操做系統裏,纔可使用。linux
在官網上下載httpd源碼包http://httpd.apache.org,也能夠在linux中輸入rpm -qi httpd查看到當前下載源碼httpd的網址apache
下載到linux的data目錄下,而後進行解壓:vim
[root@ansibledata]#rz [root@ansibledata]#tar xf httpd-2.4.39
注意:必定要在解壓後的httpd目錄下安裝,下面的編譯須要用到httdp目錄下的腳本,因此我用cd httpd把目錄切換到httpd中去進入cd httpd-2.4.27/bash
查詢 cat INSTALL,裏邊有簡單的安裝過程,和一些例子app
查詢 cat README,(what is it ?)裏邊有一些Apache 的功能介紹工具
(1)./configure --help 查詢這個腳本的用法,spa
--prefix=PREFIX 指定默認安裝總目錄, 默認爲/usr/local/操作系統
--sysconfdir=/PATH 配置文件安裝位置,默認就安裝到指定安裝總目錄的下面3d
Optional Features: 須要什麼功能blog
--disable-FEATURE 關閉某些功能
--enable-FEATURE 開啓某些功能
下面咱們就來執行這個腳本,添加一些簡單的設置
手工建立帳號:
[root@ansiblehttpd-2.4.39]#useradd -r -u 80 -d /var/www -s /sbin/nologin httpd
(1)首先安裝development-tools包,由於沒有C編譯工具,缺乏gcc,這時候,咱們須要下一個包組development tools
yum -y groupinstall "Development Tools"
[root@ansiblehttpd-2.4.39]#yum groupinstall "development tools"
(2)首次安裝包,會有一些提示錯誤,第一次安裝沒有一些準備好的包,能夠根據提示錯誤進行安裝:
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(3)咱們只需按照提示的錯誤,把須要的都安裝上去(直到沒有提示錯誤)
先查詢缺乏的 yum search apr-devel(通常關於開發的都叫 devel)
再安裝 yum -y install apr-devel
[root@ansiblehttpd-2.4.39]#yum install apr-devel
(4)此時缺乏apr-util包,按照提示錯誤來進行下一步安裝:
[root@ansiblehttpd-2.4.39]#yum install apr-util-devel
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(5)根據提示錯誤繼續往下安裝,此時缺乏pcre包,安裝pcre-devel包
[root@ansiblehttpd-2.4.39]#yum install pcre-devel
繼續執行指定路徑的包安裝
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(6)根據提示的錯誤,安裝openssl-devel包:
[root@ansiblehttpd-2.4.39]#yum install openssl-devel
(7)再執行指定路徑的包安裝,此時就已經完成指定路徑包的安裝。
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(8)configure腳本徹底執行成功(多了一個Makefile)沒有Makefile
(1)進行make編譯,make 編譯後,多了不少.o .lo 文件 (二進制文件),在此以前的工做,任何用戶都能作,而且都在httpd-2.4.27 這個目錄下進行
[root@ansiblehttpd-2.4.39]#make
(2)make install 安裝到指定位置,只有root 能作,此時httpd的編譯完成。
[root@ansiblehttpd]#make install
(3)切換到/app/httpd/bin執行程序目錄下,此時去執行服務啓動,都必須是./apachectl start,不太方便,咱們能夠指定變量路徑
[root@ansiblehttpd]#cd /app/httpd/bin [root@ansiblebin]#pwd /app/httpd/bin [root@ansiblebin]#echo 'PATH=/app/httpd/bin:$PATH' > /etc/profile.d/httpd.sh 定義一個/app/httpd/bin的配置文件路徑 [root@ansiblebin]#apachectl start 啓動當前編譯的httpd服務
此時在網上輸入本機的IP地址就能夠訪問信息:
導入幫助手冊man
vim /etc/man_db.conf
加入一行 MANDATORY_MANPATH /app/httpd/man