源码安装httpd-2.4
-
httpd依赖于apr-1.4+,apr-util-1.4+,[apr-icon]
apr:apache portable runtime
//安装httpd服务之前,需要安装环境和相关开发工具(安装过程省略)
[root@xaii-client ~]# yum groups mark install "开发工具" //可用yum grouplist查看
[root@xaii-client ~]# groupadd -r apache //创建apache组
[root@xaii-client ~]# useradd -r -M -s /sbin/nologin -g apache apache //创建apache用户
[root@xaii-client ~]# yum -y install openssl-devel pcre-devel expat-devel libtool
//下载httpd所需源码包,并安装,安装顺序为:
①apr-1.6.5
②apr-util-1.6.1
③httpd-2.4.37
[root@xaii-client src]# tar -xf apr-1.6.5.tar.gz
[root@xaii-client apr-1.6.5]# cd apr-1.6.5
[root@xaii-client apr-1.6.5]# vim configure
cfgfile="${ofile}T"
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
# $RM "$cfgfile" //将此行加上注释,或者删除此行
[root@xaii-client apr-1.6.5]# yum -y install gcc gcc-c++
[root@xaii-client apr-1.6.5]# ./configure --prefix=/usr/local/apr //执行配置文件
[root@xaii-client apr-1.6.5]# make && make install //安装
[root@xaii-client src]# tar xf apr-util-1.6.1.tar.gz
[root@xaii-client src]# cd apr-util-1.6.1
[root@xaii-client apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ //apr-util-1.6.5依赖于apr-1.6.1
[root@xaii-client src]#tar xf httpd-2.4.37.tar.gz
[root@xaii-client src]#cd httpd-2.4.37
[root@xaii-client httpd-2.4.37]#./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-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
[root@xaii-client httpd-2.4.37]# make && make install
//添加环境变量
[root@xaii-client ~]# vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
[root@xaii-client ~]# . /etc/profile.d/httpd.sh
[root@xaii-client ~]# vim /etc/httpd24/httpd.conf
// 将ServerName www.example.com:80这一行取消注释
//利用apachectl来控制httpd,不是用systemctl,关闭防火墙
[root@xaii-client ~]# apachectl start
[root@xaii-client ~]# systemctl stop firewalld
[root@xaii-client ~]# setenforce 0
验证:
虚拟主机
三类虚拟主机
- 相同IP不同端口
- 不同IP相同端口
- 相同IP相同端口不同域名
访问控制法则
法则 | 功能 |
---|---|
Require all granted | 允许所有主机访问 |
Require all deny | 拒绝所有主机访问 |
equire ip IPADDR | 授权指定来源地址的主机访问 |
Require not ip IPADDR | 拒绝指定来源地址的主机访问 |
Require host HOSTNAME | 授权指定来源主机名的主机访问 |
Require not host HOSTNAME | 拒绝指定来源主机名的主机访问 |
- 注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问
实例
// 添加虚拟主机,修改httpd的主配置文件
[root@xaii-client ~]# vim /etc/httpd24/httpd.conf
//在配置文件的最后加上如下内容
[root@xaii-client html]# tail -30 /etc/httpd24/httpd.conf
#virtual host 1 # 虚拟主机1的配置
<VirtualHost 192.168.157.19:80>
ServerName www.xaii.com
DocumentRoot "/var/www/html/xaii"
ErrorLog "/var/log/httpd/xaii/error_log"
CustomLog "/var/log/httpd/xaii/access_log" combined
<Directory /var/www/html/xaii>
<RequireAll>
Require all granted
Require not ip 192.168.157.33
</RequireAll>
</Directory>
</VirtualHost>
# virtual host 2 # 虚拟主机2的配置
<VirtualHost 192.168.157.19:80>
ServerName www.bebejo.com
DocumentRoot "/var/www/html/bebejo"
ErrorLog "/var/log/httpd/bebejo/error_log"
CustomLog "/var/log/httpd/bebejo/access_log" combined
<Directory /var/www/html/bebejo>
<RequireAll>
Require all granted
</RequireAll>
</Directory>
</VirtualHost>
//创建网页目录并修改属主属组
[root@xaii-client html]# mkdir xaii bebejo
[root@xaii-client html]# chown -R apache.apache xaii
[root@xaii-client html]# chown -R apache.apache bebejo
[root@xaii-client html]# ll
总用量 0
drwxr-xr-x 2 apache apache 6 1月 17 18:32 bebejo
drwxr-xr-x 2 apache apache 6 1月 17 18:32 xaii
//创建网页
[root@xaii-client html]# echo "hello l am xaii" > xaii/index.html
[root@xaii-client html]# echo "hello l am bebejo" > bebejo/index.html
//创建相应网页的日志目录
[root@xaii-client log]# mkdir httpd
[root@xaii-client log]# cd httpd/
[root@xaii-client httpd]# mkdir xaii bebejo
[root@xaii-client httpd]# chown -R apache.apache /var/lo
local/ lock/ log/
[root@xaii-client httpd]# chown -R apache.apache /var/log/httpd/
[root@xaii-client httpd]# ll
总用量 0
drwxr-xr-x 2 apache apache 6 1月 17 18:39 bebejo
drwxr-xr-x 2 apache apache 6 1月 17 18:39 xaii
启动服务并查看是否有80端口
[root@xaii-client httpd]# apachectl stop
[root@xaii-client httpd]# systemctl start httpd
[root@xaii-client httpd]# ss -antl |grep 80
LISTEN 0 128 :::80 :::*
验证