手工編譯安裝Apache, 版本httpd-2.4.29(免費提供安裝包,懶人福利;提供安裝腳本)
本次實驗以redhat6.5系統為安裝對象,(CentOS其他系列也可以)
安裝Apache源碼包 httpd-2.4.29.tar.bz2
依賴包 pcre-8.41.tar.gz, apr-1.6.3.tar.bz2 , apr-util-1.6.1.tar.bz2
獲取安裝包鏈接:百度雲盤
https://pan.baidu.com/s/1HPvV68ICTHkNf-ty1VGXyw
https://pan.baidu.com/s/1h3LBtqCMEAcEugAx6YczGg
https://pan.baidu.com/s/1xSe-UVGowUVAtjfAolSK6w
https://pan.baidu.com/s/1_HkJeSp1fiBIrirtjgoYow
在安裝之前卸載掉使用rpm方式安裝的httpd
rpm -q httpd #查看系統是否安裝有httpd
yum -y remove httpd #卸掉rpm安裝的httpd
解壓源碼包及依賴包
tar xzvf /root/pcre-8.41.tar.gz -C /opt
tar xjvf /root/apr-1.6.3.tar.bz2 -C /opt
tar xjvf /root/apr-util-1.6.1.tar.bz2 -C /opt
tar xjvf /root/httpd-2.4.29.tar.bz2 -C /opt
將依賴包移動到httpd-2.4.29/srclib/目錄中
使用yum命令安裝配置編譯環境組件,gcc gcc-c++ expat-devel pcre-devel
進入到httpd-2.4.29/目錄中,進行配置編譯安裝。
根據服務器的實際應用需要,進行配置時可以靈活設置不同的定制選項,,如指定安裝路徑,啟用字符集支持等,若要詳細知道可用的各種配置選項及含義,可以執行“./configure --help”
cd /opt/httpd-z.4.29
./configure \
--prefix=/usr/local/httpd \ #指定安裝路徑
--enable-expires \ #啟用緩存模塊mod_exprices
--enable-so \ #啟用動態加載模塊
--with-mpm=worker \ #更改apache運行模式為worker
--enable-rewrite \ #支持網站地址重寫
--enable-charset-lite \ #啟用字符集支持
--enable-cgi #啟用CGI腳本程序支持
make && make install
確認安裝結果
由於指定的安裝目錄為/usr/local/httpd ,因此httpd服務的各種程序,模塊,幫助文件,配置文件等都將復制到此目錄下。
在安裝後的/usr/local/httpd目錄下,主要子目錄的用途如下
bin:存放httpd服務的各種執行程序文件,包括主程序httpd,服務控制工具apachectl等
conf;存放httpd服務的各種配置文件,包括主配置文件httpd,conf,增強配置子目錄extra等
htdocs;存放網頁文檔,包括默認首頁文件index.html等
logs;存放httpd服務的日誌文件
modules;存放httdp服務的各種模塊文件
cgi-bin;存放各種CGI程序文件
優化執行路徑,添加httpd為系統服務,使其可以使用service命令進行管理
通過源碼編譯安裝的httpd服務,程序路徑並不在默認的搜索路徑中,為了使該服務在使用時方便,可以將其添加為系統服務,以便通過chkconfig進行管理。將apachectl腳本重定向為/etc/init.d/httpd ,並在文件開頭添加chkconfig識別配置,然後再將其添加為標準的系統服務。
grep -v "#" bin/apachectl >/etc/init.d/httpd
vim /etc/init.d/httpd
#!/bin/bash #shell腳本必要註釋
#chkconfig:2345 85 35 #服務識別參數,在級別2345中啟動;啟動和關閉的順序分別為85,35
#description:Apache is a web server #服務描述信息
chmod 755 /etc/init.d/httpd #給服務腳本賦予執行權限
chkconfig --add httpd #將httpd加入系統服務
chkconfig httpd on #設置httpd開機自啟
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf #給主配置文件httpd.conf生成一個鏈接文件,方便操作
這樣可以使用service命令管理httpd服務了
service httpd start #開啟
service httpd stop #關閉
service httpd restart #重啟
更改apache的主配置文件httpd.conf
vim /etc/httpd.conf
Listen 192.168.30.15:80
#Listen 80ServerName www.example.com:80
關閉防火墻,selinux功能
在瀏覽器中輸入ip 進行訪問,可以看到apache的默認首頁。
為了以後安裝方便,整理出一個apache安裝腳本。
vim apache.sh
#!/bin/bash
#this is apachedate
#判斷光盤是否掛載
df -h | grep /mnt >/dev/null
if [ $? -ne 0 ]
then
mount /dev/sr0 /mnt >/dev/null
fi
#創建yum倉庫
rm -rf /etc/yum.repos.d/*
echo -e "[a]\nname=test\nbaseurl=file:///mnt\nenabled=1\ngpgcheck=0" >/etc/yum.repos.d/a.repo
yum -y install gcc gcc-c++ expat-devel make pcre-devel &>/dev/null
tar xzvf /root/pcre-8.41.tar.gz -C /opt &>/dev/null
tar xjvf /root/apr-1.6.3.tar.bz2 -C /opt &>/dev/null
tar xjvf /root/apr-util-1.6.1.tar.bz2 -C /opt &>/dev/null
tar xjvf /root/httpd-2.4.29.tar.bz2 -C /opt &>/dev/null
cd /opt
mv apr-1.6.3/ httpd-2.4.29/srclib/apr
mv apr-util-1.6.1/ httpd-2.4.29/srclib/apr-util
mv pcre-8.41/ httpd-2.4.29/srclib/pcre
#進入到apache目錄進行配置,編譯安裝
cd httpd-2.4.29/
./configure --prefix=/usr/local/httpd --enable-rewrite --enable-mods-shared=most --with-mpm=worker --enable-charset-lite --enable-so --enable-cgi
make && make install &>/dev/null
#優化執行路徑,加入httpd到系統服務
grep -v "#" /usr/local/httpd/bin/apachectl >/etc/init.d/httpd
sed -i '1i #!/bin/bash\n#chkconfig:2345 80 40\n#description:apache is a web server' /etc/init.d/httpd
chkconfig --add httpd
chkconfig httpd on
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
#監聽地址根據實際情況進行更改
sed -i '51c Listen 192.168.30.15:80' /etc/httpd.conf
sed -i '52c #Listen :80' /etc/httpd.conf
service httpd start
service iptables stop
setenforce 0
date
echo "apache已經安裝完成"
賦予腳本執行權 限。
chmod 755 apache.sh
手工編譯安裝Apache, 版本httpd-2.4.29(免費提供安裝包,懶人福利;提供安裝腳本)