PHP Web服务端开发-01-本地服务端搭建

网站

可以在浏览器上通过一个地址直接访问使用
用于提供一种(或多种)特定服务的一系列具备相关性的网页组合的整体
例如:博客、门户、电商、在线教育等

项目流程

明确业务-->根据分析需求-->设计功能-->具体实现功能-->部署上线

网站开发:
在这里插入图片描述
已学习
在这里插入图片描述
还缺:
在这里插入图片描述

搭建Web服务器

在这里插入图片描述
我们手头上的电脑都可以是一台服务器,因为服务器是一个相对的概念,只要能提供服务就可以是一个服务器(提供服务的时候就是服务端,使用服务的时候就是客户端)。
既然服务器就是安装特定的软件的计算机,那么要让自己的成为 Web 服务器就是要安装一个 Web 服务器软件。

常用Web服务器软件
Nginx ······································ 反向代理
Apache ····································· PHP
IIS ········································ ASP.NET
Tomcat ····································· Java

安装Apache

下载地址:Apache下载

安装

1.解压到纯英文路径的文件夹,然后执行以下命令
在这里插入图片描述
2.可能会出现以下情况,按提示在命令行首添加 .\
在这里插入图片描述
3.执行安装命令过后会报一个错,原因是默认的配置文件有问题,需要先调整一下配置文件 conf/httpd.conf ,才能正常启动服务。
在这里插入图片描述
4.找到 Apache 解压目录中的 conf 目录下的 httpd.conf 文件,定位到报错行,将 c:/Apache24 改为解压目录,我这里解压到路径是D:/Apache/Apache24

修改完以后,执行以下命令重新测试配置文件是否通过

httpd.exe ‐t

5.如果仍然报错,说明httpd.conf 文件中还有路径需要修改(多个),如果如下图则成功,关于Server Name警告提示继续如第二张图更改httpd.conf文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

提供Web服务
启动 Apache,让别人可以使用你机器上安装的 Apache 提供的 Web 服务,访问你机器上的网站。这种情况下你的机器就是服务器,别人的机器就是客户端。
注意:
确保配置文件语法检查通过
确保 80 端口没有被其他程序占用
确保防火墙允许 80 端口的请求,或者干脆关掉防火墙
如果出现 Forbidden 情况,确保配置文件 httpd.conf 中 247 行( DocumentRoot 之后)的 Directory 配
置的与 DocumentRoot 路径相同
我们在开发阶段大多数都是自己访问自己机器上的网站,那这种情况下,我们既是服务端又是客户端。对于
新手来说,最常见的问题就是分不清楚哪是客户端应该有的,哪是服务端应该有的。这种时候一定要保持清
醒,客户端局限在浏览器窗口,代码以及 Apache 相关的文件和配置都是放在服务端的。

网络基础概念

IP地址

设备在某一个网络中的地址,目前最常见的格式: [0-255].[0-255].[0-255].[0-255] 即为四个 0-255 的数字组成。
作用就是标识一个网络设备(计算机、手机、电视)在某一个具体的网络当中的地址
127.0.0.1 是本地回环地址
单个网络

在单个局域网下,结构非常简单,就是我们所连接的网络设备(网关)给我们分配了一个地址,在这个范围之内我们都可以通过这个地址找到我们的这个设备。
如果设备没有连接任何网络情况下,我们会有一个本地回环地址 127.0.0.1
在这里插入图片描述

多个网络情况

当一个设备同时处于多个网络下(比如同时连接了有线网卡和无线网卡),就会变得稍微复杂一点:
在这里插入图片描述
例如:
小明这个同学同时报名了两个课程,在 A 班级小明是班长,所有 A 班级的同学都管他叫班长(叫班长就能找
到他)。而在 B 班级小明是课代表,所有 B 班的同学都管他叫课代表(叫课代表就能找到他)。
同样的一个人在不同的环境有不同的身份,这些身份只有特定的环境才生效。

域名

由于 IP 地址都是没有规律的一些数字组成的,很难被人记住,不利于广泛传播,所以就有人想出来要给 IP 起名字(别名)。

DNS

通过宽带运营商提供的服务器解析一个域名背后对应的 IP,这个过程叫做 DNS 寻址,帮你完成 DNS 寻址过程的服务器叫做 DNS 服务器。

hosts 文件

操作系统在发起对 DNS 服务器的查询请求之前,会优先检查本机的 hosts 文件。如果这个文件中包含了对当前需要解析的域名的配置,则不再发起对 DNS 服务器的请求,直接使用 hosts 文件中的配置。

文件所在路径:Windows--》 C:\Windows\System32\drivers\etc\hosts
			macOS: /etc/		

注意:
	本机的 hosts 文件配置只能到影响本机的 DNS 寻址
	只有以管理员权限运行的编辑器才有权利修改 hosts 文件

在这里插入图片描述
在这里插入图片描述

端口

计算机本身是一个封闭的环境,就像是一个大楼,如果需要有数据通信往来,必须有门;
这个门在术语中就叫端口,每一个端口都有一个编号,每台计算机只有 65536 个端口(0-65535)

可以通过在命令行中运行: netstat -an 命令监视本机端口使用情况
http 默认的端口 80	//电信、移动、联通的80端口被封,所以无法私人架设网站
https 默认的端口是 443

URL

URL(Uniform Resource Locator),统一资源定位符,通俗点来说就是表示网络当中某一个网页的完整访问地址,它具有一定的格式
在这里插入图片描述

