什么是編譯安裝——編譯:將源代碼變?yōu)闄C(jī)器可執(zhí)行的代碼文件。安裝:將可執(zhí)行文件安裝到操作系統(tǒng)里,才可以使用。
一、下載httpd源碼包在官網(wǎng)上下載httpd源碼包http://httpd.apache.org,也可以在linux中輸入rpm -qi httpd查看到當(dāng)前下載源碼httpd的****
下載到linux的data目錄下,然后進(jìn)行解壓:
1 2 3 | [root@ansibledata]#rz [root@ansibledata]#tar xf httpd-2.4.39 |
注意:一定要在解壓后的httpd目錄下安裝,下面的編譯需要用到httdp目錄下的腳本,所以我用cd httpd把目錄切換到httpd中去進(jìn)入cd httpd-2.4.27/
二、查看INSTALL、README 這些幫助信息查詢 cat INSTALL,里邊有簡單的安裝過程,和一些例子
查詢 cat README,(what is it ?)里邊有一些Apache 的功能介紹
三、configure腳本(檢測當(dāng)前編譯環(huán)境)(1)./configure --help 查詢這個(gè)腳本的用法,
--prefix=PREFIX 指定默認(rèn)安裝總目錄, 默認(rèn)為/usr/local/
--sysconfdir=/PATH 配置文件安裝位置,默認(rèn)就安裝到指定安裝總目錄的下面
Optional Features: 需要什么功能
--disable-FEATURE 關(guān)閉某些功能
--enable-FEATURE 開啟某些功能
下面我們就來執(zhí)行這個(gè)腳本,添加一些簡單的設(shè)置
手工創(chuàng)建賬號:
1 | [root@ansiblehttpd-2.4.39]#useradd -r -u 80 -d /var/www -s /sbin/nologin httpd |
(1)首先安裝development-tools包,因?yàn)闆]有C編譯工具,缺少gcc,這時(shí)候,我們需要下一個(gè)包組development tools
yum -y groupinstall "Development Tools"
1 | [root@ansiblehttpd-2.4.39]#yum groupinstall "development tools" |
(2)首次安裝包,會有一些提示錯(cuò)誤,第一次安裝沒有一些準(zhǔn)備好的包,可以根據(jù)提示錯(cuò)誤進(jìn)行安裝:
1 | [root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status |
(3)我們只需按照提示的錯(cuò)誤,把需要的都安裝上去(直到?jīng)]有提示錯(cuò)誤)
先查詢?nèi)鄙俚?nbsp;yum search apr-devel(一般關(guān)于開發(fā)的都叫 devel)
再安裝 yum -y install apr-devel
1 | [root@ansiblehttpd-2.4.39]#yum install apr-devel |
(4)此時(shí)缺少apr-util包,按照提示錯(cuò)誤來進(jìn)行下一步安裝:
1 | [root@ansiblehttpd-2.4.39]#yum install apr-util-devel |
1 | [root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status |
(5)根據(jù)提示錯(cuò)誤繼續(xù)往下安裝,此時(shí)缺少pcre包,安裝pcre-devel包
1 | [root@ansiblehttpd-2.4.39]#yum install pcre-devel |
繼續(xù)執(zhí)行指定路徑的包安裝
1 | [root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status |
(6)根據(jù)提示的錯(cuò)誤,安裝openssl-devel包:
1 | [root@ansiblehttpd-2.4.39]#yum install openssl-devel |
(7)再執(zhí)行指定路徑的包安裝,此時(shí)就已經(jīng)完成指定路徑包的安裝。
1 | [root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status |
(8)configure腳本完全執(zhí)行成功(多了一個(gè)Makefile)沒有Makefile
四、make和make install編譯
(1)進(jìn)行make編譯,make 編譯后,多了很多.o .lo 文件 (二進(jìn)制文件),在此之前的工作,任何用戶都能做,并且都在httpd-2.4.27 這個(gè)目錄下進(jìn)行
1 | [root@ansiblehttpd-2.4.39]#make |
(2)make install 安裝到指定位置,只有root 能做,此時(shí)httpd的編譯完成。
1 | [root@ansiblehttpd]#make install |
(3)切換到/app/httpd/bin執(zhí)行程序目錄下,此時(shí)去執(zhí)行服務(wù)啟動,都必須是./apachectl start,不太方便,我們可以指定變量路徑
1 2 3 4 5 | [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 定義一個(gè)/app/httpd/bin的配置文件路徑 [root@ansiblebin]#apachectl start 啟動當(dāng)前編譯的httpd服務(wù) |
此時(shí)在網(wǎng)上輸入本機(jī)的IP地址就可以訪問信息:
五、安裝后的配置導(dǎo)入幫助手冊man
vim /etc/man_db.conf
加入一行 MANDATORY_MANPATH /app/httpd/man