1. 程式人生 > >centos7原始碼編譯apache

centos7原始碼編譯apache

centos7原始碼編譯apache


整理一下學習日記,很適合小白學習
實驗環境:centos7(VM虛擬機器)
安裝版本:apache2.4.34

下載apr,apr-util,httpd, pcre
下載連結:https://pan.baidu.com/s/1RgL70vmy4OLj57zgOL6p9A

使用rzsz工具上傳原始碼包
檢視是否已經安裝好rzsz工具

yum list lrzsz

安裝rzsz工具

yum install -y lrzsz

rz上傳,sz下載

下邊開始進行編譯安裝

安裝依賴包

yum gcc gcc-c++ make pcre-devel expat-devel perl

建立pcre安裝目錄

mkdir /etc/pcre

使用tar工具解壓縮pcre安裝包

tar xvf pcre-8.42.tar.gz

編譯安裝pcre(“ \”代表命令執行完畢才執行下一條命令)

#進入安裝包
cd pcre-8.42 \
#配置  prefix-自定義pcre安裝目錄
./configure --prefix=/etc/pcre \
#編譯並安裝
make && make install && make clean

使用tar工具解壓縮apr,apr-util,httpd安裝包

cd \
tar xvf apr-1.6.3.tar.gz \
tar xvf apr-util-1.6.1.tar.gz \
tar xvf httpd-2.4.34.tar.gz \

將apr,apr-util安裝包移動至httpd目錄下的src/lib中,以便Apache編譯時呼叫

mv apr-1.6.3 httpd-2.4.34/srclib/apr \
mv apr-util-1.6.1 httpd-2.4.34/srclib/apr-util \

建立apache使用者

useradd  -s  /sbin/nologin  -M  apache

編譯安裝httpd

cd httpd-2.4.34 \
# prefix-自定義httpd安裝目錄
# --enable-so 開啟動態載入模組
#--enable-rewrite 開啟網站地址重寫模組支援
#--enable-charset-lite 開啟字符集模組支援
#--enable-cgi 開啟CGI指令碼程式模組支援
./configure  --prefix=/usr/local/httpd  -with-pcre=/etc/pcre/bin/pcre-config  -with-included-apr --enable-so --enable-deflate --enable-headers --enable-rewrite --enable-charset-lite --enable-cgi \
#編譯並安裝
make && make install

為方便使用,我們需要將httpd服務新增到系統服務中

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd \
vi /etc/init.d/httpd \
#修改配置檔案
#第二行插入下邊的內容(“#”不可以省略)35級自動執行,第85個啟動,第21個關閉
#chkconfig: 35 85 21
#description:Apache is a World Wide Web server

將httpd新增至系統服務管理器

chkconfig --add httpd

重新載入系統服務管理器配置

systemctl daemon reload

賦權

chmod 755 /etc/init.d/httpd

執行優化路徑

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

執行以下命令檢視是否新增成功(顯示OK即成功)

httpd -t 或者 apachectl -t

如果沒有新增成功請執行以下命令(為httpd新增環境變數):

echo 'export PATH=$PATH:/usr/local/httpd/bin/' >> /etc/profile . /etc/profile \
source /etc/profile

執行完畢可以再次執行httpd -t 或者apachectl -t 檢視,可以發現已經新增成功了。

接下來就是檢視是否可以正常訪問apache網站了
預設是釋出目錄路徑是:/usr/local/httpd/htdocs/
可以直接在本地訪問localhost或者本機IP地址檢視是否能夠正常訪問,如果是在虛擬機器中安裝,需要本機電腦訪問,可以開放埠,再通過ip地址進行訪問。

#iptables中開放80埠
iptables -I INPUT -p TCP --dport 80 -j ACCEPT \
#儲存所新增的規則
/etc/rc.d/init.d/iptables save
#firewall中開放80埠
firewall-cmd --zone=public --add-port=80/tcp --permanent \
#重新載入firewall配置
firewall-cmd --reload \
#重啟httpd
systemctl restart httpd

如果想學習和了解iptables和firewall可以參考以下兩篇文章:

  1. iptables檢視、開放、刪除埠、儲存設定:https://www.centos.bz/2018/01/iptables檢視、開放、刪除埠、儲存設定/
  2. CentOS7使用firewalld開啟關閉防火牆與埠:https://www.cnblogs.com/moxiaoan/p/5683743.html

apache常用管理命令

#檢視安裝的apache版本號
httpd -v
#啟動命令
systemctl start httpd
#關閉命令
systemctl stop httpd
#重啟命令
systemctl restart httpd
#將apache設定為開機自啟動
systemctl enable httpd