一、Apache服务
Apache程序是一种可以在服务器部署静态网站的一项服务,可以运行在Linux、UNIX、Windows平台,支持基于IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全socket(SSL),能够实时监视服务状态与定制日志消息。
下面是Apache服务基金会的LOGO图,名字取自于美国印第安人的土著语,寓意着拥有高超的作战策略与无穷的耐性。
二、部署静态网站
1.安装httpd服务
yum install httpd
2.启动httpd服务
RHEL 7 版本:
systemctl start httpd //启动httpd服务
systemctl enable httpd //将httpd服务加入开机启动项
RHEL 6 及RHEL早期版本:
service httpd start //启动httpd服务
chkconfig http on //将httpd服务加入开机启动项
此时,在gnome版本的服务器系统里,在浏览器输入本地回环地址:127.0.0.1,则可看到以下界面:(此刻说明服务启动及安装成功)
3.配置服务参数
httpd服务安装完成并启动完成,接下来需要对其配置文件的修改,下图是关于httpd服务配置文件的存放位置:
下面详细介绍一下主配置文件/etc/httpd/conf/httpd.conf
在这个主配置文件中,主要存在三类信息:注释行信息、全局配置、区域配置,如下图所示:
在httpd服务程序主配置文件中,最为常用的参数如下图所示:
Apache服务默认的网站数据目录是在/var/www/html,如果没有任何需求要修改默认网站数据目录,你需要把自己的写的网页html文件,css,jsp,全部放入默认网站数据目录,此时访问127.0.0.1就会变成你自己的网页,如图所示:
此时最简单的网站部署就实现了,是不是很简单。
三、高级部署
1.修改网站数据默认目录
默认目录为/var/www/html,假设将目录设置为/home/myhtml,
(1)修改配置文件/etc/httpd/conf/httpd.conf,大约在119-131行左右:
(2)关闭SELinux安全子系统
可以用setenforce [0|1]命令修改SELinux当前的运行模式(0为禁用,1为启用),这种修改方式只是临时的,在系统重启之后就会失效。
刷新网页,就会出现我们的新网页:
①什么是SELinux安全子系统
使各个服务进程受到约束,使其获取本应该获取的资源。SELinux域限制可以确保服务程序做不了出格的事情,例如美图软件不可能监视和记录键盘操作;SELinux上下文可以限制文件被服务随意访问,使服务只能访问自己功能内的文件。
本次实验就是将/var/www/html目录更换为了/home/myhtml,一般/home目录是家目录,只有用户才能访问,一般服务并没有权限访问,所以说如果不关闭SELinux安全子系统的话,httpd服务是不可能获取到/home/myhtml下的index.html文件,以至于网页就不能正常显示。
②SELinux服务有三种配置模式:
enforcing:强制启用安全策略模式,将拦截服务的不合法请求
permissive:遇到服务越权访问时,只发出警告而不强制拦截
disabled:对于越权的行为不警告也不拦截
③SELinux服务配置文件
所在目录/etc/selinux/config,如图所示:
getenforce //获取当前SELinux状态
setenforce [0|1] //修改SELinux当前的运行模式(0为禁用,1为启用)
(3)为了系统的安全性,一般在生产环境中是不会存在关闭SELinux安全子系统的情况的,所以在不关闭SELinux安全子系统的情况下,可以对目录的SELinux上下文进行修改,让httpd服务能访问/home/myhtml目录。
①ls -Zd 目录 //查看目录的SELinux上下文
首先查看/var/www/html SELinux上下文是什么:
再次查看/home/myhtml上下文是什么:
②semanage命令
-l 查询
-a 添加
-m 修改
-d 删除
semanage fcontext -a -t httpd_sys_content_t /home/myhtml //使httpd服务能够访问/home/myhtml目录
semanage fcontext -a -t httpd_sys_content_t /home/myhtml/* //使httpd服务能够访问/home/myhtml/下的所有文件
restorecon -Rv /home/myhtml //更新目录上下文
2.个人用户主页功能
用户主页功能是指当用户想要访问自己个人网站不被别人影响时候所启用的功能,需要用户名和密码,如下图所示:
操作步骤:
(1)修改/etc/httpd/conf.d/userdir.conf中的参数,大约将17行的UserDir disbaled前的#去掉,24行的UserDir public_html前的#去掉
(2)在自己用户家目录下建立文件夹public_html,即路径为/home/用户名/public_html,在public_html文件夹下放入自己的网站数据,并修改/home/用户名目录权限,使其他组别的用户也有读权限,关闭SELinux安全子系统。
chmod 755 /home/用户名/ //修改权限
setenforce 0 //关闭SELinux
(3)本地生成密钥,设置密码
htpasswd -c /etc/httpd/passwd 用户名 //生成本地密钥,设置密码
(4)将生成的密钥库写入配置文件/etc/http/conf.d/userdir.conf,如下图所示:
(5)切换root用户,重启httpd服务,打开IP地址:服务器地址/~用户名
systemctl restart httpd
3.虚拟主机功能(简单介绍一下)
虚拟主机功能可以把一台处于运行状态的物理服务器分割成多个“虚拟服务器”,基于用户请求的不同IP地址,主机域名或端口号。
(1)基于IP地址
在httpd服务的配置文件大约在113行后加入配置信息,格式如下:
DocumentRoot 网站目录 例如:/home/www/html1
ServerName 域名
AllowOverride None
Require all granted
如图所示:
(2)基于域名
将基于IP地址模板中的域名修改即可,其他跟基于IP地址一样
(3)基于端口号
①添加要监听的端口号
在/etc/httpd/conf/http.conf中的43行之后添加要监听的端口,格式如下:
Listen 端口号
②添加配置文件,大约在113行,格式如下:
DocumentRoot 网站目录 例如:/home/www/html1
ServerName 域名
AllowOverride None
Require all granted