WordPress与网络服务器

欢迎来到 WordPress 与 Web 服务器入门指南。

如果你想开发自定义的 WordPress 网站、插件或主题,了解 WordPress 在底层是如何运作的非常重要。

你应该首先了解的事情之一就是 WordPress 和 Web 服务器是如何协同工作的。

在本课中,你将学习 Web 服务器的基础知识,以及它们如何驱动你的 WordPress 网站。

什么是 Web 服务器?

在最基本的层面上,WordPress 是一个运行在 Web 服务器上的 Web 应用程序。但是,Web 服务器由什么组成,又是什么让 Web 服务器能够运行 WordPress 呢?

Web 服务器是一台连接到互联网并配置为提供网页服务的计算机。Web 服务器有各种形状、大小和配置,但归根结底,它们都只是计算机,就像你每天工作使用的那台一样。

Web 服务器的不同之处在于,它安装并配置了软件,用于提供像 WordPress 这样的 Web 应用程序服务。

WordPress 运行在一个名为 LAMP 的技术栈上。LAMP 代表 Linux、Apache、MySQL 和 PHP。

Linux 是管理服务器硬件和软件资源的操作系统。流行的 Linux 发行版包括 Debian、Ubuntu、RedHat 和 AlmaLinux。这些操作系统由 Linux 内核和安装在内核之上的一系列软件包组成。

Apache、MySQL 和 PHP 都是通过服务器上特定 Linux 发行版的包管理器安装的。

Apache 是用于在 Web 服务器上提供信息服务的 Web 服务器软件。当你在浏览器中输入 URL 时,浏览器会向 Web 服务器发送一个请求,请求某些信息。然后,Web 服务器会响应你所请求的信息。Web 服务器软件正是实现这一过程的关键。

Apache 的一个流行替代品叫做 Nginx。Nginx 是一款相对较新的 Web 服务器软件,通常被认为在提供静态内容方面比 Apache 更快、更高效。当使用 Nginx 时,技术栈被称为 LEMP,代表 Linux、Nginx、MySQL 和 PHP。

默认情况下,Apache 和 Nginx 被配置为提供静态文件服务。静态文件是指不会改变的文件。静态文件的例子包括 HTML 文件、图像文件或视频文件。HTML 文件可以使用 CSS 进行样式设计,并可以使用 JavaScript 实现交互功能。

MySQL 是一种数据库软件,用于在 Web 服务器上存储有关网站的信息。例如,如果你正在运营一个在线商店,你需要存储所售产品的信息。这时就需要用到 MySQL 数据库。

PHP 是一种用于创建动态网页的编程语言。PHP 是一种服务器端语言,这意味着它在 Web 服务器上执行,并将结果发送到浏览器。在上面的在线商店示例中,PHP 用于从 MySQL 数据库中获取产品信息,并将其显示在浏览器的网页上。

Apache/Nginx 配置

当你在服务器上安装 Apache 或 Nginx 时,可以配置一些文件来改变 Web 服务器的工作方式。通常,这种配置由服务器系统管理员完成。然而,了解一个特定的配置集很有用,那就是允许单个 Web 服务器实例为多个网站提供内容的配置。

在 Apache 上,这被称为虚拟主机(virtual host),在 Nginx 上,这被称为服务器块(server block),但它们的作用相同。它们允许你配置 Web 服务器,为不同的网站提供不同的内容。

以下是 Apache 虚拟主机配置的一个示例:

Listen 80
<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com
</VirtualHost>

以下是 Nginx 的相同示例:

server {
    listen 80;
    server_name www.example.com;
    root /www/example1;
}

在这两个示例中,Web 服务器都被配置为监听 80 端口上的请求,这是 HTTP 请求的默认端口。当服务器收到对域名 www.example.com 的请求时,它将提供位于目录 /www/example1 中的文件。

目录索引

默认情况下,Web 服务器被配置为查找目录索引文件。如果找到,它将提供该文件。如果找不到,它将返回 404 错误。默认的目录索引文件通常是 index.html

当 PHP 被安装并启用后,可以配置 Web 服务器查找并提供 PHP 文件作为目录索引。这通常是一个名为 index.php 的文件。

在 Apache 服务器配置中,这是通过 DirectoryIndex 指令完成的,而在 Nginx 中,这是通过 index 指令完成的。

DirectoryIndex index.php index.html
index index.php index.html;

在这两种情况下,index.php 在待查找的文件列表中都排在 index.html 之前。

大多数 LAMP 或 LEMP 网络服务器默认都会设置此配置。

因此,在上述示例中,设置了目录索引后,当您在浏览器中访问 www.example.com 时,网络服务器会在 /www/example1 目录中查找 index.php 目录索引文件并执行该文件。如果未找到 index.php,则会查找并提供 index.html 文件。如果仍未找到 index.html 文件,则会返回 404“未找到”错误。

WordPress 请求流程

当用户访问 WordPress 网站上的某个 URL 时,会发生以下过程:

  1. 浏览器向网络服务器发送请求,请求获取用户输入的 URL 所对应的数据
  2. 网络服务器接收请求,并确定应执行哪个文件来提供所请求的数据。
  3. 在 WordPress 网站中,对于前端请求,这将是根目录中的 index.php 文件;对于管理后台请求,则是 wp-admin 目录中的特定文件
  4. PHP 解释器执行 PHP 代码
  5. 如果需要,PHP 代码会与 MySQL 数据库交互,以检索所需的数据
  6. 然后 PHP 代码会输出 HTML 代码,并包含相关的 CSS 或 JavaScript
  7. 网络服务器将 HTML、CSS 和 JavaScript 代码发送回浏览器
  8. 浏览器渲染这些代码,并将页面显示给用户

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注