Apache2.4.25編譯安裝之虛擬主機For Centos7

    安裝之前準備:

  1. 配置好防火牆,selinux,時區.

  2. 檢查系統是否安裝了httpd服務

  3. yum install gcc gcc-c++ zlib-devel 

  4. 下載軟件,pcre,apr,apr-util,apache

wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz

wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.gz

wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

wget http://apache.fayea.com/httpd/httpd-2.4.25.tar.gz


創建軟件安裝目錄及下載目錄

1.下載目錄: /opt/dowanload

2.安裝目錄:

[root@bbs ~]# tree -L 1 /opt/app/

/opt/app/                      #主目錄

├── apache -> /opt/app/apache2.4.25  #軟連接,方便以後升級及管理

├── apache2.4.25               #apache安裝目錄,所有文件存放地

├── apr                     #apr 目錄

├── apr-util                 #apr-util 目錄

└── pcre                    #pcre 目錄


編譯安裝依賴包

tar zxf apr apr-util pcre

先安裝apr,apr-util依賴apr


#cd /opt/download

#cd  apr-1.5.2

#./configure --prefix=/opt/app/apr

#make && make install


#cd apr-util-1.5.4

#./configure --prefix=/opt/app/apr-util --with-apr=/opt/app/apr

#make && make install 


#cd pcre-8.40

#./configure --prefix=opt/app/pcre

#make && make install


開始編譯安裝apache

# tar zxf  httpd-2.4.25.tar.gz

# cd http-2.4.25

# ./configure --prefix=/opt/app/apache2.4.25 --with-apr=/opt/app/apr --with-apr-util=/opt/app/apr-util --with-pcre=/opt/app/pcre --with-mpm=worker --enable-rewrite --enable-so --enable-headers --enable-expires --enable-deflate

# make && make install


虛擬主機篇(先備份好需要改動的配置文件)

#軟連接 ln -s /opt/app/apache2.4.25 /opt/app/apache

默認安裝完成後有如下文件:

[root@bbs extra]# tree -L 1 /opt/app/apache

/opt/app/apache

├── bin    #啓動目錄

├── build                                  

├── cgi-bin

├── conf

├── error

├── htdocs

├── icons

├── include

├── logs

├── man

├── manual

└── modules


[root@bbs ~]# tree -L 1 /opt/app/apache/conf/

/opt/app/apache/conf/

├── extra    #此文件存放虛擬主機配置文件等           

├── httpd.conf #主配置文件

├── magic                             

├── mime.types                       

└── original


配置虛擬主機

[root@bbs extra]# tree -L 1 /opt/app/apache/conf/extra

/opt/app/apache/conf/extra

├── httpd-autoindex.conf

├── httpd-dav.conf

├── httpd-default.conf

├── httpd-info.conf

├── httpd-languages.conf

├── httpd-manual.conf

├── httpd-mpm.conf

├── httpd-multilang-errordoc.conf

├── httpd-ssl.conf

├── httpd-userdir.conf

├── httpd-vhosts.conf         #虛擬主機文件,

├── httpd-vhosts.conf.2017-04-05

└── proxy-html.conf


編輯虛擬主機文檔,跟2.4版本前的稍微有些變動

[root@bbs extra]# egrep -v "^$|#"  /opt/app/apache/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>                  

    ServerAdmin sadoc.blog.51cto.com      

    DocumentRoot "/var/www"             #web網站存放目錄,請mkdir好目錄

    ServerName bbs.52cto.com            #域名

    ServerAlias 52ctt.com              #域名別名

    ErrorLog "logs/bbs-error_log"         #錯誤日誌

    CustomLog "logs/bbs-access_log" common   #客戶端訪問日誌

</VirtualHost>

修改主配置文件

DocumentRoot "/opt/app/apache2.4.25/htdocs"

<Directory "/opt/app/apache2.4.25/htdocs">

    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted

</Directory>

#新增如下,不增加會報錯403錯誤.

<Directory "/var/www">

   Options Indexes FollowSymLinks

   AllowOverride None

   Require all granted

