使用 Docker 设置 PHP 开发环境

以下文章摘自 PHP 和 MySQL:从新手到忍者,第 7 版,这是学习构建专业 Web 应用程序所需的所有工具、原则和技术的实践指南。 在本系列的第一篇教程中,我们介绍了如何使用 Docker 设置 PHP 开发环境。

    使用 Docker 设置 PHP 开发环境 PHP 初学者指南 MySQL 简介:初学者指南 在 Web 上显示来自 MySQL 的数据:简介

在本书中,我将指导您迈出第一步,超越使用 HTML、CSS 和 JavaScript 等纯客户端技术构建网页的静态世界。 我们将一起探索构建网站的世界,发现令人眼花缭乱的动态工具、概念和它们打开的可能性。 不管你做什么,都不要往下看!

好吧,也许你应该往下看。 毕竟,这就是本书其余部分所在的地方。 但请记住,您已收到警告!

在构建您的第一个动态网站之前,您必须收集工作所需的工具。 就像烤蛋糕一样,在开始按照食谱操作之前,您需要准备好配料。 在本章中,我将向您展示如何下载和设置所需的软件包。

如果您习惯于使用 HTML、CSS 甚至少量 JavaScript 构建网站,那么您可能熟悉将构成您网站的文件上传到特定位置。 它可能是您付费购买的网络托管服务、您的互联网服务提供商提供的网络空间,或者您工作的公司的 IT 部门设置的网络服务器。 在任何情况下,一旦您将文件复制到这些目的地中的任何一个,称为 Web 服务器的软件程序就能够在 Microsoft Edge、Internet Explorer、Google 等 Web 浏览器请求时找到并提供这些文件的副本Chrome、Safari 或 Firefox。 您可能听说过的常见 Web 服务器软件程序包括 Apache HTTP Server (Apache)、NGINX 和 Internet Information Services。

PHP 是一种服务器端脚本语言。 下载和使用完全免费。 您可以将其视为 Web 服务器的插件,使其能够做的不仅仅是发送 Web 浏览器请求的文件的精确副本。 安装 PHP 后,您的 Web 服务器将能够运行称为 PHP 脚本的小程序,这些程序可以执行诸如从数据库中检索最新信息并在发送之前使用它动态生成网页之类的任务它发送给请求它的浏览器。 本书的大部分内容将专注于编写 PHP 脚本来实现这一点。

要让 PHP 脚本从数据库中检索信息,您必须首先拥有一个数据库。 这就是 MySQL 的用武之地。MySQL 是一种关系数据库管理系统,即 RDBMS。 我们将在稍后讨论它所扮演的确切角色以及它是如何工作的,但简而言之,它是一个软件程序,能够有效地组织和管理许多信息,同时跟踪所有这些信息如何相互关联。 MySQL 还使使用服务器端脚本语言(如 PHP)访问这些信息变得非常容易。 而且,与 PHP 一样,它对大多数用途都是完全免费的。

第一章的目标是为您设置一个配备了 PHP 和 MySQL 的 Web 服务器。 我将提供适用于最新版本的 Windows、macOS 和 Linux 的分步说明,因此无论您使用的是哪种类型的计算机,您需要的说明都应该在这里。

您自己的网络服务器

很有可能,您当前的网络托管服务商的网络服务器已经安装了 PHP 和 MySQL——这也是 PHP 和 MySQL 如此受欢迎的原因之一。 如果您的虚拟主机如此配备,那么好消息是您将能够发布您的第一个网站,而无需购买支持正确技术的虚拟主机。

在开发静态网站时,您只需将 HTML 文件直接从硬盘加载到浏览器中,即可查看它们的外观。 执行此操作时不涉及 Web 服务器软件,这很好,因为 Web 浏览器可以自行读取和理解 HTML 代码。

