2018-01-31 Linux学习之Apache服务部署静态网站

一、Apache服务

Apache程序是一种可以在服务器部署静态网站的一项服务,可以运行在Linux、UNIX、Windows平台,支持基于IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全socket(SSL),能够实时监视服务状态与定制日志消息。

下面是Apache服务基金会的LOGO图,名字取自于美国印第安人的土著语,寓意着拥有高超的作战策略与无穷的耐性。

图一 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域限制可以确保服务程序做不了出格的事情,例如美图软件不可能监视和记录键盘操作;SELinux上下文可以限制文件被服务随意访问,使服务只能访问自己功能内的文件。

本次实验就是将/var/www/html目录更换为了/home/myhtml,一般/home目录是家目录,只有用户才能访问,一般服务并没有权限访问,所以说如果不关闭SELinux安全子系统的话,httpd服务是不可能获取到/home/myhtml下的index.html文件,以至于网页就不能正常显示。

②SELinux服务有三种配置模式:

enforcing:强制启用安全策略模式,将拦截服务的不合法请求

permissive:遇到服务越权访问时,只发出警告而不强制拦截

disabled:对于越权的行为不警告也不拦截

③SELinux服务配置文件

所在目录/etc/selinux/config,如图所示:

图四 SELinux配置文件

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 //更新目录上下文

图七 semanage操作

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行后加入配置信息,格式如下:

<VirtualHost IP地址1>

DocumentRoot 网站目录 例如:/home/www/html1

ServerName 域名

<Directory 网站目录>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

如图所示:

图一 修改配置文件

(2)基于域名

将基于IP地址模板中的域名修改即可,其他跟基于IP地址一样

(3)基于端口号

①添加要监听的端口号

在/etc/httpd/conf/http.conf中的43行之后添加要监听的端口,格式如下:

Listen 端口号

图二 添加端口号

②添加配置文件,大约在113行,格式如下:

<VirtualHost IP地址1:端口号>

DocumentRoot 网站目录 例如:/home/www/html1

ServerName 域名

<Directory 网站目录>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,775评论 0 10
  • http协议及Apache服务 http协议 什么是http? http全称为超文件传输协议(Hyper text...
    魏镇坪阅读 2,306评论 0 1
  • 基础命令 为了在 sudo 中设置权限提升,您需要编辑 sudoers 文件。 你不应该直接编辑文件,而是使用:s...
    米开朗基乐阅读 1,947评论 0 5
  • 不愿睡去,白天和黑夜都太短 二十四小时,模糊的概念 眼睛里住进一粒沙子 未来,就看不清楚了 滚烫的心,暖不热对生活...
    叮咚的你阅读 154评论 0 1
  • 第五章 至爱之妻 11.“加码”和“双保险”,原来是这个意思 干部科长带着人事员又一次找胡莉谈话。来到胡莉的办公室...
    王文韬阅读 320评论 0 0