Apache服务部署
先通过yum源进行安装apache服务
yum install httpd
启动apache服务并将其添加至开机启动项
systemctl start httpd
systemctl enable httpd
默认apache服务的web地址
httpd服务程序的主要配置文件及存放位置
服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
vim /etc/httpd/conf/httpd.conf
配置httpd服务程序时最常用的参数以及用途描述
ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
ServerName 网站服务器的域名
DocumentRoot 网站数据目录
Listen 监听的IP地址与端口号
DirectoryIndex 默认的索引页页面
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为300秒
做任何配置变更都需要重启服务
systemctl restart httpd
SELinux安全子系统
SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。
SELinux服务有三种配置模式:
enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。
selinux配置文件所在
vim /etc/selinux/config
SELINUX=enforcing #这就是配置中的模式选择
可使用命令查看当前SELinux当前模式
getenforce #就这么一个词
有的时候一些服务出现问题,可能会是SELinux所导致的,如果确认是其导致的,可以用setenforce [0|1]命令修改SELinux当前的运行模式(0为禁用,1为启用)。注意,这种修改只是临时的,在系统重启后就会失效:
setenforce 0 #将运行模式禁用
getenforce #再次查看SELinux运行模式
semanage [选项] [文件] 用于管理SELinux的策略
-l参数用于查询;
-a参数用于添加;
-m参数用于修改;
-d参数用于删除。
使用getsebool命令查询并过滤出所有与HTTP协议相关的安全策略。其中,off为禁止状态,on为允许状态
getsebool -a | grep http
使用setsebool修改SELinux策略中各条规则的布尔值。在setsebool命令后面加上-P参数,让修改后的SELinux策略规则永久生效且立即生效
setsebool -P httpd_enable_homedirs=on
登陆个人用户主页时,使用密码验证
先使用htpasswd命令生成密码数据库。-c参数表示第一次生成;后面再分别添加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地账户)
htpasswd -c /etc/httpd/passwd linuxprobe
编辑个人用户主页功能的配置文件
[root@linuxprobe ~]# vim /etc/httpd/conf.d/userdir.conf
27 #
28 # Control access to UserDir directories. The following is an example
29 # for a site where these directories are restricted to read-only.
30 #
31 <Directory "/home/*/public_html">
32 AllowOverride all
#刚刚生成出来的密码验证文件保存路径
33 authuserfile "/etc/httpd/passwd"
#当用户尝试访问个人用户网站时的提示信息
34 authname "My privately website"
35 authtype basic
#用户进行账户密码登录时需要验证的用户名称
36 require user linuxprobe
37 </Directory>
[root@linuxprobe ~]# systemctl restart httpd