但是,当谈到使用 PHP 和 MySQL 构建的动态网站时,您的 Web 浏览器需要一些帮助。 Web 浏览器无法理解 PHP 脚本。 相反,PHP 脚本包含让精通 PHP 的 Web 服务器执行的指令,以便生成浏览器可以理解的 HTML 代码。

即使您拥有支持 PHP 的现有 Web 主机,您仍然希望能够自己运行 PHP 脚本,而无需使用其他人的服务器。 为此,您需要设置自己的 Web 服务器。 “服务器”一词可能会让您想到一个装有空调的大房间,里面装满了机架中的大型计算机。 但别担心,您不需要任何花哨的新硬件。 您的笔记本电脑或台式电脑可以正常工作。

要在您的虚拟主机上运行 PHP 脚本,您需要在您的编辑器中编写它们,打开您的 FTP 或 SSH 客户端并将它们上传到服务器。 只有这样,您才能通过导航到您创建的文件的 URI 在浏览器中看到结果。 如果您犯了一个错误并且出现错误,您需要更改代码,返回到您的 FTP 程序,再次上传文件,然后重新加载页面。 这很乏味,并且会占用您本可以用于编写代码的宝贵时间。 通过在您自己的 PC 上运行服务器,您将能够在编辑器中保存文件并通过简单地刷新页面在浏览器中查看更改 — 无需上传文件。 这是一个真正的节省时间,也是在您的 PC 上运行服务器的最大(虽然不仅仅是!)优势之一——即使您已经拥有一个非常好的网络主机。

那么如何让 Web 服务器在您的 PC 上运行呢? 有四种方法可以实现这一点,每种方法都有自己的优点和缺点。

服务器设置 1:手动安装所有软件组件

Apache 是一种网络服务器,与大多数软件一样,它带有一个安装程序,可以让您轻松地在您的 PC 上进行设置。 无需太多努力,您就可以让它为网页提供服务。 但是,有数百个配置选项,除非您知道自己在做什么,否则要让它用于开发 PHP 网站可能会非常耗时且令人困惑。

对于我们运行 PHP 脚本的目的,仅 Web 服务器是不够的。 对于手动安装,您还需要安装 PHP(它没有安装程序)并进行配置。 与 Apache 一样,有很多选项,默认设置就像您在运行实时网站一样。 对于开发代码,这是不好的,因为没有显示错误。 如果你犯了一个错误,你会得到一个空白页面,没有任何错误的指示。 即使是一个不合适的字符——比如缺少大括号或分号——也会给你一个空白页面,没有任何指示导致问题的原因。 要解决这个问题,您需要手动配置 PHP 安装并调整设置以显示错误消息并启用其他工具,使开发工作变得更愉快。

您还需要配置 Apache 以与 PHP 通信,这样当有人连接到服务器并请求带有 .php 扩展名,文件首先发送到 PHP 进行处理。

为了继续学习本书,您还需要 MySQL,这意味着还要手动安装和配置它。

Apache、MySQL 和 PHP 都有许多配置选项,除非您确切地知道自己在做什么,否则很难设置它们。 即使您是专家,也至少需要一个小时才能让一切正常运行!

手动安装需要大量的知识或研究,超出了本书的范围。 可以肯定的是,能够配置服务器是一项有用的技能,但它并不能帮助您学习如何使用 PHP 进行编程——如果您正在阅读本书,这才是您真正感兴趣的内容。

这个选项不适合胆小的人,即使是经验丰富的专业人士也很容易错过一些重要的设置。 如果您真的想手动安装和配置您的设置,请查看我们在 Windows 上安装 PHP 的指南。 但是,如果您不想单独设置和配置所有软件,还有一些不错的选择。

服务器设置 2:预打包安装

手动安装的问题多年来已被开发人员团体认识到,为了克服这些问题,他们构建了预打包安装——一个安装 PHP、Apache、MySQL 和其他相关软件的单一安装程序,所有这些都预先配置了适当的像您这样的开发人员的设置。 这种包最流行的例子是 XAMPP:X(任何操作系统)、Apache、MySQL(或更具体地说,MariaDB,MySQL 的一个“分支”,具有更好的许可)、PHP 和 Perl。 备选方案包括 WAMP(Windows、Apache、MySQL 和 PHP)、LAMP(Linux、Apache、MySQL 和 PHP)和 MAMP(macOS、Apache、MySQL 和 PHP)。

