centos7原始碼編譯apache
阿新 • • 發佈:2019-01-07
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可以參考以下兩篇文章:
- iptables檢視、開放、刪除埠、儲存設定:https://www.centos.bz/2018/01/iptables檢視、開放、刪除埠、儲存設定/
- 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