Apache原始碼編譯安裝
提示:以下是本篇文章正文內容,下面案例可供參考
:操作如下所示
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz
##將上面3個包傳到opt目錄下##
cd /opt
ll
總用量 8020
-rw-r--r-- 1 root root 1071074 8月 4 17:33 apr-1.6.2.tar.gz
-rw-r--r-- 1 root root 565507 8月 4 17:33 apr-util-1.6.0.tar.gz
-rw-r--r-- 1 root root 6567926 8月 4 17:33 httpd-2.4.29.tar.bz2
-rw-r--r-- 1 root root 6567926 8月 4 17:33 httpd-2.4.29.tar.bz2
解壓安裝包
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
為了實現Apache服務跨平臺,必須移動下面倆個目錄
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
gcc ,gcc-c++ 是原始碼編譯器( 作用:將輸入的程式碼解析成電腦能識別的語言)
make 是可以將組態檔構建出二進位制檔案 遞給電腦
pcre-devel 支援正規表示式
expat-devel 使網站能解析標籤語言的工具
perl 一種擁有各種語言功能的夢幻指令碼語言
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
–prefix:指定將 httpd 服務程式安裝到哪個目錄下,如/usr/local/httpd
–enable-so:開啟HTTP的核心模組
–enable-rewrite:啟用網頁地址重寫功能,用於網站優化及目錄遷移維護。
–enable-charset-lite:啟動字元集支援,以便支援使用各種字元集編碼的網
–enable-cgi:支援多種語言,對語言進行規範設
make && make install
make -j3 然後make install -j3是你核心數,最大不要超過虛擬機器器的核心數
####優化執行路徑####
ln -s /usr/local/httpd/conf/httpd.conf /etc/ ##簡化組態檔的地址
ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##將http執行檔案放入系統中便於管理
httpd -v ###檢視下HTTP版本
方法一:
[root@localhost bin]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@localhost httpd]# cd bin
[root@localhost bin]# ls
ab apu-1-config dbmmanage fcgistarter htdigest httxt2dbm
apachectl apxs envvars htcacheclean htpasswd logresolve
apr-1-config checkgid envvars-std htdbm httpd rotatelogs
[root@localhost bin]# cp apachectl /etc/init.d/httpd '//將啟動指令碼複製到/etc/init.d/初始化指令碼檔案中,並重新命名為httpd'
[root@localhost bin]# cd /etc/init.d/
[root@localhost init.d]# ls
functions httpd netconsole network README
[root@localhost init.d]# vim httpd
#!/bin/sh '//在行首插入下兩行內容,並儲存退出'
# chkconfig: 35 85 21 '//35級別自動執行 第85個啟動 第21個關閉'
# description: Apache is a World Wide Web server
#
#...省略內容
[root@localhost init.d]# chkconfig --add httpd '//將httpd加入到SERVICE管理器'
[root@localhost init.d]# chkconfig --list httpd ###檢視http服務自啟狀態 該輸出結果只顯示Sysv服務,並不包含原生 systemd 服務。SysV 設定資料可能被原生 systemd 設定覆蓋
方法二:建立[service].service 組態檔新增系統給服務
在/lib/systemd/system/目錄下,建立一個以.service 結尾的單元(unit)組態檔,用於控制由 systemd 管理或監控的 httpd 服務
cd /lib/systemd/system/
##建立組態檔##
vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
驗證組態檔的語法(兩種方式)
(1)httpd -t
(2)apachectl -t
[root@localhost system]# systemctl start httpd.service
[root@localhost system]# systemctl enable httpd.service ###開機自啟http
[root@localhost system]# systemctl is-enabled httpd.service ###檢查HTTP單元是否啟動
vi /usr/local/httpd/conf/httpd.conf
ServerName www.51xit.top:80 ###更改下
systemctl restart httpd ####重新啟動httpd服務
如何檢視服務是否起來?
ps aux | grep httpd ##檢視程序
netstat -ntap | grep 80 ##檢視埠
tcp 0 0 192.168.197.139:80 0.0.0.0:* LISTEN 69155/httpd
關閉防火牆
systemctl stop firewalld.service
setenforce 0 檢視核心防護
登入驗證,Apache服務啟動成功