Web请求响应流程

  • 用户打开浏览器
  • 地址栏输入我们需要访问的网站网址(URL)
  • 浏览器通过 DNS 服务器获取即将访问的网站 IP 地址
  • 浏览器发起一个对这个 IP 的请求
  • 服务端接收到这个请求,进行相应的处理
  • 服务端将处理完的结果返回给客户端浏览器
  • 浏览器将服务端返回的结果呈现到界面上

配置Apache

配置文档:Apache配置文档

  • 监听端口
    监听端口可以随意修改为任意一个未被其他程序监听的端口;
    可以通过设置配置文件 httpd.conf 中的 Listen指令后面的数字修改 在这里插入图片描述

  • 网站根目录
    网站根目录就是存放我们网站文件的最顶层目录,通常 URL 中域名后面的第一个斜线对应(映射)的就是网站根目录。
    默认文档指的是我们在访问某一个目录时(没有指定具体的文件),默认访问的文件叫做默认文档
    注:动态网站情况会比较特殊,需要单独考虑,不一定是这个规则。

    默认 Apache 的网站根目录是安装目录中的 htdocs 文件夹,为了方便对网站文件的管理,一般我们会将其设置在一个自定义目录中(如果你不介意其实不修改也无所谓)。
    如果需要设置网站根目录,可以通过修改配置文件 httpd.conf 中的网站根目录选项切换
    在这里插入图片描述

  • 默认文档
    当客户端访问的是一个目录而不是具体文件时,服务端默认返回这个目录下的某个文档(文件),这个文档就称之为默认文档

    默认文档可以配置多个(有前到后依次去找,找到为止,如
    果没找到任何一个则启用目录浏览):
    在这里插入图片描述
    关闭目录浏览,增加网站安全性,删掉下图红框内内容
    在这里插入图片描述

  • 虚拟主机
    如果一台机器上只有一个网站的话,没有任何问题,但是如果想要在一台机器上部署多个站点,就必须通过配置虚拟主机的方式解决。

    由于后期对虚拟主机的配置操作非常常见,所以我们一般将虚拟主机的配置单独放到一个配置文件中,然后在主配置文件中引入,避免破坏主配置文件中的其他配置。
    Include conf/extra/httpd-vhosts.conf 配置的作用就将另外一个配置文件引入(使其生效)

    具体的操作方式就是在主配置文件 httpd.conf 的 如下行取消注释:
    在这里插入图片描述
    然后找到 Apache 的虚拟主机配置文件(D:\Apache\Apache24\conf\extra\httpd-vhosts.conf),添加一个如下的虚拟主机配置节点,然后重新启动 Apache
    在这里插入图片描述
    在这里插入图片描述
    如果是多个虚拟主机,则一定要配置不同的ServerName
    且在主配置文件 httpd.conf 中多添加一个可访问目录
    在这里插入图片描述
    或在虚拟主机配置文件httpd-vhosts.conf中添加可访问文件目录
    在这里插入图片描述

如果真的要使用 baixiu.com 这个域名的话,就只能通过修改 hosts 文件达到目的,原因很简单:这个域名不是
我们自己的,我们没有办法修改这个域名在公网上的 DNS。

**注意**:
如果使用了虚拟主机,则默认必须全部使用虚拟主机,即之前的默认网站也必须通过虚拟主机方式配置,否则访问不到。
参考:http://skypegnu1.blog.51cto.com/8991766/1532454
如果虚拟主机的端口使用的不是 80 ,则需要在主配置文件中添加

在这里插入图片描述

静态网站和动态网站

  • 我们已经可以把这些静态页面放到服务器上了,客户端也可以通过域名请求这个网站,但是对于我们来说,Apache 能够完成的事情过于简单,无外乎就是找到你请求对应的文件 → 读取文件 → 将文件内容响应给客户端浏览器(文件原封不动的给你)。无法满足让网页内容动起来(随着数据动态变化)的需求。

  • 于是乎,就有人提出了服务端动态网页的概念,这种实现这种概念的技术有很多种:JSP、ASP.NET、PHP、Node等等。

  • 这些技术的原理就是:不再将 HTML 固定写死,每次用户请求时,动态执行一段代码,临时生成一个用户想要的HTML 页面。
    在这里插入图片描述

  • 动态网站指的也就是每次请求时服务端动态生成 HTML 返回给用户的这种网站

配置PHP支持

Apache 只能处理静态文件请求,对于后缀名为 .php 这种动态文件,它无法执行,就会当成是一个静态文件直接返回,所以需要进行配置。
  • 在服务器上安装 PHP
    解压 php 到纯英文路径目录中

  • 在 Apache 中添加支持 PHP 的配置
    1.在 Apache 主配置文件中添加 PHP 处理模块

    # php support
    LoadModule php7_module	php解压路径/php7apache2_4.dll
    

    在这里插入图片描述
    2.在主配置文件<IfModule mime_module> 节点中添加 .php 扩展名解析支持

    # parse .php files
    AddType application/x‐httpd‐php .php
    

    在这里插入图片描述

    3.默认文档配置节点 中添加 index.php
    默认文档指的是在访问一个目录而不是具体文件名时,默认执行的文件名

    <IfModule dir_module>
    	DirectoryIndex index.html index.php
    </IfModule>
    

    4.重启 Apache

Apache和PHP

对于很多初学者来说,很容易把 Apache 和 PHP 混在一起 混为一谈;
其实他们两者各自有各自负责的领域,各自的职责,但是我们在使用 PHP 做动态网站开发时,两者就会产生联系
具体如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42966943/article/details/88759795