</Directory>


#取消了vhost的加載註釋

Include conf/extra/httpd-vhosts.conf


apache服務啓動方式:

[root@bbs ~]# /opt/app/apache/bin/apachectl -t  #檢查配置文件是否正常.

Syntax OK   

[root@bbs ~]# /opt/app/apache/bin/apachectl -k start  #啓動服務


自己手動寫啓動腳本,方便啓動.

腳本寫的很簡單,也可以用進程數量判斷

[root@bbs ~]# cat /etc/init.d/httpd 


#!/bin/bash

#author:http://sadoc.blog.51cto.com/

#2017-04-06


#加載函數庫

. /etc/rc.d/init.d/functions


#定義變量本腳本以Pid文件是否存在判斷啓動.

PID="/opt/app/apache/logs/httpd.pid"

STARTING="/opt/app/apache/bin/apachectl"


start(){

if [ ! -s "$PID" ];then

  $STARTING -k start

  action "Apache Start" /bin/true

fi


}


stop(){

if [ -s "$PID" ];then

  $STARTING -k stop

  action "Apache Stop:" /bin/true

fi


}


case "$1" in


start)

start

;;

stop)

  stop

  

  ;;


restart)

  $0 stop;

  $0 start;

  

  ;;

 

esac

# chmod +x /etc/init.d/httpd 

用了腳本後,直接yum方式啓動,centos7可以用systemctl管理啓動

[root@bbs ~]# systemctl status httpd.service  

● httpd.service - (null)

   Loaded: loaded (/etc/rc.d/init.d/httpd; bad; vendor preset: disabled)

   Active: active (running) since Wed 2017-04-05 17:20:03 CST; 22h ago

   Docs: man:systemd-sysv-generator(8)

  Process: 3873 ExecStart=/etc/rc.d/init.d/httpd start (code=exited, status=0/SUCCESS)

   CGroup: /system.slice/httpd.service

           ├─3877 /opt/app/apache2.4.25/bin/httpd -k start

           ├─3879 /opt/app/apache2.4.25/bin/httpd -k start

           ├─3880 /opt/app/apache2.4.25/bin/httpd -k start

           ├─3881 /opt/app/apache2.4.25/bin/httpd -k start

           └─3963 /opt/app/apache2.4.25/bin/httpd -k start

Apr 05 17:20:03 bbs.52cto.com systemd[1]: Starting (null)...

Apr 05 17:20:03 bbs.52cto.com httpd[3873]: Apache Start [  OK  ]

Apr 05 17:20:03 bbs.52cto.com systemd[1]: Started (null).


# 查看服務端口

[root@bbs ~]# lsof -i:80

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

httpd   3877   root    4u  IPv6  29554      0t0  TCP *:http (LISTEN)

httpd   3879 daemon    4u  IPv6  29554      0t0  TCP *:http (LISTEN)

httpd   3880 daemon    4u  IPv6  29554      0t0  TCP *:http (LISTEN)

httpd   3881 daemon    4u  IPv6  29554      0t0  TCP *:http (LISTEN)

httpd   3963 daemon    4u  IPv6  29554      0t0  TCP *:http (LISTEN)

[root@bbs ~]# ps -ef | grep httpd

root           3877      1  0 Apr05 ?           00:00:03 /opt/app/apache2.4.25/bin/httpd -k start

daemon     3879   3877  0 Apr05 ?        00:00:00 /opt/app/apache2.4.25/bin/httpd -k start

daemon     3880   3877  0 Apr05 ?        00:00:00 /opt/app/apache2.4.25/bin/httpd -k start

daemon     3881   3877  0 Apr05 ?        00:00:00 /opt/app/apache2.4.25/bin/httpd -k start

daemon     3963   3877  0 Apr05 ?        00:00:00 /opt/app/apache2.4.25/bin/httpd -k start

root           6074   2380  0 15:45 pts/0   00:00:00 grep --color=auto httpd


查PID文件

[root@bbs ~]# cat /opt/app/apache/logs/httpd.pid 

3877




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章