根據官方檔案在Linux下編譯安裝Apache
前言
永遠記住官方檔案才是最準確的安裝手冊,這篇文章僅為對官方檔案的解讀和補充,學習提升務必閱讀官方檔案:
http://httpd.apache.org/docs/2.4/install.html
1、官方對編譯安裝的大致步驟介紹:
編譯安裝:
1、下載 從http://httpd.apache.org/download.cgi下載最新版本
2、解壓 $ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
$ cd httpd-NN
3、配置 $ ./configure --prefix=PREFIX
4、編譯 $ make
5、安裝 $ make install
6、定制 $ vi PREFIX/conf/httpd.conf
7、測驗 $ PREFIX/bin/apachectl -k start
先不著急,了解了大致的步驟,再看其他要求:
2、官方對編譯安裝的環境要求:
構建Apache httpd存在以下要求:
1、APR和APR-Util
確保已在系統上安裝APR和APR-Util,如果不這樣做,或者寧愿不要使用系統提供的版本,同時下載APR和APR-的Util從最新版本的Apache APR,解開他們進入/httpd_source_tree_root/srclib/apr和/httpd_source_tree_root/srclib/apr-util (確保目錄名稱不具有版本號;例如,則APR分發必須位于/ httpd_source_tree_root / srclib / apr /下,并使用 ./configure的–with-included-apr 選項,在某些平臺上,您可能必須安裝相應的-dev軟體包,以允許httpd相對于已安裝的APR和APR-Util副本進行構建,
2、Perl兼容的正則運算式庫(PCRE)
該庫是必需的,但不再與httpd捆綁在一起,從http://www.pcre.org下載源代碼,或安裝埠或軟體包,如果您的構建系統找不到PCRE構建安裝的pcre-config腳本,請使用–with-pcre引數指向它,在某些平臺上,您可能必須安裝相應的-dev 軟體包,以允許httpd針對已安裝的PCRE副本進行構建,
3、磁盤空間
確保您至少有50 MB的可用臨時磁盤空間,安裝后,服務器大約占用10 MB的磁盤空間,實際的磁盤空間要求會根據您選擇的配置選項,任何第三方模塊以及服務器上的一個或多個網站的大小而有很大不同,
4、ANSI-C編譯器和構建系統
確保已安裝ANSI-C編譯器,在GNU C編譯器(GCC)從自由軟體基金會(FSF) 的建議,如果您沒有GCC,則至少要確保供應商的編譯器符合ANSI,此外,您PATH必須包含基本的構建工具,例如make,
5、精確計時
HTTP協議的元素表示為一天中的時間,因此,是時候研究在系統上設定一些時間同步功能了,通常 基于網路時間協議(NTP)來使用ntpdate或xntpd程式,有關NTP軟體和公共時間服務器的更多詳細資訊,請參見NTP主頁,
6、Perl 5 [可選]
對于某些支持腳本,如apxs或dbmmanage(用Perl撰寫),則需要Perl 5解釋器(版本5.003或更高版本已足夠),如果configure腳本未找到Perl 5解釋器 ,則將無法使用受影響的支持腳本,當然,您仍然可以構建和使用Apache httpd,
解讀:這幾點我們需要注意的是1、2、4,所以在編譯安裝前,先將這幾個工具下載安裝好,
3、詳細步驟
1、下載各種安裝包
由于版本會不斷更迭,這里不列出具體的安裝包版本,讀者自行從提供的地址下載最新版本即可
Apache最新版本下載地址
apr及apr-util下載地址
pcre下載地址

2、將安裝包傳入服務器
方法有很多種,windows可用xftp工具,macos可用scp命令,上面兩個都不會的話,直接在服務器用wget命令獲取,
pengyuyaodeMacBook-Air:Apache安裝包合集 pengyuyao$ ls
apr-1.7.0.tar.gz httpd-2.4.46.tar.bz2
apr-util-1.6.1.tar.gz pcre-8.44.tar.gz
pengyuyaodeMacBook-Air:Apache安裝包合集 pengyuyao$ scp * root@192.168.1.114:~
root@192.168.1.114's password:
apr-1.7.0.tar.gz 100% 1068KB 24.2MB/s 00:00
apr-util-1.6.1.tar.gz 100% 541KB 28.0MB/s 00:00
httpd-2.4.46.tar.bz2 100% 7019KB 31.0MB/s 00:00
pcre-8.44.tar.gz 100% 2042KB 30.0MB/s 00:00
[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.1.tar.gz pcre-8.44.tar.gz
apr-1.7.0.tar.gz httpd-2.4.46.tar.bz2
3、解壓
tar zxvf apr-1.7.0.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
tar -xf httpd-2.4.46.tar.bz2
突然發現pcre可以用yum裝,這里就懶得弄了
按照官方檔案要求將安裝好的apr工具放入httpd目錄:
mv apr-1.7.0 httpd-2.4.46/srclib/apr
mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
4、安裝各種依賴包
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
依賴包詳解:
gcc:C語言的編譯器
gcc-c++ :C++的編譯器
make :源代碼編譯(源代碼轉換成二進制檔案)
pcre-devel:支持正則運算式
expat-devel:網站決議HTML檔案
perl:perl編譯器
5、編譯前的配置
cd httpd-2.4.46
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite--enable-charset-lite --enable-cgi
注釋:rewrite重寫功能(支持動態網頁)、charset開啟字符集(實作中英文兼容)、cgi用戶訪問的介面
模塊可以自定義一些功能,在編譯前用戶可以自行選用模塊,關于模塊的描述此處不做多贅述,熟悉nginx的話則很好理解,具體可以參照官方檔案:
http://httpd.apache.org/docs/2.4/programs/configure.html
6、編譯并安裝
make && make install
到這一步就已經安裝成功了,但是要使用的話還需要增加一點點細節
7、安裝后的設定
1、關閉selinux核心防護
臨時關閉:
setenforce 0
永久關閉:在/etc/sysconfig/selinux下把selinux改成disabled
vim /etc/sysconfig/selinux
SELINUX=disabled
重繪服務:
service sshd restart
2、關閉防火墻
臨時關閉:service firewalld stop
永久關閉:systemctl disable firewalld
3、啟動httpd服務
service httpd start
curl 192.168.1.114
<html><body><h1>It works!</h1></body></html>
服務器內訪問成功!

瀏覽器訪問成功!
4、設定httpd開機自啟動
由于我們的Apache是編譯安裝,所以用傳統的方法systemctl enable httpd是沒用的,因為沒有相關的腳本和配置:
[root@localhost init.d]# systemctl enable httpd
httpd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig httpd on
服務 httpd 不支持 chkconfig
如何設定腳本和配置?
設定個p,我們搞點騷操作,省下那些繁瑣的配置
echo "/usr/local/httpd/bin/apachectl" >>/etc/rc.local
chmod +x /etc/rc.d/rc.local
我們直接把啟動路徑丟進引導檔案里,開機就執行,這里不理解的可以去學習下Linux開機啟動流程,
后記
這樣基本上就把Apache搭好了,當然這只是最基本的安裝,如何使用,如何修改組態檔,各配置項的意義,這些去查閱官方檔案即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234342.html
標籤:其他
上一篇:新版kali如何配置IP地址?
