Linux服务器搭建 -- Web静态/动态服务器及论坛的搭建(apache)

WWW简介

        www是world wide web的缩写,意为全球信息广播。通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图像、影响以及声音等多媒体,可以通过鼠标点击超链接的方式将信息以Internet传到世界各地

www所用的协议

        HTTP超文本传输协议,是网络上最广泛的一种网络协议,所有的www文件都必须遵循这个标准。

常见的WEB服务器:tomcat nginx IIS apache http web www

        其中tomcat功能比apache更加强大,但是因为apache是老牌产品,所以兼容性更加好,IIS是Windows端的web服务器,但是收费,nginx是最近比较热门的服务器,由俄罗斯一个小伙编写,功能也很强大        

        服务器所提供的最主要数据是HTML和多媒体文件

网址及HTTP简介

        HTTP服务提供的数据大部分都是文件,所以我们只需要在服务端把文件都部署好,HTTP中,这些文件都存放于/var/www/html中,我们想要访问这些文件只需要在浏览器输入对应的网址,当我们输入Linux主机的ip地址时,他默认优先访问/var/www/html/index.html文件,如果该文件不存在,那么将会访问apache的欢迎界面

访问web服务的方法

        需要使用浏览器,通过url -- 统一资源定位符,即通过输入域名或IP地址进行访问,比如访问百度就是www.baidu.com或220.181.38.149,其实它默认访问的是百度服务器里的/var/www/html/index.html文件,可以尝试访问www.baidu.com/index.html

url格式:<协议>://<主机或主机名>[:port]/<文件/资源路径>

                其中协议一般常用的有http和https

        端口http默认的是80和8080,https默认为443,不用特别的去输入,除非要访问指定端口,之后就是文件路径了,例如:192.168.218.133:80/index.html

WWW服务器的类型

        主要分为静态网站和动态网站

        静态网站

                静态网站即仅提供用户浏览的单向静态网页,单纯是由服务器单向提供数据给客户端,

                不需要进行互动,一般只能浏览不能上传数据

        动态网站

                动态网站即向用户提供了可以互动的接口,需要除了H5和CSS的网页程序语言,常见的

                有JavaScript和PHP,通过网页程序实现数据库的读写

搭建动态网站的需求:

        可支持的操作系统,可运行的WWW服务器(中间件),网页程序语言,数据库,常见的有LAMP模式 -- Linux、apache、MySQL、PHP

WWW服务器的搭建

1、安装软件包 -- yum/dnf install httpd -y

2、修改默认配置,http的主配置文件在/etc/httpd/conf/httpf.conf

3、找到ServerName,添加一条ServerName 0.0.0.0:80,意为监听所有端口

4、启动服务

        systemctl start httpd/firewalld

4、放行防火墙规则或者关闭防火墙

        firewall-cmd --permanent --add-service=http

5、刷新防火墙

        firewall-cmd --reload

4>关闭防火墙

        systemctl stop firewall.service

        setenforce 0

如何自定义欢迎页面

        我们只需要在/var/www/html/下的index.html中写入我们想说的话便可以自定义默认访问界面

        echo welcome  to apache > /var/www/html/index.html

主配置文件中的重要参数

参数

作用

ServerRoot "/etc/httpd"

http服务的顶级目录为/etc/httpd

Listen 80

默认监听80端口,可以修改

User apache

服务的用户,先以root身份启动服务再转变成apache身份,增加系统安全性

Group apache

同上者目的一样

ServerAdmin root@localhost

有问题将会给此邮箱发邮件

#ServerName www.example.com:80

监听的IP地址和端口,也可以理解为可以通过哪些地址进行访问

Directory />

    AllowOverride none

    Require all denied

</Directory>

AllowOverride none:不允许访问的文件

Require all denied:拒绝访问根

DocumentRoot "/var/www/html"

网页文件所在目录

<IfModule log_config_module>

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

    LogFormat "%h %l %u %t \"%r\" %>s %b" common

     <IfModule logio_module>

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

     </IfModule>

     Customlog "logs/access_log" combined

</IfMoudule>

日志配置文件 /var/log/httpd,日志模块:通过时间节点去记录

<IfModule alias_module>

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

别名模块

AddDefaultCharset UTF-8

