几种中间件:
IIS、Apache、Nginx
几种架构:
LAMP、LNMP、LNMPA
yum仓库的格式
[ ]
name=
baseurl=
enable=
gpgcheck=
多个源的情况下,网络源以速度优先,本地源以字母优先,混合的情况下,最新版本优先,都是最新的情况下,本地为主
下载软件包:httpd
下载完成后,需要启动该服务,并加入开机启动项
出现默认页面的可能性:
- 网站目录内无文件
- 无权限
网络默认路径:/var/www/html
编辑index.html
更换网站默认路径,如/home/wwwroot(home目录下是用户的私有文件,正常来说一般服务不能访问到)
- 找到主配置文件:/etc/httpd/conf/httpd.conf
- DocumentRoot
- <Directory>
- 新建文件夹
- 重启服务(此时还是出席默认页面)
- 编辑index.html
- 刷新(此时出现报错,因为SELinux)
SELinux功能:
- 管理SELinux域:对服务功能进行限制
- 管理SELinux安全上下文:限制文件权限
查看SELinux上下文:ls -ldZ /var/www/html
SELinux主配置文件:/etc/selinux/config
- 状态:enforce/permissive/disable(强制开启/警告/禁用)
SELinux命令:
- setenforce:0/1—临时关闭/开启SELinux
- setsebool:设置SE布尔值
- getsebool:获取SE布尔值(需要加-a参数)
- semanage:管理SELinux上下文(semanage fcontext -a -t XXXXX /dir)(后面没有斜杠)
- restorecon:让SELinux值立即生效(restorecon -Rv /dir)
批量新建网站:
- 用户目录:/etc/httpd/conf.d/userdir.conf
- UserDir XXXXX(每个用户在自己的家目录中新建XXX目录,然后就有自己的网站功能了)
- 更改目录读写权限:chmod -Rf 777 XXXX
- 重启httpd
- 访问:http://XX.XX.XX.XX/~(用户名)—SELinux阻断访问
- 修改SELinux域:setsebool -P httpd_enable_homedirs=on
需要密码访问:
- htpasswd -c /etc/httpd/passwd xiaoqi
- xiaoqi是专门用来做网站验证的
- 开启密码访问:/etc/httpd/conf.d/userdir.conf
- 最末行添加
- 重启服务
<Directory "/home/*/public_html">
allowoverride all #是否允许伪静态(默认允许)
authuserfile /etc/httpd/passwd #密码存放位置
authname xxxxxxxxx #描述信息
authtype basic #验证类型
require user xiaoqi #用户名称
虚拟网站主机(在一个主机内部署多个网站)
- 主机上配置多个IP
- 网站主目录下新建多个目录
- 目录中新建index.html
- 在httpd主配置文件中启用虚拟主机功能(A)
- 重启服务
- 设置SELinux(semanger,没有-R递归参数)
- 生效(restorecon -Rv /XXXXX)
(A)
<Virtualhost 192.168.10.10 #虚拟网站主机IP>
Documentroot /XXXXX #虚拟网站主机主目录
servername www.xxxx.com #虚拟网站主机域名
<directory /XXXXX> #设置虚拟网站主机目录权限
allowoverride none #是否允许伪静态
require all granted #允许所有人的请求
</directory>
</Virtualhost>
hosts文件
- 存在路径/etc/hosts
- 强制解析
- 192.168.10.10 www.xxxxx.com
开启端口访问
- 配置httpd主配置文件:listen XXX
- 在虚拟网站主机配置中,添加IP的时候后面接上端口
- semanage port -l | grep http(查看httpd服务监听端口)
- semanage port -a -t http_port_t -p -tcp XXXX(以上属于SELinux域的范畴)
设置访问条件
- 编辑httpd主配置文件:在网站directory参数里面,加上setenvif
- 如setenvif User -Agent “Firefox” ff=1 #ff的意思是前面的env定义为ff,=1的意思是启用该策略
- 写上策略:Order
Order allow,deny #先allow,后deny
allow from env=ff #如果env是ff的话,放行