搭建网站

网站服务:让用户能够通过浏览器访问到的服务器上的文档资源。

对比Windows 和Linux部署服务方法对比

Windows:IIS

Linux      :Apache ,nginx

Apache优势:1.老牌程序,市场所认可

2.安全、稳定、效率、功能模块化

3.红帽RHCE从5到7系统一直在考。

nginx的优势:1.使用较少的资源实现很高的并发性。(比如说吃的少,干活多)

下面我们再回忆一下配置yum仓库。

三个步骤

1.挂载系统光盘

2.配置yum仓库文件

3.yum install 软件包名称

这里我们要说一下,Apache的服务名称和软件名称叫httpd而不是Apache.

我们新建一个挂载目录,然后去将系统光盘挂载到挂载目录。

别忘了写入fstab文件。vim /etc/fstab

这里就不做解释了,前面有。

然后我们在/etc/yum.repos.d目录里面创建一个文件,名称随便。再解释一下这些参数的作用。

[  ]里面是yum仓库名称,name是名称。baseurl 是挂载目录。enabled是是否启用yum仓库,1启用,0不。gpgcheck是否校验我们yun仓库,我们选择不,这样可以加快速度。

接下来我们yum install httpd下载Apache安装包进行安装。

成功之后我们重启下服务,然后并且给他加入到启动项里面。

这时候我们打开自带的火狐浏览器然后输入本机IP可以看到这个界面。

当我们看到这个页面是说明有下面两个可能性

1.网站内没有数据

2.权限不足

网站目录:/var/www/html

网站首页文件:index.html

然后我们先进入/var/www/html目录,发现文件是空的。

然后我们将lao ji zhen shuai 这句话导入到index.html文件中。然后我们去刷新一下页面。

看到了吧

下面说一下步骤:

1.安装网站服务

2.网站目录内写入首页文件(index.html)

httpd在Linux系统中的配置文件

服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log

修改httpd服务的配置文件

Linux系统中的一切都是文件

配置服务就是在修改服务的配置文件

一般情况下需要重启对应的服务才能够获取最新参数(修改完配置文件后新的参数)

顺手将服务加入到开机启动项

配置文件分为主配置文件和一般配置文件。

主配置文件:保存最重要的配置参数。

找主配置文件的小技巧:他一般在/etc/服务名称/服务名称.conf

一般配置文件:保存的是其他的配置参数。

这个就是我们httpd服务的主配置文件了

打开后我的天哪353行,但是仔细一看都是注释,别怕。

配置httpd服务程序时最常用的参数以及用途描述

ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
ServerName 网站服务器的域名
DocumentRoot 网站数据目录
Listen 监听的IP地址与端口号
DirectoryIndex 默认的索引页页面
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为300秒

我们对应修改一些参数

我们修改这两个参数,我们将里面的参数由/var/www/html修改为/home/wwwroot目录

重启服务报错,是因为我打错了,而且我也没创建那个文件夹,创建之后再重启就好了。别忘了加启动项。

然后我们进入我们创建修改的目录然后刷新一下网页。

会变成这样。

这里又要说一下,出现这样的情况可能说明

1.网站内没有数据

2.权限不足

你们可能忘了,刚才我们页面可是lao ji hen shuai

然后我们往index.html里面加东西。

这时候我们刷新页面发现,居然没变,那么这时候就是我们的权限不足,这里说的权限可不是我们的rwx,而是SELinux.

这里说一下SELinux,他是安全子系统,它是由美国安全局研发出来的,其中还有Linux社区也是。

SELinux安全子系统

让服务程序规规矩矩的只去获取自己应该获取的文件。

下面我们介绍一下这个系统。

他有两个保护机制

1.SELinux域               :管理服务的功能

2.SELinux安全上下文 :管理文件,让只有某个服务程序才可以获取。

我们刚才把/var/www/html换成了/home/wwwroot,那么在我们系统中home这个目录是干嘛用的,他应该保存的是我们用户家目录的一个信息。当你访问的话上下文给我们就做了限制。

然后我们看一下这个服务是否开启了,他有3个模式,然后我们编辑一下他的配置文件

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

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

disabled:对于越权的行为不警告也不拦截。(禁止SELinux)

我们用getenforce查看我们当前SELinux状态

setenforce 设置当前的SELinux状态       setenforce 0是临时关闭      setenforce 1临时开启

我们怀疑是不是她给我们捣乱让我们查看不了网页内容,执行一下临时关闭。再刷新一下

看来是了。

安全上下文的值这么查看ls -ldZ /var/www/html  我们查看一下var目录和home目录值有什么不一样

在文件上设置的SELinux安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的。其中,用户段system_u代表系统进程的身份,角色段object_r代表文件目录的角色,类型段httpd_sys_content_t代表网站服务的系统文件。

httpd_sys-content  这个是网站的系统文件的意思

home_root_t          是用户的家目录

所以说是这个SELinux上下文他导致我们不能获取到这个文件的。

针对当前这种情况,我们只需要使用semanage命令,将当前网站目录/home/wwwroot的SELinux安全上下文修改为跟原始网站目录的一样就可以了。

那我们怎么修改这个值呢。

我们用semanage fcontext 这个命令可以修改上下文。

semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]

SELinux服务极大地提升了Linux系统的安全性,将用户权限牢牢地锁在笼子里。semanage命令不仅能够像传统chcon命令那样—设置文件、目录的策略,还可以管理网络端口、消息接口(这些新特性将在本章后文中涵盖)。使用semanage命令时,经常用到的几个参数及其功能如下所示:

-l参数用于查询;

-a参数用于添加;

-m参数用于修改;

-d参数用于删除。

例如,可以向新的网站数据目录中新添加一条SELinux安全上下文,让这个目录以及里面的所有文件能够被httpd服务程序所访问到:

