一、什么是apche
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
二、安装服务
1.安装前准备
安装软件前首先要确保你的yum源所指定的目录是否正确,因为安装的软件需要解决几个依赖问题。
2.安装软件
安装httpd-manual: yum install httpd-manual,如下图表示安装成功:
3.服务环境设置
【1】开启服务:systemctl start httpd。
【2】服务apache
开机自启:systemctl enable httpd。
【3】关闭火墙:systemctl stop firewalld。
【4】火墙开机不自启:systemctl disable firewalld。
注:你也可以通过下面的方法配置环境:
【5】查看安装后生成的文件:rpm -lq httpd-manual
4.安装时出现key报错的解决方法:
在终端执行命令:key rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
三、apache基础信息
企业中常用作web服务,用来提供http://(超文本传输协议)
1.测试
安装完软件并进行环境配置后进行测试,找一台主机执行命令:http://服务器IP(也就是你安装软件的主机IP)/manual如下图:
2.apache的基础信息
【1】主配置目录:/etc/httpd/conf
【2】注配置文件:/etc/httpd/conf/httpd.conf
【3】子配置目录:/etc/httpd/conf.d
【4】子配置文件:/etc/httpd/conf.d/*.conf
【5】默认发布目录: /var/www/html
【6】默认发布文件: index.html
【7】默认端口:80
【8】默认安全上下文:httpd_sys_content_t
【9】程序开启默认用户:apache
【10】apache日志: /etc/httpd/logs/*
四、apache的配置问题
1.更改端口
清除浏览器缓存(注:因为更改配置后浏览器的缓存会保存之前实验的界面,造成实验误判):ctrl shift delete
【1】查看端口:ss -anutlpe | grep httpd
【2】在配置文件中更改端口:vim /etc/httpd/conf/httpd.conf
改 listen
【3】修改完成后重启服务:systemctl restart httpd,在浏览器测试:
2.修改默认发布文件
【1】默认发布文件就是访问apache时没有指定文件名称时默认访问的文件。文件的访问服从先来后到的顺序。
【2】新建文件:vim index.html
在文件中添加内容: <h1> DEFAULT </h1>(注:表示访问主机时,显示的内容为DEFAULT)
【3】在浏览器测试:在浏览器输入主机IP,如下图:
【4】新建文件:vim test.html,文件中添加内容:<h1> VICTORY </h1>(注:表示访问主机时,显示的内容为VICTORY)
【5】修改配置文件:vim /etc/httpd/conf/httpd.conf,找到下面的位置:
将新建的文件添加到文件中,注意顺序。如下图:
在浏览器中测试:
3.修改默认发布目录
【1】新建目录:mkdir -p /www/html,
【2】新建目录下创建html文件并添加下面的内容:
【3】进入主配置文件:vim /etc/httpd/conf/httpd.conf
【4】找到下面的位置:
作如下更改:
【5】设置安全上下文并加载:
【6】重启服务:[root@localhost ~]# systemctl restart httpd.service
【7】测试
3.apache的虚拟机
【1】建立虚拟机目录:mkdir /var/www/virtual/yuchen.westos.com/html -p
【2】vim /var/www/virtual/yuchen.westos.com/html/index.html
【3】添加内容
【4】建立默认子配置文件:vim /etc/httpd/conf.d/adefault.conf
【5】建立子配置文件:vim /etc/httpd/conf.d/yuchen.conf
【6】测试 vim /etc/hosts
注:在测试主机添加域名解析:
172.25.254.16 yuchen.westos.com
五、apache内部的访问控制
1.针对与主机的访问控制
【1】进入配置文件:vim /etc/httpd/conf.d/adefaults.html(已有文件),添加内容:
【2】新建目录和访问文件:
【3】重启服务并测试:
在172.25.254.92主机测试
在172.25.254.16主机测试
2.用户方式的访问控制
【1】创建用户:htpasswd -cm /etc/httpd/userpass admin (注:c表示创建m表示添加)
【2】添加用户:htpasswd -m /etc/httpd/userpass admin1
新建用户信息都存在/etc/httpd/userpass(注:自己指定)里:
【4】新建目录和文件:
[root@localhost conf.d]# mkdir /var/www/html/admin
[root@localhost conf.d]# vim /var/www/html/admin/index.html
文件中添加下面的内容:
【3】进入配置文件:vim adfault.conf
添加内容:
<Directory "/var/www/html/admin">
AuthUserFile /etc/httpd/userpass
AuthName "Please say father"
AuthType basic
Require user admin 允许admin登陆| Require valid-user 允许所有有意义的用户登陆
</Directory>
配置一:
配置二:
【4】测试一,只允许admin访问:
【5】测试二,允许存在的用户访问:
六、apache支持的语言
1.html前面已经用到。
2.php语言
【1】安装软件:yum install php -y
【2】创建文件:vim /var/www/html/index.php
<?php
phpinfo();
?>
【3】更改默认读取文件,在注配置文件作如下更改:
【4】重启服务并测试:systemctl restart httpd
3.cpi语言
【1】创建目录:mkdir -p /var/www/html/cgi
【2】配置安全上下文并加载:
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi
【3】新建文件并添加内容:添加内容在172.25.254.16/manual中
复制粘贴作少量更改:
【4】给文件可执行权限并测试:
chmod +x /var/www/html/cgi/index.cgi
/var/www/html/cgi/index.cgi
【5】在配置文件添加下面的内容:vim adefatul.conf
【6】重启服务并测试:
七、https保护客户端的数据在传输过程中不被破解
【1】安装两个软件:yum install crypto-utils -y;yum install mod_ssl -y
【2】获取证书,在终端中执行命令:genkey www.yuchen.com,你会进入下面的界面,选择next然后回车。
选择第二项,然后再选择next(注:不同大小选择,越大速度越慢)
现在打开一个虚拟机键盘随便输入,完成加密也就是等下图的进度条完成。
选择no。
选择next,如下图:
【3】添加证书:vim /etc/httpd/conf.d/ssl.conf
【4】重启服务测试:
八、设定https虚拟主机并设定网页重写
【1】创建目录:mkdir /var/www/html/virtual/login.westos.com/html
【2】创建html文件:vim /var/www/html/virtual/login.westos.com/html/index.html
【3】新建文件:/etc/httpd/conf.d/login.conf
添加内容
<Virtualhost *:443>
Servername login.westos.com
DocumentRoot /var/www/html/virtual/login.westos.com/html
Customlog "logs/login.logs" combined
SSLEngine on
SSLCertificateFile 证书文件
SSLCertificateKeyFile 钥匙文件
</VirtuallHost>
<Directory>
Require all granted
</Directory>
<VirtualHost *:80>
Servername login.westos.com
RewriteEngine On
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
注:
【1】^(/.*)$ ##客户在浏览地址栏输入的所有字符
【2】https:// ##强制客户加密访问
【3】%{HTTP_HOST} ##客户请求主机
【4】$1 ##"$1"表示^(/.*)$的值
【5】[redirect=301] ##临时重写,302永久转换
测试: