使用内置 Web 服务器提供 HTML 文件
让我们通过使用 PHP 内置的 Web 服务器来“提供” .html 文件,创建最简单的 Web 应用程序。
设置开发环境
在本平台运行 PHP 应用程序时,无需进行任何环境配置。所有代码都会在我们为你准备的浏览器内特殊环境中运行。
本平台帮你避免陷入复杂的依赖问题,让你直接进入学习状态。
对于仍希望在本地运行 PHP 应用程序的用户,本课程已详细说明了相关步骤。出于简洁考虑,PHP 的安装步骤未包含在内。
创建 PHP 网页应用
首先,为你的项目创建一个目录。
该目录可以位于你电脑的任意位置。
例如,我们创建了一个名为 /home/matthias/Projects/php-for-the-web 的目录。
在你的 IDE 中打开这个目录(推荐使用 PhpStorm)。
然后,在项目目录中创建一个名为 index.html 的文件。
在该文件中粘贴以下 HTML 代码:
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <title>首页</title> 6</head> 7 8<body> 9 <h1>这是首页</h1> 10</body> 11 12</html>
在命令行中,使用 cd 命令进入你的项目目录(如果你使用的是 Windows 系统,可以右键点击项目目录,选择“在此处打开 Git-Bash”)。
1cd /home/matthias/Projects/php-for-the-web
接下来,我们来看看如何运行这个应用程序。
运行应用程序
我们可以启动 PHP 自带的内置 Web 服务器:
1php -S localhost:8000
在终端中,你应该会看到类似如下信息:
1[...] PHP [...] Development Server (http://localhost:8000) started
这表示 PHP 开发服务器(也称为内置服务器)已经启动。
服务器正在监听 localhost:8000。
这是因为我们在命令行中使用了 -S 选项指定了这个地址:
1php -S localhost:8000
为了验证服务器是否正常工作,请打开浏览器并访问 http://localhost:8000。你应该能看到“这是首页”。
注意: 你实际上并不需要手动跳转或打开任何网址,因为我们已经为你配置好了环境。课程中提供了编码练习环境,你可以随时在其中实践所学内容。此外,在我们的平台上,运行应用的 URL 并不是
localhost,而是使用http://APPLINK作为替代。从现在起,我们将使用
http://APPLINK代替localhost。在每个课程中的代码区域下方,运行按钮旁边会显示实际的应用程序访问链接。请记住,只有在代码执行完成后,该链接才会生效。
长时间运行的进程
服务器是一个持续运行的程序;你不需要每次查看首页都重新启动它。 这类程序通常被称为 长时间运行的进程。 为了确认服务器确实在持续运行,请打开浏览器并刷新页面。 你会再次看到首页内容。
让我们测试一下服务器是否能自动识别对 index.html 的修改。
在你的 IDE 中打开 index.html,将文本更改为其他内容,例如:
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <title>首页</title> 6</head> 7 8<body> 9 <h1>这是主页</h1> 10</body> 11 12</html>
返回浏览器并刷新页面。 你应该现在看到的是“这是主页”,而不是“这是首页”。
很好!
这意味着我们可以让服务器持续运行,修改 .html 文件后,只需刷新页面即可查看更改效果。
运行示例
为了方便你操作,我们已经为你完成了所有设置。只需点击下面的 运行 按钮来启动应用并查看输出结果。点击 运行 按钮下方提供的链接,可在新标签页中查看网页。
No configuration found for ID: 35c783931ba3d06ab179d6e23dbca5f062740ce9048d04b4d9d7c43164bf2489
现在,对文件进行修改并重新运行。你会看到更改已应用到程序中。当你切换到终端标签页时,会发现服务器并未重启。
终端标签页
回到终端。
这里有一些有趣的现象。
每次请求首页时,终端都会新增一行记录。
每行包含时间戳(如 Mon May 11 10:45:08 2020)、状态码(如 200)以及请求的 URL(如 /)。
1[Mon May 11 10:45:08 2020] [...] [200]: / 2[Mon May 11 10:51:27 2020] [...] [200]: /
你也可能看到类似这样的信息:
1[...] [...] [404]: /favicon.ico - No such file or directory
这是浏览器的行为:它尝试在浏览器标签页中显示一个图标(称为 favicon),并试图从你的服务器获取该文件。

**浏览器未请求 favicon.ico**
在某些情况下,浏览器可能不会向 /favicon.ico 发起请求。一种可能是你已在 http://APPLINK 上运行了另一个网站,浏览器使用了该网站的 favicon。另一种可能是浏览器对 favicon 不感兴趣。无论哪种情况,如果没有看到 404 请求都不影响使用,可继续进入下一节内容。