CentOS7.4 源碼安裝httpd-2.4.29

第一步:準(zhǔn)備工作。查看系統(tǒng)是否已經(jīng)安裝了httpd,如果已經(jīng)安裝的話,將其卸載。

# 查看是否已經(jīng)安裝了httpd的相關(guān)rpm包
[root@VM_38_201_centos /]# cd /root/
[root@VM_38_201_centos ~]# rpm -qa |grep httpd
httpd-tools-2.4.6-67.el7.centos.6.x86_64
httpd-2.4.6-67.el7.centos.6.x86_64
# 如果安裝了,將其remove掉 
[root@VM_38_201_centos ~]#yum -y remove httpd*

第二步: 安裝開發(fā)包組+軟件依賴包

1、安裝開發(fā)包組

安裝開發(fā)包組屬于通用過(guò)程,一般編譯安裝的時(shí)候,都需要用到開發(fā)包組提供的功能。

#安裝開發(fā)包組,開發(fā)包組里面包含了很多的編譯工具軟件 
[root@iz2z ~]# yum groupinstall "Development tools" -y
2、安裝軟件依賴包

注:本文忽略了本機(jī)是否已安裝過(guò)依賴,直接重新安裝了所有依賴,也可以根據(jù)編譯報(bào)錯(cuò)一步步安裝;

[root@iz2z ~]# yum install apr-devel -y                                                             
[root@iz2z ~]# yum install apr-util-devel -y        
[root@iz2z ~]# yum install pcre-devel -y                                                                  
[root@iz2z ~]# yum install openssl-devel -y

第三步: 下載文件,解包

官網(wǎng)下載地址:http://httpd.apache.org/download.cgi

1、下載文件
[root@iz2z ~]# wget http://archive.apache.org/dist/httpd/httpd-2.4.29.tar.gz
2、檢查文件MD5值是否匹配:若不匹配需重新下載
[root@iz2z ~]# md5sum httpd-2.4.29.tar.gz 
6380b0856658f07479fdcba9e20294a6  httpd-2.4.29.tar.gz

3、解壓文件

[root@iz2z ~]# tar -xzf httpd-2.4.29.tar.gz 
[root@iz2z ~]# ls
httpd-2.4.29  httpd-2.4.29.tar.gz

第四步: 編譯和安裝

進(jìn)入到解壓文件目錄,依次運(yùn)行以下命令:

[root@iz2z httpd-2.4.29]# ./configure --prefix=/usr/local/apache2 --enable-modules=all --enable-mods-shared=all --enable-so --enable-rewrite
[root@iz2z httpd-2.4.29]# make
[root@iz2z httpd-2.4.29]# make install
注:安裝時(shí) ./configure 所接參數(shù),可根據(jù)個(gè)人需求做出更改

第五步: 啟用httpd服務(wù)

[root@iz2z ~]# /usr/local/apache2/bin/apachectl start
在瀏覽器中輸入服務(wù)器ip,即可訪問(wèn)頁(yè)面

也可以將路徑配置到環(huán)境變量中:直接命令行中輸入apachectl start即可啟動(dòng)

[root@iz2z ~]# echo export PATH=/usr/local/apache2/bin:$PATH >>/etc/profile
[root@iz2z ~]# source /etc/profile
[root@iz2z ~]# apachectl start

httpd 的簡(jiǎn)單配置:(未列出配置文件中的所有信息,只列出自己目前用到的)

[root@VM_38_201_centos ~]# vim /usr/local/apache2/conf/httpd.conf
#服務(wù)的路徑
ServerRoot "/usr/local/httpd2"

#監(jiān)聽(tīng)端口
Listen 8888
Listen 8081

#管理員的郵件(若服務(wù)出現(xiàn)了問(wèn)題,會(huì)給管理員發(fā)郵件,前提是服務(wù)器能發(fā)出郵件)
ServerAdmin you@example.com

#域名信息
ServerName 127.0.0.1:80

#apache發(fā)布的目錄
DocumentRoot "/usr/local/httpd2/htdocs"

<IfModule dir_module>
   #默認(rèn)訪問(wèn)文件
    DirectoryIndex index.html
</IfModule>

#錯(cuò)誤日志
ErrorLog "logs/error_log"
#警告級(jí)別:info debug error warn
LogLevel warn

#啟用 rewrite 引擎
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com:8888 [NC]
RewriteRule ^/(.*)$ http://www.baidu.com/$1 [L]
LoadModule rewrite_module modules/mod_rewrite.so

#引用多域名的配置
#NameVirtualHost *:8081
Include conf/extra/httpd-vhosts.conf

#導(dǎo)入mpm詳細(xì)配置
Include conf/extra/httpd-mpm.conf
[root@VM_38_201_centos ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 
#虛擬主機(jī)監(jiān)聽(tīng)端口號(hào)
#NameVirtualHost *:8081
<VirtualHost *:8081>
    ServerAdmin webmaster@dummy-host.example.com
    #虛擬主機(jī)的發(fā)布目錄
    DocumentRoot "/usr/local/apache2/htdocs/www1/"
    ServerName www.test1.com
#    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common
</VirtualHost>
mpm的參數(shù)設(shè)置可能不對(duì),可自行百度進(jìn)行相應(yīng)設(shè)置
[root@VM_38_201_centos ~]# vim /usr/local/apache2/conf/extra/httpd-mpm.conf 
#prefork MPM
<IfModule mpm_prefork_module>
    #啟動(dòng)的工作進(jìn)程數(shù)  企業(yè)中一般配置8/10/16 不會(huì)太(默認(rèn)初始化生成數(shù)量)
    StartServers            8
    #最多同時(shí)xx進(jìn)程,一般與MaxClients相對(duì)應(yīng)或者大于MaxClients
    MinSpareServers         10000
    #最小空閑進(jìn)程
    MaxSpareServers         25
    #最大空閑進(jìn)程
    MaxRequestWorkers       75
    #最大支持多少個(gè)客戶端訪問(wèn)(最大工作進(jìn)程,每秒處理數(shù)量)
    MaxClients              1000
    #每個(gè)進(jìn)程處理的最大請(qǐng)求數(shù)(當(dāng)達(dá)到設(shè)置的數(shù)量后該線程會(huì)被kil掉,0代表永生)
    MaxConnectionsPerChild  10000
</IfModule>
#worker
<IfModule mpm_worker_module>
    StartServers             8
#    MaxClients               4000
    MinSpareThreads          25
    MaxSpareThreads          75
    #每個(gè)進(jìn)程有多少線程數(shù)
    ThreadsPerChild          25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   10000
#</IfModule>



參考文獻(xiàn):
http://www.178linux.com/84075
http://www.linuxidc.com/Linux/2017-10/148076.htm
推薦文章:
CentOS上安裝LAMP之Apache環(huán)境及安裝過(guò)程報(bào)錯(cuò)解決方案(純凈系統(tǒng)環(huán)境)http://blog.csdn.net/zhangatle/article/details/77416996

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容