这显然比手动安装每个软件要简单得多,而且不需要您学习如何配置您的服务器。 它快速、简单,比手动安装好得多,但使用此方法仍可能会遇到一些问题,如下所列。

    您的虚拟主机可能正在运行 Linux,但您的 PC 可能不是。 尽管 Apache、MySQL 和 PHP 可以在 Windows、Linux 或 macOS 中运行,但这些操作系统的工作方式存在一些很大的差异。 在 Windows 上,文件名不区分大小写,这意味着 FILE.PHP 是相同的 file.phpfIlE.pHp. 在您的虚拟主机上,几乎可以肯定不会出现这种情况! 当在您的 Windows 开发服务器上完美运行的脚本在上传后无法运行时,这会导致频繁出现问题,因为代码中引用的文件大小写错误。 Apache 和 MySQL 是服务器,它们在后台运行。 即使您不在开发软件,它们也会运行,耗尽计算机的 RAM 和处理能力。 预打包的软件总是有点过时。 虽然安全修复不是开发计算机的优先事项(你不应该允许人们通过 Web 访问它!),但对于开发人员来说,始终使用最新版本的软件来检查可能存在的问题总是很有用的当您的虚拟主机上的软件更新时遇到。 如果您的 Web 主机使用的 PHP 版本比您的开发服务器更新,这可能会导致已更改或删除的功能出现问题。 最后,开发人员喜欢在新功能发布时试用它们。 如果您使用的不是最新版本,您将无法执行此操作!

虽然预打包安装比安装要好得多,但这些问题并不能使它们变得理想。 幸运的是,还有更好的方法!

服务器设置 3:虚拟服务器

第三种启动和运行服务器的方法是“虚拟服务器”。 虚拟服务器就像另一台计算机上的 Web 服务器。 这台计算机可以运行任何操作系统,您可以从您的 PC 连接到它,就好像它在世界的其他地方一样。

VirtualBox 等虚拟化软件和 VMware 提供的工具很常见。 作为 Web 开发人员,您可能熟悉 modern.ie 等工具,这是 Microsoft 提供的一项有用服务,可让您下载运行各种版本的 Windows、Microsoft Edge 和 Internet Explorer 的虚拟机。 如果您想在 Windows XP 上的 Internet Explorer 8 中查看您的网站的外观,您可以下载相关虚拟机并在 Windows 10/macOS/Linux 桌面上的 Window 中运行它,而无需实际安装和运行 Windows 7现有 Windows 10、Linux 或 macOS 安装中的 Internet Explorer 8。

像 VirtualBox 这样的软件允许您在另一个操作系统中运行一个操作系统。 要测试 Internet Explorer 8,您可以在虚拟机中运行 Windows 7。 然而,为了我们运行 PHP 脚本的目的,这允许我们做一些更酷的事情:我们可以运行一个 Linux Web 服务器,在我们的 Windows 或 macOS PC 上安装了 PHP、Apache 和 MySQL。

这可用于允许您在完全相同的操作系统上运行与您的 Web 主机上使用的完全相同版本的 PHP、MySQL 和 Apache,这可以防止由于版本差异或系统差异而可能存在的任何问题。正在使用的操作系统。

最大的优势之一是您可以下载预配置的虚拟机,例如 Microsoft 提供的 Windows XP 和 Internet Explorer 8 虚拟机,或者安装并配置为协同工作的 PHP、Apache 和 MySQL 的虚拟机。 这类似于预先配置的软件包,但在 Linux 上运行时就好像它是您网络上的真实 Web 服务器一样。

所有这一切的缺点是……

阅读更多

发表评论

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