apache是配置静态网站服务。
1. 安装apache yum install httpd 然后重启服务systemctl start httpd 设置开机有效 systemctl enable httpd
2. 在网址位置输入服务端192.168.10.10可打开红帽的测试网页,打开此网页说明两个问题:1. 服务配置成功了,可以运行;2. 对应保存网页数据目录下无网页资源或者无权限。
3. 默认网站数据路径/var/www/html,当前网站普通页面名称为index.html
4. 可以修改index.html的内容,显示在页面上。
5. 修改网站保存数据的目录为/home/lwyroot并自添加index.html文件。需要修改httpd服务程序的主配置文件:
# vim /etc/httpd/conf/httpd.conf
大概119行 DocumentRoot "/home/lwyroot"
大概124行 <Directory "/home/lwyroot">
6. 配置完新路径后,重启服务发现,页面没有按照预想的页面显示。这是因为SELinux权限的问题
7. 关闭SELinux安全子系统:setenforce 0 页面便可是正常显示。0表示关闭,1表示打开。
8. SELinux安全子系统是一个强制访问控制的安全子系统,目的是为了让各个服务进程都收到约束,使其仅获取到本该获取的资源。SELinux域和SELinux安全上下文是Linux系统的双保险。SELinux域可以确保服务程序做不了出格的事,而SeLinux安全上下文可以确保文件资源仅能被其所属的服务所访问。SELinux具有三种配置模式:
enforcing 强制启用安全策略模式,将拦截服务的不合法请求
permissive 遇到服务越权访问时,只发出告警而不强制拦截
disabled 对于服务越权行为不警告也不强制拦截
8.1 编辑模式:vim /etc/selinux/config
8.2. 查询模式 getenforce
一般情况下,我们最好打开SELinux安全策略,并且模式设置为enforcing
9. 设置SELinux安全上下文值。
9.1 首先查询一下不同路径的安全上下文值:ls -Zd /var/www/html 和 ls -Zd /home/lwyroot 其中-Z参数表示查询安全上下文,结果前者是httpd_sys_content_t后者是home_root_t
9.2 semanage命令用于管理SELinux的策略。常用参数-l表示查询;-a表示添加;-m表示修改;-d表示删除
设置命令:semanage fcontext -a -t httpd_sys_content_t /home/lwyroot
semanage fcontext -a -t httpd_sys_content_t /home/lwyroot/*
说明:fcontext表示是要修改安全上下文,-a表示修改,-t后面跟具体上下文值,最后的路径最后面不能加/
9.3 设置完成后,恢复此服务(意义同重启服务):restorecon -Rv /home/lwyroot/
此时,SELinux是开启的,且模式为enforcing,但是因为新路径被设置为默认路径的安全上下文值,所以配置生效。
10. 个人主页功能,每个用户因为访问的网站内容不同,服务器将本身资源切分为一小份一小份,每个用户都可以独立访问到某一份资源。
10.1 首先开启个人用户主页功能。vim /etc/httpd/conf.d/userdir.conf
#UserDir disabled
...
UserDir public_html # public_html文件夹是各子用户固定名称文件夹
10.2 切换到其他用户登入,并在用户家目录中创建用于保存网站数据的目录及首页面文件,并修改权限。
su - linuxprobe
mkdir public_html
chmod -Rf 755 /home/linuxprobe
10.3 网址格式为: “网址/~用户名”
10.4 但是网页未显示,因为受限于SELinux域。使用getsebool查询与过滤所有与HTTP协议相关的安全策略。找到httpd_enable_homedirs值为off
10.5 使用setsebool命令来修改SELinux策略中各条规则的布尔值。setsebool -P httpd_enable_homedirs=on
11. 添加身份验证登录,httpasswd命令用来生成密码数据库。
11.1 htpasswd -c /etc/httpd/passwd linuxprobe; -c表示第一次生成用户名密码,路径为密码存放数据库位置,linuxprobe为用户名,这个随便设置,与系统登入用户名没有关系。
11.2 修改个人主页功能配置文件,配置如下:
<Directory "/home/*/public_html"> # 这个是用户固定目录
AllowOverride all或者none
authuserfile "/etc/httpd/passwd" # 刚刚生成出来的密码验证文件保存路径
authname "这里写用户登录时的提示信息"
authtype basic # 表示是使用基本账号密码登录
require user linuxprobe # 用户名
</Directory>
11.3 重启网站服务 systemctl restart httpd