默认字符集

        注意:

        默认访问apache欢迎界面的配置文件是?欢迎界面的文件在哪?

                配置文件:/etc/httpd/conf.d/welcome.conf

                文件地址:/usr/share/httpd/noindex/index.html

如何搭建两个基于ip访问的网站

步骤

一、给网卡添加两个新的地址

二、创建两个网页的根目录,并自定义网页内容

三、创建一个vhost.conf的文件

三、修改配置文件,重启服务

四、测试

如何允许通过域名访问

首先我们知道我们访问 一台服务器可以使用IP和域名两种方式访问,域名可以让我方便记忆,但是最后还是被解析成IP地址,如果说我们想让我们的本地web服务器也能达到域名访问的目的,那么只需要将servername的参数改为域名的形式,之后修改本地host文件即可(原理参考Linux服务器搭建 -- DNS域名解析服务器)

步骤一:修改servername域名

步骤二:修改本地host文件

Linux主机的host文件目录在/etc/hosts,更改时需要root权限,格式为IP在前,域名在后,注意空格

Windows主机的host文件在C:\Windows\system32\drivers\etc\hosts,注意这个文件需要超级管理员权限,需要打开超级管理员去修改,或者使用notepad++直接修改,同样是IP在前,域名在后,注意空格

 步骤三:测试成功

基于https的静态网站

HTTPS:超文本传输安全协议,https不是一个新的协议,而是在HTTP的基础上加入了tls/ssl模块,从原本的http直接与TCP进行通信变成了ssl先于ssl通信,再由ssl与TCP进行通信

ssl:Secure Sockets Layer,即安全套接层,在1999年,被IETF组织标准化,改名为TLS(Transport Layer Security,传输层安全协议)

ssl又被分为两层:

        SSL记录协议:他建立在可靠的传输协议之上,为高层协议提供数据封装、压缩、加密等基础功能

        SSL握手协议:它建立在SSL记录协议之上,用于在实际的传输开始前,通讯双方进行身份验证、协商加密算法、交换加密密钥等

SSL提供的服务

        认证用户服务器,确保数据发送到正确的客户机与服务器

        加密数据以防止数据中途被窃取

        维护数据完整性,确保数据在传输途中不会改变

回顾通信建立过程

        客户端先进行三次握手建立会话,之后进行http版本协商,高版本兼容低的版本,之后服务端将自己的公钥以明文的方式发送给客户端,客户端再将自己的密钥用对方的公钥将自己的密钥加密发送给服务端完成密钥交换,之后就是认证阶段和数据通信阶段

问题:客户端如何知道服务端发来的密钥有没有被劫持,这时候就需要第三方认证机构(CA)保证这个密钥就是服务端的密钥

CA介入的https认证的过程

首先客户端先验证服务端的身份

        客户端向服务端发送自己支持的ssl版本号,协商出自己支持的版本号,之后服务端将自己的服务器数字证书发送给客户端,客户端查看证书是否是由受信任的CA机构所颁发,是则生成客户端的公钥和会话密钥并用服务端的公钥加密给服务端,服务端收到以后用私钥解密,并生成服务端的会话密钥并用客户端的公钥加密发送给客户端,客户端收到以后用自己的私钥解密获得服务端会话密钥,之后客户端使用客户端的会话密钥发送数据,服务端用服务端的会话密钥发送数据

CA证书如何生成

        CA证书:其实主要就是一个公钥,还包含了证书的颁发机构、过期时间、服务端公钥、CA的签名,服务端域名……

        生成过程:CA首先对服务器公钥进行摘要,再对摘要值进行哈希散列运算,再将哈希值和服务端公钥用CA密钥进行加密发送给客户端(这个加密的数据称为数字证书,而整个部分是CA数字证书),客户端用CA的公钥进行数据解密,在对摘要进行哈希散列运算,再对比两个哈希值,如果相同,就判断这个公钥就是服务端发来的

生成CA的方法:

        可以向受信任的CA机构购买,也可以自己生成,只不过自己的CA数据证书不被浏览器所信任,因为受信任的CA机构已经被内置于我们的浏览器中,如果要将此证书被浏览器所信任,需要将自己颁发的CA证书添加到浏览器中的受信任列表

下面主要介绍一下如何自己生成CA证书

