Linux下web服务器Apache的常规部署

Apache

Apache是世界使用排名第一的Web服务器软件。提供http:// 超文本传输协议。

apache的基础信息:

主配置目录: /etc/httpd/conf
主配置文件: /etc/httpd/conf/httpd.conf
子配置目录:/etc/httpd/conf.d/
子配置文件: /etc/httpd/conf.d/*.conf #在子配置目录中所有的以.conf结尾的文件
默认发布目录: /var/www/html
默认发布文件:/var/www/html/index.html #默认发布目录中index.html文件名称固定
默认端口: 80
默认安全上下文:httpd_sys_content_t
程序开启默认用户:apache

apache日志:/etc/httpd/logs/*
curl -I www.baidu.com ##查看网站的具体信息
ss -antlupe | grep httpd ##查看关于httpd的相关设置信息

apache的安装部署

yum install httpd -y ##apache的软件
yum install httpd-manual -y ##apache的手册
或者 yum install httpd httpd-manual -y ##同时开启
systemctl start httpd
systemctl enable httpd

firewall-cmd --list-all ##列出火墙信息
firewall-cmd --permanent --add-service=http ##永久允许http
firewall-cmd --reload ##火墙重新加载策略
将selinux设置为Enforcing强制级别。


修改默认端口为8080



修改端口8888,发现httpd无法重启
系统selinux为Enforcing强制时候,当默认端口被修改成没有被selinux所允许的端口的时候,会导致服务无法启动,需要在selinux所允许的端口中添加所更改的端口。



如果此时报错 killed
需要做以下操作

重启后,重新semanage成功



修改默认发布文件
默认发布文件就是当访问apache时没有指定文件名称,服务默认访问的文件。
这个文件可以指定多个,有访问顺序,按照其在配置文件中的顺序进行访问。
vim /var/www/html/test.html #编写新的发布文件
vim /etc/httpd/conf/httpd.conf #修改主配置文件164行,将新写文件添加后后面

systemctl reload httpd.service # 重新加载服务
使用浏览器访问进行测试:

修改默认发布目录:

mkdir -p 新目录 #创建新的目录作为发布目录 vim 新目录/index.html #在准备好的目录中编写发布文件 semanage fcontext -a -t httpd_sys_content_t '/新目录(/.*)?' #由于selinux开启,需要更改将作为发布目录的新建目录的安全上下文。 restorecon -FvvR 新目录 #修改之后进行刷新 ,不刷新其安全上下文不会改变。 






发现访问受限。查看日志文件何处有问题

下面在配置文件里面授予权限


apache内部的访问控制

设置授权的ip客户端
Order deny,allow ##列表读取顺序:按照此处的先后顺序,先读取白名单中的内容,然后再读取黑名单中的内容,后面的列表会覆盖前面内容的部分


允许除了172.25.254.1的客户端访问


只允许172.25.254.1的客户端访问

设置授权的用户访问
生成用户认证文件:
htpasswd -cm /etc/httpd/totofile toto1 #第一次生成该文件 使用参数 -cm ;-c,表示创建,-m添加

htpasswd -m /etc/httpd/totofile toto2 #生成文件之后需要添加用户 使用参数 -m
cat /etc/httpd/totofile #查看认证文件信息 显示用户信息


第129行表示允许第126行中的文件里面包含的用户密码登陆

第130行表示只允许第126行的文件里面的jing1用户密码登陆




可能出现的问题哦
如果配置的是原来默认的目录的权限,会出现问题
能看到118和136 是同样的路径。第139行允许了所有的权限