但是我们执行完之后发现还是不行,记住我们现在是SELinux是打开状态

还需要使用restorecon命令将设置好的SELinux安全上下文立即生效。在使用restorecon命令时,可以加上-Rv参数对指定的目录进行递归操作,以及显示SELinux安全上下文的修改过程。最后,再次刷新页面,就可以正常看到网页内容了

restorecon  翻译是恢复的意思,但是在这里不太准确,我们这里应该是让新设置的SELinux的值立即生效的意思。

-R是对于我们的目录来进行操作,v是显示出来一个过程,然后home目录,wwwroot子目录。

真可谓是一波三折!原本认为只要把httpd服务程序配置妥当就可以大功告成,结果却反复受到了SELinux安全上下文的限制。所以,建议大家在配置httpd服务程序时,一定要细心、耐心。一旦成功配妥httpd服务程序之后,就会发现SELinux服务并没有那么难。

SELinux域:管理服务的功能、姓名

SELinux安全上下文:管理具体的文件,让指定的服务才能获取。

个人用户主页功能

Linux新手随手笔记1.9-使用Apache搭建网站的更多相关文章

  1. Linux新手随手笔记1.8

    配置网卡服务 将网卡的配置文件,保存成模板,叫做会话. nmcli命令查看网卡信息.nmcli是一款基于命令行的网络配置工具 只有一个网卡信息,下面我们再添加一个. 公司:静态IP地址 家庭:DHCP ...

  2. Linux新手随手笔记1.7

    配置网卡(本地电脑) Vment1   仅主机模式 Vment8   nat模式 物理机 : 192.16810.1  /255.255.255.0 服务器 : 192.168.10.10 /255. ...

  3. Linux新手随手笔记1.6

    RAID磁盘冗余阵列 1.I/O  速度 2.数据安全性  RAID 0 负载均衡.速度乘以二,但是数据安全性不行,任何一块盘损坏数据都会丢失. RAID 1 安全性性提升2倍,任何一个损坏另一个都有 ...

  4. Linux新手随手笔记1.5

    FHS Linux / 代表根目录 /root  管理员的家目录 /boot  启动引导文件,以及开机菜单都会保存在里面 /bin     保存我们系统中命令的目录,不止bin,只要带bin的比如sb ...

  5. Linux新手随手笔记1.4

    计划任务服务程序 计划任务 at  命令          一次性的 crond  服务   周期性的 23:29执行reboot命令(重启服务器) at -l      查看当前的计划任务 at  ...

  6. Linux新手随手笔记1.3

    shell脚本的编写(划重点) #!/bin/bash                    脚本的声明信息 #sjsjdhsjdhh                  脚本的注释 ls -l    ...

  7. Linux新手随手笔记1.2

    重定向 输入重定向:将命令输出结果写入一个文件或将一个文件内容导回到命令里面的这个过程叫做重定向 :标准(>) 输出重定向   :覆盖写入清空写入(>)/追加写入(>>) :错 ...

  8. Linux新手随手笔记1.1

    ifconfig   查询网卡信息 分别是网卡名称,物理IP地址,MAC地址,RX收到数据包大小,TX发送数据包大小 # uname # uname -a 查看内核版本号 # hostname 查看主 ...

  9. Linux新手随手笔记

    RPM通过将安装规则与源代码打包到一起,来降低软件的安装难度 yum 通过将大量的常用RPM软件存放在一起,解决软件包之间的依赖关系,进一步降低软件的安装难度 rhel 5\6 init rhel 7 ...

随机推荐

  1. Openssl gendsa命令

    一.简介 gendsa命令能够根据DSA密钥参数生成DSA密钥 二.语法 openssl gendsa [-out filename] [-passout out] [-rand file(s)] [ ...

  2. android开发环境完整搭建

    1.首先,要先下载安装包,共享一个网址,里面有非常全面的安装文件,不管是windows还是linux的,都有,网址如下:http://www.cnblogs.com/tc310/p/3938353.h ...

  3. Spring.net ObjectWrapper对象的包装(反射机制)有点明晰方便

    Company c = new Company(); List<PropertyInfo> ps = c.GetType().GetProperties().ToList(); var p ...

  4. Spring框架总结(三)

    SpringIOC容器 一.创建对象 SpringIOC容器,是spring核心内容. 作用: 创建对象 & 处理对象的依赖关系 IOC容器创建对象: 创建对象, 有几种方式: 1) 调用无参 ...

  5. javascript总结40:DOM中操作样式的两种方式

    1 DOM中操作样式的两种方式 1 通过元素的style属性 注意: 通过style属性设置样式时,css中要写单位的属性,在js代码中也要加单位 //html <div id="bo ...

  6. java中的上转型解释(多态的另一种)

    我们先来看个例子: public class Polymorphism extends BaseClass{ public String book="轻量级j2ee教程"; pub ...

  7. JS 单例模式

    <parctical common lisp>的作者曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型 ...

  8. 编写高质量代码改善C#程序的157个建议——建议69:应使用finally避免资源泄漏

    建议69:应使用finally避免资源泄漏 除非发生让应用程序中断的异常,否则finally总是会先于return执行.finally的这个语言特性决定了资源释放的最佳位置就是在finally块中:另 ...

  9. 【微服务架构】SpringCloud之Hystrix断路器(六)

    一:什么是Hystrix 在分布式环境中,许多服务依赖项中的一些将不可避免地失败.Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互.Hystrix通过隔离服务之间 ...

  10. HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站 (陈婉凌) 中文pdf扫描版

    <HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站>以HTML与CSS为主,配合jQuery制作网页,并搭配jQueryMobile制作移动网页,通过具体的范例从基 ...