一、首先服务端需要下载mod_ssl模块

二、生成证书

命令解析:

openssl

主命令

req

请求

-newkey

新的公钥

rsa

rsa加密方法

-nodes

哈哈

-keyout

输出私钥

zws.key

私钥名称

-x509

证书的格式

-out

输出证书

zws.crt

证书的名字

        这条命令就是请求创建一个证书,以rsa加密方式生成一个对来自CA的密钥,-sha256是摘要的哈希算法,-keyout是将CA的私钥输出,不指定文件夹将会保存在当前目录,证书格式为x509,-out zws.crt输出名为zws.crt的证书

配置基于https的静态网站

        有了证书https过程就不缺条件

        ssl只是http的一个模块,所以ssl的配置文件在/etc/httpd/conf.d/ssl.conf

打开ssl.conf的配置文件,里面的重要参数

Listen 443 https

监听https的443端口,主配置不需要修改

SSLEngine on

ssl已开启

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

证书的存放位置

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

公钥存放的位置

我们可以选择将证书和公钥的位置修改为现在存放的位置,但是为了方便管理更合理的是将两者存放至默认推荐的位置,切记更改配置文件中的证书和公钥名称,只需要在虚拟主机中添加SSLEngine、SSLCertificateFile和SSLCertificateKeyFile参数

重启服务,将tcp的443端口添加到防火墙规则

访问https://服务器IP或域名:443进行验证

基于虚拟目录和用户控制的web网站

        我们访问主机的时候还需访问根目录以外的文件,如果将这些文件移动过来很可能影响其他的服务,将文件辅助过来会占用服务器更多的储存空间,因此虚拟目录营运而生,采用别名的思想!

        我们以虚拟主机为例,在VirtualHost中添加aliase /虚拟共享目录 /真实路径,但是我们如果又不想任何人访问我们的虚拟目录,就需要对目录进行限制,可以基于用户/主机进行访问控制,配置思路如下

一、创建别名链接到真实文件路径

二、开始真实文件的上层目录路径权限

三、开启基于用户的访问控制

四、创建用户列表,也就是AuthUserFile,让配置文件登陆时去文件中查询是否存在可登录的用户

这里-c是因为users文件不存在,首次创建需要先创建文件,后期创建用户就不需要-c,也可以mkdir先创建users文件,虚拟文件实际不存在,但是真实路径必须存在

动态HTTP服务的搭建

        动态HTTP服务的常用模型有:LAMP和LNMP,以LAMP为例实验

        L:Linux主机

        A:apache

        M:mariadb或MySQL

        P:PHP

        LA我们已经具有接下来看一下MP怎么装环境

下载mariadb

开启mariadb

 

初始化数据库

创建数据库

下载PHP 

 将discuz包解压传到服务器的/var/www/html下

修改upload下的所有文件的权限为777 

