7、apache(二):httpd2.4配置

一、httpd-2.4的新特性

 httpd-2.4新特性

httpd-2.4新模块

httpd-2.4修改了一些配置机制:

在centos6通常安装 httpd-2.2,如果要在centos6上安装httpd-2.4会很麻烦。因为centos提供的apr是1.3的版本,httpd使用的apr1.4版本。apr除了为httpd提供服务,也为其它程序提供服务。

centos7提供的apr,是1.4+的版本。

二、在centos6上,编译安装httpd-2.4:

官网下载地址httpd.apache.org/

在centos6上,安装httpd-2.4的前提:安装开发环境、安装pcre-devel

安装开发环境组件:yum groupinstall "Development Tools" "Server Platform Development" -y

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz   
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz   
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

 

编译安装apr、apr-util:

# 下载apr-1.5,或从官网下载
mget apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2
#进入解压后的apr源码文件夹,编译安装apr # .
/configure --prefix=/usr/local/apr # make && make install #进入解压后的apr-util源码文件夹,编译安装apr-util # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # make && make install
# yum install pcre-devel -y

 httpd-2.4编译安装:

# 创建运行httpd的用户、用户组
# groupadd -r apache
# useradd -r -g apache apache
# 进入解压后的httd-2.4源码文件夹,编译安装httd-2.4
# ./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
# make && make install

 启动服务:apachectl

[root@localhost /app/apache27]# /app/apache27/bin/apachectl start 
[root@localhost /app/apache27]# systemctl status firewalld.service  //查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@localhost /app/apache27]# netstat -ntl  //查看网络监听情况
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN  
[root@localhost /app/apache27]# ps -aux |grep httpd   //查看是否存在httpd服务            
root      60242  0.0  0.1  74784  2336 ?        Ss   15:57   0:00 /app/apache27/bin/httpd -k start
daemon    60243  0.0  0.2 365832  4276 ?        Sl   15:57   0:00 /app/apache27/bin/httpd -k start
daemon    60244  0.0  0.2 431368  4876 ?        Sl   15:57   0:00 /app/apache27/bin/httpd -k start
daemon    60245  0.0  0.2 365832  4276 ?        Sl   15:57   0:00 /app/apache27/bin/httpd -k start
daemon    60335  0.0  0.2 365832  4280 ?        Sl   15:57   0:00 /app/apache27/bin/httpd -k start
root      60364  0.0  0.0 112648   964 pts/0    R+   15:57   0:00 grep --color=auto httpd
[root@localhost /app/apache27]# ls
bin  build  cgi-bin  error  htdocs  icons  include  logs  man  manual  modules
[root@localhost /app/apache27]# cd htdocs/
[root@localhost /app/apache27/htdocs]# ls
index.html
[root@localhost /app/apache27/htdocs]# vim index.html

 

二、在centos7上,编译安装httpd-2.4:

同样,应该像centos6一样,先安装开发环境包:yum groupinstall "Development Tools" "Server Platform Development" -y,同时检查apr,apr-util,pcre-devel是否安装。

1:下载httpd2.4的源码包

# rpm -qa |grep httpd  //查询系统上是否已安装httpd包
# rpm -qai |grep httpd  //查询安装过的httpd包信息
# ls 
httpd-2.4.27.tar.bz2
# tar -jxf httpd-2.4.27.tar.bz2  //这里-j来解压后缀名为.tar.bz2的压缩包
# ls
httpd-2.4.27  httpd-2.4.27.tar.bz2  //解压完成后出现http-2.4.27目录

2.安装httpd-2.4的前提:安装开发环境

# yum groupinstall "Development Tools" -y

3.编译安装httpd-2.4

查看INSTALL或者READEME

#进入到解压后的目录下
# less INSTALL 

生成makefile文件

# ./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
--enable-ssl --with-ssl=/usr/local/openssl 
//这里configure是脚本文件,./configure执行它;照INSTALL里的说明,--prefix来指定安装路径,--sysconfdir来指定配置文件目录
# make && make install   # 进入httpd2.4源码文件夹,即./configure所在的目录,编译并安装httpd24

4.启用httpd服务

# apachectl start 
# systemctl status firewalld.service  //查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
# netstat -ntl  //查看网络监听情况
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
   LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN  
# ps -aux |grep httpd   //查看是否存在httpd服务 

 

四、配置httpd-2.4

# rpm -q httpd
# rpm -qc httd  # 查看httpd的配置文件

 

httpd-2.4配置文件,分为三类:

  • 主配置文件:/etc/httpd/conf/httpd.conf
  • 模块配置文件:/etc/httpd/conf.modules.d/*.conf
  • 辅助配置文件:/etc/httpd/conf.d/*.conf

centos6中服务控制:service 服务名称,如httpd {start|stop|restart|status|reload} 

centos7中服务控制:systemctl {start|stop|restart|status|reload} 服务名称,如httpd

1.切换mpm

# rpm -ql httpd #查看httd已安装的模块

查看httpd加载的模块

httpd -l

 查看httpd加载的动态模块

httpd -M

假设,更改mpm模型:从prefork改为

# cd /etc/httpd/conf.modules.d/
# vim 00-mpm.conf
# 将mod_mpm_prefork.so所在行注释掉,将mod_mpm_worker.so所在行启用
# systemctl restart httpd.service # 重启httpd服务
# ps aux # 查看httpd进程

2.修改中心主机:main server的DocumentRoot,同httpd2.2一样。

3.创建虚拟主机,同样要先将主配置文件httpd.conf的中心主机注释掉。

在httpd-2.4不一样的地方:虚拟主机不提供在主配置文件中,而是被包含在conf.d/目录下的配置文件。

示例,创建虚拟主机的配置文件:

vim conf.d/vhosts.conf

 httpd-2.4虚拟主机,同样支持基于IP、Port、FQDN三种类型,基于FQDN的不再需要NameVirtualHost指令。

 4.基于IP的访问控制法则。

httpd-2.4不再支持Order,Allow,Deny的控制语法;而是使用Require、Require not来控制

 

以中心主机为例

mkdir /www/htdocs
vim /www/htdocs/index.html  # any something
DocumentRoot "/www/htdocs"
<Directory "/www/htdocs">
<RequireAll>
Require not ip 172.16.10.6
</RequireAll>
Require all Granted
</Directory>
systemctl reload httpd 

5.启用ssl

启用模块:

LoadModule ssl_module modules/mod_ssl.so

 其它配置,同httpd-2.2的配置

 

6.将httpd加 入系统启动服务,开机启动:见第14节

 

posted on 2019-03-01 21:23  myworldworld  阅读(289)  评论(0)    收藏  举报

导航