一、httpd 簡介
目前CENTOS7默認安裝是HTTPD2.4,但是CENTOS6上默認是安裝HTTPD2.2,CENTOS6如果要安裝HTTPD2.4,需要通過編譯安裝實現,一般情況下,centOS7默認是安裝httpd2.4,若自己編譯特殊的模塊,需要源碼編譯安裝。httpd2.4源碼在 http://httpd.apache.org 下載。
源碼編譯的優勢:
1)自定義軟件功能;
2)優化編譯參數,提高性能;
3)解決不必要的軟件間依賴;
4)方便清理與卸載。
二、httpd的版本
httpd-1.3
httpd-2.0
httpd-2.2
httpd-2.4
三、編譯安裝
httpd-2.4 依賴於1.4+及以上版本的apr(apache portable runtime,能實現httpd跨平臺運行), apr-util
1、編譯安裝需要先安裝開發包組”Development Tools”
yum -y groupinstall "Development Tools"
查看組安裝
2、安裝前準備,安裝所需要的rpm包
yum -y install pcre-devel apr-devel apr-util-devel openssl-devel
3、將下載好的壓縮包加壓
tar xvf httpd-2.4.35.tar.bz2 -C /usr/local/src/ -C 指定解壓後的路徑
cd /usr/local/src/httpd-2.4.35/srclib/ 進入解壓後文件存放地目錄放入已下載完畢的依賴包
由於apr-util依賴於apr,所以先編譯安裝apr。
tar xvf apr-1.6.5.tar.gz
tar xvf apr-util-1.6.1.tar.gz
mv apr-util-1.6.1 apr-util 改變文件名稱 mv apr-1.6.5 apr
4、 進行編譯
cd /usr/local/src/httpd-2.4.35/ 或 cd .. 進入上一級目錄
./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-included-apr 具體解釋如下:
--sysconfdir=/etc/httpd24 指定配置文件路徑,如不指定,配置文件就在程序安裝的目錄;
--enable-so 啓動模塊動態裝卸載功能
--enable-ssl 編譯ssl模塊,要先安裝完畢
--enable-cgi 支持cgi機制(能夠讓靜態web服務器能夠解析動態請求的一個協議)
--enable-rewrite 支持url重寫(重定向功能)
--with-zlib 支持數據包壓縮
--with-pcre 支持正則表達式
--with-apr=/usr/local/apr 指明依賴的apr所在目錄(注意必須指明路徑)
--with-apr-util=/usr/local/apr-util/ 指明依賴的apr-util所在的目錄
--enable-modules=[all | most | ……] 啓用的模塊。all表示啓用所有模塊,most表示啓用大多數常用模塊
--enable-mpms-shared=all 以共享方式編譯的模塊。 其他選項爲[prefork | worker | event | all]
--with-mpm=prefork 指明httpd的工作方式爲prefork 。 3種MPM模塊爲 [prefork | worker | event]
enable類的一般用於指定啓用哪些功能,with類的一般表示依賴於哪些。
5、加載安裝內核
make -j 2 && make install
6、創建指定用戶
useradd -r -u 48 -c "Apache" -d /usr/share/httpd -s /sbin/nologin apache
useradd:
-u UID 指定 UID
-o 與-u 配合,不檢查uid的唯一性
-g GID/組名 指定用戶的主要組
-G GID/組名 指定用戶的附加組
-c "註釋" 用戶名
-d 路徑 用戶名 (路徑中的目錄名要先存在,而基名不要存在)
-s /sbin/nologin 指定用戶的默認shell
-N 使用users組做爲主要組
-r 創建系統用戶
-m 與-r 配合使用,在創建系統用戶時,同時創建家目錄
-M 創建非系統用戶時,不創建家目錄
-D 設置默認值,影響以下文件
useradd的默認設置: /etc/default/useradd
7、配置文件設置
vim /etc/httpd24/httpd.conf
8、重啓服務
/app/httpd24/bin/apachectl restart 若沒有開啓,需要start
9、查看進程
ps -ef |grep httpd
ps命令:將某個進程顯示出來
-e 顯示所有進程
-f 全格式
-h 不顯示標題
-l 長格式
-w 寬輸出
-a 顯示終端上的所有進程,包括其他用戶的進程
-r 只顯示正在運行的進程
-u 以用戶爲主的格式來顯示程序狀況
-x 顯示所有程序,不以終端機來區分
四、小總結
關於HTTP已啓動無法訪問的解決方法:
清除瀏覽器緩存後再次訪問。
沒有關閉selinux會出現訪問不到的情況
沒有關閉防火牆,則需要添加80端口,或者可以選擇關閉防火牆