重启http和mariadb,访问IP下的upload文件,进行向导安装

  • 0
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编辑推荐 本书介绍如何在Linux下建立,运行并维护站点的综合技术,它适合于有一定的LinuxLinux基本操作基础的网络建立者。 本书从建站的准备工作开始,写到建立功能强大的INTERNET网站,层层深入,涉及到网站建设中所遇到的种种问题。从Linux的安装和设置入手,详尽地介绍了如何建立普通站点及具有WWW、E-MAIL、FTP、BBS等功能的完整的INTERNET站点,并在最后介绍了网络的安全及网站的升级。本书还提供了笔者在实际操作中积累的一些小技巧。 内容简介 本书介绍如何在Linux下建立,运行并维护站点的综合技术,它适合于有一定的LinuxLinux基本操作基础的网络建立者。 本书从建站的准备工作开始,写到建立功能强大的INTERNET网站,层层深入,涉及到网站建设中所遇到的种种问题。从Linux的安装和设置入手,详尽地介绍了如何建立普通站点及具有WWW、E-MAIL、FTP、BBS等功能的完整的INTERNET站点,并在最后介绍了网络的安全及网站的升级。本书还提供了笔者在实际操作中积累的一些小技巧。 目录 第1章 了解Linux及其网络结构 1.1 Linux简介 1.1.1 何谓Linux 1.1.2 Linux的功能 1.1.3 Linux当前的版本 1.2 Linux的TCP/IP网络结构 1.3 IPv6简介 1.3.1 IPv6与IPv4头标的比较 1.3.2 简化的头标 1.3.3 参数的修订 1.3.4 新导入的域 1.4 站点注册 1.4.1 何谓站点注册 1.4.2 注册Linux站点 1.5 常见问题及解答 1.5.1 关于运行DOS/Windows上的程序 1.5.2 关于Linux的资料来源 1.5.3 关于获取帮助 第2章 服务器平台安装和设备管理 2.1 硬件选择 2.1.1 CPU、RAM和主板与性能的关系 2.1.2 硬盘的选择 2.1.3 显示卡与监视器的选择 2.1.4 电源与UPS的选择 2.2 Linux的安装准备 2.2.1 Linux的获取 2.2.2 了解你的计算机配置 2.2.3 Linux的安装方式 2.2.4 安装Linux的硬盘分区 2.2.5 有关LILO的基础知识 2.3 Linux的安装 2.3.1 首先应该知道的事 2.3.2 开始安装:有关安装启动程序的选择 2.3.3 安装过程 2.3.4 最后的设置工作 2.3.5 安装LILO 2.4 Linux下的硬件设备管理 2.4.1 Linux设备管理概述 2.4.2 SCSI设备 2.4.3 硬盘 2.4.4 CD-ROM驱动器 2.4.5 调制解调器 第3章 配置TCP/IP网络 3.1 开始之前需要的信息 3.1.1 IP地址 3.1.2 网络掩码 3.1.3 网络地址(Network Address) 3.1.4 广播地址(Broadcast Address) 3.1.5 网关地址(Router/Gateway Address) 3.1.6 名字服务器地址(Nameserver Address) 3.2 用netcfg配置网络 3.2.1 操纵名字 3.2.2 操纵主机 3.2.3 增加网络接口设备 3.3 安装网卡 3.3.1 设置网卡模式 3.3.2 配置网卡 3.3.3 有关Intel Etherexpress系列卡的配置 3.3.4 网卡配置中的一些疑问 3.4 路由、网关和IPChains 3.4.1 路由和网关的概念 3.4.2 使用IPChains实现数据包过滤和转发 第4章 Linux文件及系统管理 4.1 文件和目录 4.1.1 文件和目录概述 4.1.2 文件类型 4.2 文件权限 4.2.1 文件权限的概念 4.2.2 文件权限的构成 4.2.3 文件权限的依赖性 4.2.4 改变权限 4.3 文件链接 4.3.1 硬链接 4.3.2 符号链接 4.4 文件系统和标准文件系统布局 4.4.1 文件系统 4.4.2 标准文件系统布局 4.5 基本目录介绍 4.5.1 根文件系统 4.5.2 /etc文件系统 4.5.3 /dev文件系统 4.5.4 /usr文件系统 4.5.5 /var文件系统 4.5.6 /proc文件系统 4.6 启动和关机 4.6.1 启动和关机概述 4.6.2 近观启动过程 4.6.3 重新启动系统 4.6.4 紧急启动(软)盘 4.6.5 有关关机的更多信息 4.7 登录和注销 4.7.1 通过终端登录 4.7.2 通过网络登录 4.7.3 login干了些什么 4.7.4 存取控制 4.7.5 Shell启动 4.8 管理用户 4.8.1 系统管理员 4.8.2 管理职责 4.8.3 用户管理 4.8.4 用户组管理 4.8.5 使用LinuxConf管理用户 4.9 内存管理 4.9.1 什么是虚拟内存 4.9.2 产生对换空间 4.9.3 使用对换空间 4.9.4 与其他操作系统共享对换空间 4.9.5 分配对换空间 4.9.6 高速缓存 4.10 X Window 4.10.1 如果没有安装X 4.10.2 如果已经安装了X 第5章 Linux的网络设置 5.1 配置NFC服务器 5.1.1 NFS简介 5.1.2 设置NFS服务器 5.1.3 设置NFS客户机 5.1.4 NFS的工作原理 5.1.5 NFS守护程序的启动过程 5.1.6 各服务进程的作用 5.2 建立PPP连接和配置PPP服务器 5.2.1 有关PPP的基础知识 5.2.2 使用PPP拨号上网 5.2.3 配置PPP服务器 5.3 配置DNS服务器 5.3.1 DNS(Domain Name System)简介 5.3.2 域名服务系统 5.3.3 域名服务器和解析器 5.3.4 配置暂存专用名字服务器 5.3.5 建立一个简单的领域名字服务器 5.3.6 配置实例 5.3.7 维护工作 5.3.8 拨号网络连线的自动设置 第6章 建立Internet站点 6.1 E-mail服务器的建立 6.1.1 sendmail服务器的设置 6.1.2 在Linux机器上设置pop3代理 6.2 FTP服务器的建立 6.3 WWW服务器的建立 6.4 建立Samba服务器 6.4.1 Samba是什么 6.4.2 安装Samba 6.4.3 设置Samba的配置文件 6.4.4 启动Samba 6.4.5 Samba常用的重要指令 第7章 超文本标记语言(HTML) 7.1 HTML概述 7.2 HTML文件描述 7.3 段落、格式、版面分割标记 7.4 文字效果标记 7.5 超级链接标记 7.6 文字列表标记 7.7 表格标记 7.8 插入图像标记 第8章 PHP主页设计 8.1 内嵌式脚本语言PHP概述 8.1.1 PHP发展历史 8.1.2 PHP的主要技术特点 8.2 PHP语句 8.2.1 初识PHP 8.2.2 PHP语句和HTML分离 8.3 PHP中的变量 8.3.1 变量名和变量类型 8.3.2 深入了解变量类型转化 8.3.3 数组类型 8.3.4 动态变量 8.3.5 类和对象 8.3.6 变量作用域 8.4 外界变量和交互式网页 8.4.1 PHP从客户端获取信息的方法:外界变量 8.4.2 使用HTTP Form获取信息 8.4.3 HTTP Cookies与客户端信息 8.4.4 使用环境变量获取客户端信息 8.5 基本控制流程:分支和循环 8.5.1 条件语句和分支结构 8.5.2 循环语句 8.6 表达式基础 8.6.1 算术运算符 8.6.2 字符串运算符 8.6.3 赋值运算符 8.6.4 位运算符 8.6.5 逻辑运算符 8.6.6 比较运算符 8.7 PHP常用函数和MySQL数据库访问函数 8.7.1 PHP内置数学函数 8.7.2 日期时间围数 8.7.3 PHP的数据库功能及对MySQL数据库访问 第9章 建立BBS服务器 9.1 BBS服务器概述 9.2 Firebird BBS系统建站准备 9.2.1 最初的准备工作 9.2.2 BBS相关帐号的设置 9.3 Firebird BBS服务器系统安装 9.4 测试BBS并建立系统帐号 9.5 BBS相关配置 9.5.1 BBS配置文件sysconf.ini 9.5.2 sysconf.ini中定义的主要权限说明 9.5.3 版面的设置 9.5.4 Firebird BBS主要文件说明 9.6 BBS转信功能 9.6.1 主动式和被动式收信 9.6.2 BBS送信工作原理 9.6.3 安装转信程序innbbsd 第10章 服务器的安全性概述 10.1 服务器安全管理 10.1.1 安全防护的主要内容 10.1.2 Linux系统的文件安全 10.1.3 用户访问安全 10.1.4 日常安全注意事项 10.1.5 服务器被侵入后的处理 10.2 防火墙、IP伪装和代理服务器 10.2.1 什么是防火墙 10.2.2 防火墙分类 10.2.3 Linux防火墙实现策略 第11章 网站建设实例 11.1 Apache、PHP、MySQL简介 11.2 Apache、PHP、MySQL的安装 11.2.1 安装和启动MySQL 11.2.2 安装PHP+Apache 11.2.3 启动Apache并测试 11.2.4 测试MySQL数据库 11.3 网站设计和主页面制作 11.3.1 网站总体设计 11.3.2 网站风格设计 11.3.3 需要注意的问题 11.3.4 “Linux网站建设者”首页 11.4 网站设计和主页面制作 11.4.1 Web-BBS的结构分析 11.4.2 数据库的建立和测试 11.4.3 Web-BBS主页面制作 11.4.4 “发表文章”功能块制作 11.4.5 几点探讨和功能扩充

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值