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) 收藏 举报