相信大家大多都聽過linux 的編譯安裝,但它到底是怎麼把源代碼變為自己電腦里可以應用的軟體哪?今天,小編就以httpd 為例詳細講解一下。 什麼是編譯安裝——編譯:將源代碼變為機器可執行的代碼文件。安裝:將可執行文件安裝到操作系統里,才可以使用。 一、下載httpd最新版本的源碼包 (1)如果電腦 ...
相信大家大多都聽過linux 的編譯安裝,但它到底是怎麼把源代碼變為自己電腦里可以應用的軟體哪?今天,小編就以httpd 為例詳細講解一下。
什麼是編譯安裝——編譯:將源代碼變為機器可執行的代碼文件。安裝:將可執行文件安裝到操作系統里,才可以使用。
一、下載httpd最新版本的源碼包
(1)如果電腦里有老版本的情況下,rpm -qi httpd 查看詳細信息,裡邊有這個命令下載的官網,沒有老版本就去官網查找。
(2)去官網下載最新版本(自己想要的版本)(一般在downloads下)
(3)rz上傳到linux ,並解壓包 tar -xf httpd-2.4.27.tar.bz2
二、查看INSTALL、README 這些幫助信息
進入cd httpd-2.4.27/
查詢 cat INSTALL,裡邊有簡單的安裝過程,和一些例子
查詢 cat README,(what is it ?)裡邊有一些Apache 的功能介紹
三、configure腳本(檢測當前編譯環境)
(1)./configure --help 查詢這個腳本的用法,
--prefix=PREFIX 指定預設安裝總目錄, 預設為/usr/local/
--sysconfdir=/PATH 配置文件安裝位置,預設就安裝到指定安裝總目錄的下麵
Optional Features: 需要什麼功能
--disable-FEATURE 關閉某些功能
--enable-FEATURE 開啟某些功能
(2)下麵我們就來執行這個腳本,添加一些簡單的設置
./configure --prefix=/app/apache24 --sysconfdir=/etc/apache24 --enable-rewrite
① 首次安裝,會提示出一些錯誤,因為有些包沒有安裝
② 我們只需按照提示的錯誤,把需要的都安裝上去(直到沒有提示錯誤)
先查詢缺少的 yum search apr-devel(一般關於開發的都叫 devel)
再安裝 yum -y install apr-devel
中間會提示一個,沒有C編譯工具,缺少gcc的錯誤,這時候,我們需要下一個包組Development Tools
yum -y groupinstall "Development Tools"
③ configure腳本完全執行成功(多了一個Makefile)沒有Makefile ,不能下麵make過程
四、make 和 make install 編譯
make 編譯後,多了很多.o .lo 文件 (二進位文件),在此之前的工作,任何用戶都能做,並且都在httpd-2.4.27 這個目錄下進行
make install 安裝到指定位置,只有root 能做,
安裝完畢
五、啟動服務
(1)netstat -ntl 查看本地監聽埠,有沒有開啟80埠
如果沒有開啟, service httpd start 開啟80埠
(2)設置防火牆,因為防火牆組織了80埠
iptables -vL 查看防火牆策略,防火牆阻止,可以關閉防火牆
systemctl status firewalld.service 查看當前防火牆狀態(只有centos 7 中有)
或 systemctl is-active firewalld.service 查看當前防火牆狀態
systemctl stop firewalld.service 暫時關閉防火牆(下次開機會在開啟)
systemctl is-enabled firewalld.service 查看開機時是否開啟防火牆
systemctl disable firewalld.service 設置開機時不開啟防火牆
如果是centos 6 以下的較低版本
service iptables stop 關閉防火牆
chkconfig httpd off 設置開機時不開啟防火牆
(3)如果是安裝新版本,需現將舊版本卸載 rpm -e httpd (rpm -qf `which httpd`查詢當前版本)
(4)/app/apache24/bin/apachectl start 開啟服務
就此服務開啟成功!!!
/app/apache24/bin/apachectl stop 可以關閉服務
六、安裝後的配置
(1)設置PATH export PATH=$PATH:/app/apache24/bin/
設置後,可以 apachectl start 開啟服務
apachectl stop 關閉服務
(2)導入幫助手冊man
vim /etc/man_db.conf
加入一行 MANDATORY_MANPATH /app/apache24/man
就可以man apachectl
到此就完成所有工作了!!!
希望對大家有幫助,有什麼錯誤請告訴我~