參考文章
http://www.cnblogs.com/jipeng87/p/6308725.html
http://www.centoscn.com/CentosServer/www/2015/0417/5204.html
前言
Apache至少需要apr、apr-util、pcre組件的支持。
APR(Apache portable Run-time libraries,Apache可移植運行庫)的目的如其名稱一樣,主要為上層的應用程序提供一個可以跨越多操作系統平台使用的底層支持接口庫。在早期 的Apache版本中,應用程序本身必須能夠處理各種具體操作系統平台的細節,並針對不同的平台調用不同的處理函數。隨着Apache的進一步開 發,Apache組織決定將這些通用的函數獨立出來並發展成為一個新的項目。這樣,APR的開發就從Apache中獨立出來,Apache僅僅是使用 APR而已。目前APR主要還是由Apache使用,不過由於APR的較好的移植性,因此一些需要進行移植的C程序也開始使用APR。
APR-util是在APR的基礎上提供了更多的數據結構和操作系統封裝接口。APR-util依賴於APR,必須先安裝APR再安裝APR-util。
PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括perl兼容的正則表達式庫。
源碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。
1.查詢是否安裝了apache服務器httpd
[root@localhost src]# rpm -qa|grep httpd
httpd-2.4.6-45.el7.centos.x86_64
httpd-tools-2.4.6-45.el7.centos.x86_64
2.卸載系統自動裝的apache服務器httpd
[root@localhost src]# httpd -k stop #停止httpd服務器
[root@localhost src]# yum remove httpd #卸載httpd服務器
4 下載httpd-2.4.25 apr-1.5.2 apr-util-1.5.4 pcre-8.40
[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.25.tar.gz
[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.5.2.tar.gz
[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
[root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
5 檢查系統是否安裝了GCC
[root@localhost src]# gcc
bash: gcc: 未找到命令... #出現未找到命令提示,說明沒有安裝GCC
6 安裝GCC和gcc-c++
[root@localhost src]# yum -y install gcc
[root@localhost pcre-8.40]# yum -y install gcc-c++
注意:如果沒有安裝gcc-c++,那么在 執行./configure -prefix=/usr/local/pcre 時會報 configure: error: You need a C++ compiler for C++ support. 錯誤
7 將下載的壓縮文件拷貝到/usr/local目錄下
[root@localhost src]# cp apr-1.5.2.tar.gz /usr/local
[root@localhost src]# cp apr-uril-1.5.4.tar.gz /usr/local
[root@localhost src]# cp httpd-2.4.25.tar.gz /usr/local
8 編譯安裝apr-1.5.2
#解壓縮apr文件
[root@localhost local]# tar -zxvf apr-1.5.2.tar.gz
#改變目錄到apr-1.5.2
[root@localhost local]# cd apr-1.5.2
#指定apr的安裝目錄為/usr/local/apr 配置
[root@localhost apr-1.5.2]# ./configure -prefix=/usr/local/apr
#編譯安裝
[root@localhost apr-1.5.2]# make && make install
9 編譯安裝 apr-uril-1.5.4
#解壓縮apr-util文件
[root@localhost local]# tar -zxvf apr-util-1.5.4.tar.gz
#改變目錄到apr-util-1.5.4/
[root@localhost local]# cd apr-util-1.5.4/
#指定apr-util的安裝路徑,指定apr-util所對應的apr
[root@localhost apr-util-1.5.4]# ./configure -prefix=/usr/local/apr-util -with-apr=/usr/local/apr
#編譯安裝
[root@localhost apr-util-1.5.4]# make && make install
10 編譯安裝pcre
#卸載系統自帶的pcre
[root@localhost apr-util-1.5.4]# rpm -qa pcre
pcre-8.32-15.el7_2.1.x86_64
#解壓縮apr-util文件
[root@localhost local]# tar -zxvf pcre-8.40.tar.gz
#改變目錄到pcre-8.40/
[root@localhost local]# cd pcre-8.40/
#指定prce的安裝路徑,指定apr-util所對應的apr
[root@localhost pcre-8.40]# ./configure -prefix=/usr/local/pcre
#編譯安裝(make是編譯 make install是安裝)
[root@localhost pcre-8.40]# make && make install
11 編譯安裝apache
編譯和安裝apache分為動態、靜態兩種方式。動態編譯是指在以后的使用中隨時調整配置文件就可以加載模塊;靜態則相反,在編譯時就決定了相應的模塊。
#解壓縮httpd-2.4.25文件
[root@localhost local]# tar -zxvf httpd-2.4.25.tar.gz
#改變目錄到httpd-2.4.25/
[root@localhost local]# cd httpd-2.4.25/
#配置
[root@localhost httpd-2.4.25]# ./configure -prefix=/usr/local/apache2 -sysconfdir=/etc/httpd -enable-so -enable-rewrite -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util -with-pcre=/usr/local/pcre
#編譯安裝
[root@localhost httpd-2.4.25]#make && make install
12配置apache防火牆
#永久開放http服務
[root@localhost httpd-2.4.25]# firewall-cmd --permanent --add-service=http
success
#重新加載防火牆
[root@localhost httpd-2.4.25]# firewall-cmd --reload
success
12 啟動,停止apache服務
#編輯httpd.conf文件
[root@localhost httpd-2.4.25]#vi /etc/httpd/httpd.conf
在#ServerName www.example.com:80 下增加下面的語句
ServerName localhost:80
#使用腳本控制Apache,啟動服務
[root@localhost ~]# /usr/local/apache2/bin/apachectl start
#使用腳本控制Apache,停止服務
[root@localhost ~]# /usr/local/apache2/bin/apachectl stop
#服務啟動后,在瀏覽器輸入http://localhost瀏覽器內容顯示出it works,該內容存在於/usr/local/apache2/htdocs/index.html文件中
13 設置apache開機啟動
方法一
1、將apachectl命令拷貝到/etc/init.d目錄下,改名為httpd
# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
2、編輯/etc/init.d/httpd文件,在第1行#!/bin/sh的后面添加如下兩行
# vi /etc/init.d/httpd
# chkconfig: 2345 70 30 //注意:前面的#號是要保留的
# description: Apache //注意:前面的#號是要保留的
其中,所增加的第二行中三個數字,第一個表示在運行級別2345下啟動Apache,第二、三是關於啟動和停止的優先級配置。
3、Apache服務尚未被添加到chkconfig列表中,需要使用–add參數將其添加進去
[root@localhost init.d]# chkconfig --add httpd
[root@localhost init.d]# chkconfig --list httpd
通過上面的設置,每次開機時apache服務都是自動啟動的
注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。
如果您想列出 systemd 服務,請執行 'systemctl list-unit-files'。
欲查看對特定 target 啟用的服務請執行
'systemctl list-dependencies [target]'。
httpd 0:關 1:關 2:開 3:開 4:開 5:開 6:關
注:chkconfg是檢查,設置系統的各種服務。
chkconfg語法如下:
chkconfig --list [name]