首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7 部署Apache服务器

centos7 部署Apache服务器

作者头像
拓荒者
发布2019-03-15 19:52:39
1K0
发布2019-03-15 19:52:39
举报
文章被收录于专栏:运维经验分享运维经验分享

Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台安全性广泛被认可且拥有快速、可靠、简单的API扩展。 它的名字取自美国印第安人土著语,寓意着拥有高超的作战策略和无穷的耐性,在红帽RHEL5、6、7系统中一直作为着默认的Web服务程序而使用,并且也一直是红帽RHCSA和红帽RHCE的考试重点内容。Apache服务程序可以运行在Linux系统、Unix系统甚至是Windows系统中,支持基于IP、域名及端口号的虚拟主机功能、支持多种HTTP认证方式、集成有代理服务器模块、安全Socket层(SSL)、能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。

第一步:安装Apache服务程序(apache服务的软件包名称叫做httpd)

yum install httpd -y

centos7 部署Apache服务器
centos7 部署Apache服务器

第二步: 将Apache服务添加到 开机自启中

centos7 部署Apache服务器
centos7 部署Apache服务器

第三步:打开firefox浏览器 测试 127.0.0.1

centos7 部署Apache服务器
centos7 部署Apache服务器

这样 我们的apache服务就安装好了 !

小编下面给大家 讲解一下 一些配置文件 。以及apach 的应用服务

刚学会的安装和运行只是学习httpd服务程序成功路上的一小步而已,对于Linux系统中服务的配置就是在修改其配置文件,因此还需要知道这些配置文件分别干什么用的,以及存放到了什么位置:

服务目录

/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

centos7 部署Apache服务器
centos7 部署Apache服务器

是不是下了 一跳,一共有353行 。但其实 没有关系的,这些配置文件中 大部分都是 注释信息,剩下的 就只有全局配置信息,区域配置信息。

在httpd服务程序主配置文件中最为常用的参数包括有:

ServerRoot

服务目录

ServerAdmin

管理员邮箱

User

运行服务的用户

Group

运行服务的用户组

ServerName

网站服务器的域名

DocumentRoot

网站数据目录

Listen

监听的IP地址与端口号

DirectoryIndex

默认的索引页页面

ErrorLog

错误日志文件

CustomLog

访问日志文件

Timeout

网页超时时间,默认为300秒.

Include

需要加载的其他文件

从上面表格中可以得知DocumentRoot正是用于定义网站数据保存路径的参数,其参数的默认值是把网站数据存放到了/var/www/html目录中的,而网站首页的名称应该叫做index.html,因此可以手动的向这个目录中写入一个文件来替换掉httpd服务程序的默认网页,这种操作是立即生效的

echo "hello everyone my name is feixiangkeji" > /var/www/html/index.html

紧接着 我们 打开firefox 浏览器 查看一下:

centos7 部署Apache服务器
centos7 部署Apache服务器

测试成功!然后 我们 来修改 网站数据的主目录。刚开始 我们默认的网站主目录是/var/www/html

我们把它改变为 /home/wwwroot/中 。同样我们也要在/home/wwwroot/中 创建首页文件

mkdir /home/wwwroot

echo "this is feixiangkeji" > /home/wwwroot/index.html

centos7 部署Apache服务器
centos7 部署Apache服务器

目录,首页文件都创建好了 ,我们是不是要修改 网站的配置文件啊

vim /etc/httpd/conf/httpd.conf

找到大约在119行附近的DocumentRoot参数以及大约在123行附近的,修改后记得保存:

centos7 部署Apache服务器
centos7 部署Apache服务器

systemctl restart httpd

重新启动httpd服务程序后便可验证效果啦!!!但我们发现 还是刚开始测试页面 !!而刚新建的首页文件并不显示出来?????

httpd服务程序的功能就是让用户能够访问到网站内容,因此让SELinux对网页访问功能肯定是默认允许的,但刚刚把保存网站数据的默认路径修改为了/home/wwwroot目录,这似乎就产生问题了,也就是说现在httpd提供的网站服务却要去获取普通用户家目录中的数据了,这个行为触犯SELinux服务的监管项目。既然已经找出问题所在了

下面 小编就来 先关闭SElinux :

[root@localhost ~]# setenforce 0

[root@localhost ~]# getenforce

Permissive

centos7 部署Apache服务器
centos7 部署Apache服务器

但这种修改只是临时的,重启后就会失效!!!!!!

我们再次访问网站

centos7 部署Apache服务器
centos7 部署Apache服务器

果不其然 ,就是SElinux 搞的鬼

[root@localhost ~]# ls -Zd /var/www/html

[root@localhost ~]# ls -Zd /home/wwwroot

centos7 部署Apache服务器
centos7 部署Apache服务器

在文件上面设置的SELinux安全上下文是由用户段、角色段以及类型段等等多个信息项目共同组成的,用户段中system_u代表系统进程身份角色段object_r代表文件目录角色类型段httpd_sys_content_t代表是网站服务系统文件。由于SELinux服务实在过于复杂,因此现在您只需要简单熟悉SELinux服务的作用就可以,现在这种情况的解决办法就是把当前网站目录/home/wwwroot的SELinux安全上下文修改为跟原始网站目录的一样就可以啦~

semanage命令用于查询与修改SELinux的安全上下文,格式为:“semanage [选项] [文件]”。

-l参数用于查询-a参数用于添加、-m参数用于修改、-d参数用于删除等等

[root@localhost ~]# setenforce 1 把SElinux 改为强制

然后我们才能修改SElinux 的 上下文

-Z 查看文件上下文信息,也就是文件的SELinux信息,可以肤浅地理解为各个用户对该文件或文件夹的权限(只有开启Selinux才有效)

-d 只列出目录,不包括内容,不引用符号链接

因此ls -Zd的意思就是查看该路径下文件夹的selinux属性。

如果系统里没有 semanage 命令

centos7 部署Apache服务器
centos7 部署Apache服务器

我们可以 yum provides /usr/sbin/semanage 查看 semanage对应的 软件包

centos7 部署Apache服务器
centos7 部署Apache服务器

然后 小编就 yum install policycoreutils-python

这样 semanage 命令就可以用了

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

centos7 部署Apache服务器
centos7 部署Apache服务器

不过仅仅是这样设置完还不能让网站立即恢复访问,还需要使用restorecon命令来让刚刚设置的SELinux安全上下文立即生效,可以加上-Rv参数指定进行对目录的递归操作以及显示SELinux安全上下文的修改过程:

[root@localhost ~]# restorecon -Rv /home/wwwroot/

centos7 部署Apache服务器
centos7 部署Apache服务器

刷新一下

centos7 部署Apache服务器
centos7 部署Apache服务器

这样 我们网站初期 一些基础的东西 就先说到这 ,请关注我接下来发表的 Apache 个人网站主页,

虚拟网站主机功能,基于IP地址的,基于端口的,和基于域名访问的三种模式。!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/12/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档