虚拟机配置:
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #配置IP地址
编译安装需要的依赖包:
mount /dev/cdrom #挂载
cd /etc/yum.repos.d/ #配置yum仓
mkdir bak
mv *.repo bak
cp bak/CentOS-Media ./ #复制文件到当前目录
vim CentOS-Media #编辑文件
yum -y install apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre gcc gcc-c++ make apr* #安装需要的依赖包
上传软件包并解压软代码软件,配置,编译,安装
[root@apache1 yum.repos.d]# rz #(xshell上传文件)
z waiting to receive.**B0100000023be50
[root@apache1 yum.repos.d]# tar zxf httpd-2.4.43.tar.gz -C /usr/src #解压
[root@apache1 yum.repos.d]# cd /usr/src/httpd-2.4.43/
[root@apache1 httpd-2.4.43]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-list --enable-cgi && make && make install
--prefix=/usr/local/httpd指定服务程序安装目录
--enable-so启用动态加载模块功能
--enable-rewrite启用网页重写功能
--enable-charset-lite启动支持多字符集功能
--enable-cgi启用CGI脚本支持
[root@apache1 httpd-2.4.43]# ls /usr/local/httpd/
/usr/local/httpd/bin #存放httpd服务的执行程序文件
/usr/local/httpd/cgi-bin #存放CGI程序文件
/usr/local/httpd/conf #存放配置文件
/usr/local/httpd/htdocs #存放网页文件,例如:html php等
/usr/local/httpd/lib #存放执行程序管理库文件
/usr/local/httpd/logs #存放日志文件
/usr/local/httpd/man #存放帮助手册文件
/usr/local/httpd/modu
优化程序执行路径,使用软连接(将执行程序连接到其他目录下)或者修改默认搜索路径PATH环境变量
[root@apache1 httpd-2.4.43]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
查看httpd服务程序信息
[root@apache1 httpd-2.4.43]# httpd -v
查询httpd已经加载的模块信息
[root@apache1 httpd-2.4.43]# httpd -l
添加httpd系统服务
- chkconfig方式
[root@apache1 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@apache1 ~]# vim /etc/init.d/httpd
确保脚本有执行权限
[root@apache1 ~]# ll /etc/init.d/httpd #查看是否有执行权限
[root@apache1 ~]# chkconfig --add httpd
[root@apache1 ~]# systemctl start httpd
[root@apache1 ~]# netstat -lnpt |grep 80
Web站点部署过程
1.确定网站名称和IP地址
2.配置并启动httpd服务
[root@apache1 ~]# vim +200 /usr/local/httpd/conf/httpd.conf
[root@apache1 ~]# httpd -t
[root@apache1 ~]# vim /usr/local/httpd/htdocs/index.html
[root@apache1 ~]# vim /usr/local/httpd/htdocs/index.html
[root@apache1 ~]# systemctl restart httpd
[root@apache1 ~]# netstat -lnpt |grep 80
用浏览器访问:http://192.168.200.4
[root@apache1 ~]# tail -f /usr/local/httpd/logs/access_log #访问日志
部署DNS服务
[root@apache1 ~]# yum -y install bind
[root@apache1 ~]# vim /etc/named.conf
[root@apache1 ~]# vim /var/named/liuxingye.com.zheng
[root@apache1 ~]# chown :named /var/named/liuxingye.com.zheng
[root@apache1 ~]# systemctl restart named
然后用浏览器访问:www。liuxingye.com(注意:网关必须指向服务器)
用宿主机cmd 去解析网址
解析找不到需要把宿主机指向DNS服务器(即虚拟机设置的DNS服务)
再利用命令提示符(cmd)解析
用浏览器访问网址:www.liuxingye.com
- Apache访问控制及虚拟主机配置
访问控制目的:
为了更好的控制对网站资源(网页)的访问,可以为特定的网站目录添加访问授权。
常见的访问控制方式:
1.客户机地址限制
2.用户授权限制
- 客户机的地址限制
通过Require配置项,可以根据主机的主机名或IP 地址来确定是否允许客户端访httpd服务器的主配置文件httpd.conf中的<Location>、<Directory>、<Files>、<Limit>配置段中均可使用。Require配置项来控制客户端的访问。使用Require配置项时,地址的形式可以是IP地址,网络地址,主机名或域名,使用all表示任意地址。
仅允许192.168.200.5主机可以访问:
#虚拟机2(客户机)配置
配置虚拟机2的ip地址,dns指向Dns服务器
curl 192.168.200.4 测试虚拟机2(客户机)能否访问(浏览器访问)
[root@apache1 ~]# vim /usr/local/httpd/conf/httpd.conf
[root@apache1 ~]# systemctl restart httpd
#虚拟机测试机ip.5
此时只有IP地址192.168.200.5 能登录
仅拒绝192.168.200.2主机可以访问:
[root@apache1 ~]# vim /usr/local/httpd/conf/httpd.conf
[root@apache1 ~]# systemctl restart httpd
宿主机192.168.200.2不可访问
测试机192.168.200.5可以访问
- 用户授权限制
用户授权限制是apache允许指定用户使用用户名和密码访问特定资源的一种方式。
l摘要认证(Digest) 在配置时加上 --enable-auth-digest(部分浏览器不支持)
l基本认证(Basic) apache服务的基本功能,不需要额外的选项支持
用户访问控制过程:
认证 识别用户身份
授权 允许用户访问特定目录区域
创建用户认证数据库文件
[root@apache1 ~]# htpasswd -c /usr/local/httpd/conf/.user Rich #设置的用户名是Rich
创建用户密码 两次输入密码为1
[root@apache1 ~]# cat /usr/local/httpd/conf/.user
注意:只有在第一次创建文件时使用-c选项,后期添加用户时不能使用,否则前期创建的用户将会被覆盖
添加用户授权配置
[root@apache1 ~]# systemctl restart httpd
注意:用户访问授权和主机地址访问授权同时设置时,设置的主机访问控制优先生效。
用户访问授权和主机地址访问授权同时设置时:
主机访问控制中允许的主机可以直接访问网站,不需要通过用户授权;
主机访问控制中拒绝的主机不可以直接访问网站,需要使用用户授权验证;
构建虚拟web主机
- 构建基于域名的虚拟主机
[root@apache1 ~]# vim /etc/named.conf
[root@apache1 ~]# cd /var/named/
[root@apache1 named]# cp -p liuxingye.com.zheng teacher.com.zheng
[root@apache1 named]# vim teacher.com.zheng
[root@apache1 named]# systemctl restart named
对不同的域名准备不同的网页文件
[root@apache1 ~]# cd /usr/local/httpd/htdocs/
[root@apache1 htdocs]# ls
index.html
[root@apache1 htdocs]# mkdir liuxingye
[root@apache1 htdocs]# mkdir teacher
[root@apache1 htdocs]# vim liuxingye/index.html
www.liuxingye.com
[root@apache1 htdocs]# vim teacher/index.html
编辑虚拟主机配置文件
[root@apache1 htdocs]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
[root@apache1 htdocs]# vim +491 /usr/local/httpd/conf/httpd.conf
[root@apache1 htdocs]# systemctl restart httpd
用浏览器浏览测试
构建基于IP的虚拟主机(服务器需要配置多个IP地址,使用不广泛)
[root@apache1 ~]# ifconfig ens33:0 192.168.200.10
[root@apache1 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
#只需要将teacher的IP改一下就可以
[root@apache1 ~]# systemctl restart httpd
浏览器测试
基于TCP端口的虚拟主机
[root@apache1 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
[root@apache1 ~]# vim /usr/local/httpd/conf/httpd.conf
[root@apache1 ~]# systemctl restart httpd
[root@apache1 ~]# netstat -lnpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 88658/httpd