Windows XP下PHP+MySQL环境搭建(3)
设置 Apache Web 服务器
下载 Apache
在开始进行 Web 开发之前,需要一个 Web 服务器。虽然存在大量的商业选择,但是 Apache 仍然是提供 Web 内容方面事实上的标准。而且,Apache 易于配置。它不带花哨的 Web 控制台,我将随时采用 GUI 上的纯文本文件。编辑文本文件非常简单,您只需 Notepad 或 Wordpad 即可。此外,Apache 速度非常快,而 Web 服务器就应该这样,对吗?它应该简单、易于使用且速度快。
要开始,请访问 Apache Web 站点。 在左侧的 Apache Projects 下方,单击 HTTP Server 链接。这会带您进入主 Apache Web 服务器站点。 在这里,单击 Download from a mirror 链接,此链接也位于页面左侧。这将使您进入一个类似图 1 中显示的页面。
向下滚动到 Apache 2.0 section;将会显示类似 "Apache 2.0.54 is the best available version." 之类的内容。现在单击 Win32 binary 的链接。在我写作本文时,文件名是 apache_2.0.54-win32-x86-no_ssl.msi。将此文件保存到磁盘,确保将它存放在您能够记住的位置(没有什么比完成了全部这些步骤,却忘记了存放文件的位置更糟的了)。因为您将仅使用此文件来启动安装,所以可以将此文件放置到桌面上。
安装服务器
双击下载的文件,启动 Apache 安装过程。您将首先看到一个漂亮的徽标和一条欢迎消息。单击 Next 进入下一个屏幕。
您必须接受 Apache 许可条款才能继续。虽然许多人会告诉您快速浏览一下这些内容即可,我还是建议您停下来仔细阅读整个许可条款。您只需细读这一遍,然后在后续的安装中快速浏览即可。对于那些忽视我的许可条款告诫的人来说,Apache 许可条款正如事实上那样没有约束力。基本上,您能够对此软件进行任何操作。更改它、向它添加内容、从其中移除代码;但是,因为您没有使用源代码,所以这对您没有实际影响。接受这些条款,然后再次单击 Next 。
下一个屏幕会为您提供一些选项(终于到这一步了)。类似这种个人安装上的网络域实际上不那么重要。您可以将它设为 ISP 的域(例如 grandenetworks.com),或者希望在家庭或办公室网络中使用的域(例如 gilead.net),或者任何符合基本 Internet 格式的内容。服务器名称应该是和您的计算机的主机名称相同的名称。同样,在个人 Windows XP 安装上,这实际上也不重要(正如很快将看到的那样,可以使用 localhost 来访问此安装)。接下来设置管理员的电子邮件地址;我使用类似 webmaster@gilead.net 的格式。最后,决定为所有用户还是仅当前用户安装此软件。我倾向于为所有用户安装程序,万一我的妻子也决定将编程作为爱好呢(开玩笑的)。此选项还将服务器设置到默认的 HTTP Web 服务器端口 80(这是您希望的)。
如果本文是一篇关于在产品服务器上设置 Apache 的教程,那么我真的应该在这里花些时间。设置域和服务器名称对于确保其他机器能够访问您的新服务器来说是至关重要的。大多数开发机器是运行在本地网络中的膝上型电脑或台式电脑,这些网络通过 DHCP (Dynamic Host Configuration Protocol) 提供 IP 地址。这意味着每次机器启动时,您可能会拥有不同的 IP 地址,这样域名和主机名称基本上就没用了,至少在其他机器访问您的 Web 服务器时如此。在本步骤中随意设置这些值然后继续。
在下一步中,选择 Typical 设置,然后继续。您可能会缺少在 Apache 模块中进行编译所需的某些文件,但是您可能暂时并不需要。Typical 设置对于您的当前的学习目的来说足够了。接下来,选择安装 Apache 的文件夹;除非您有一个充分的理由来更改默认地址,否则请接受默认地址。这可使升级和重新安装更容易。最后,单击 Install。您将看到几个进程指示条,在等待的时候,您不妨喝点饮料休息一下。在此过程接近完成时,您将看到弹出几个命令 shell (快速显示然后消失的黑色窗口)。您可能还必须让防火墙或 Internet 安全软件知道 Apache 可以接受传入端口上的连接。
上述所有操作完成之后,单击 Finish。删除安装文件(可能位于桌面上,如果您遵循上述操作说明的话),现在您已经完成了安装操作。作为完整性检查,现在您的系统托盘中应该有一个 Apache 小图标在运行,如图 2 所示。
设置文档目录
默认情况下,Apache 为您设置一个存放 HTML 和图像文件的目录,以便 Web 客户机能够访问它们。如果您将 Apache 安装在其默认位置,则此 Web 文档目录是 C:\Program Files\Apache Group\Apache2\htdocs。使用此位置没什么不对的地方,但是也没什么特别的好处。例如,我通常备份我的 Windows 的 My Documents 目录。我在此位置存储我的全部编辑、写作和编程文件,这就使备份和恢复操作变得非常容易。然而,此实践将完全忽略您为 Apache 创建的所有 Web 站点文件。我建议您将 C:\Program Files\Apache Group\Apache2\htdocs 添加到您进行备份的目录,但是这么做有一些麻烦。甚至更糟,当您升级 Apache 时,新的版本可能会删除或覆盖此目录。
我更愿意让 Apache 在一个不同的位置查找 Web 文件 —— 自然,此位置位于 My Documents 目录下。这是一个容易实现的更改。
首先,在 My Documents 下创建一个子目录;我使用 websites 作为目录名,因为此名称的含义是不言自明的。请参阅图 3 来获得可视化辅助。
图 3. My Documents 下的 websites 目录
现在您能够告诉 Apache 在这个备选位置查找 Web 文件了。几乎所有 Apache 的配置都通过一个简单的文本文件 httpd.conf 处理,此文件位于 C:\Program Files\Apache Group\Apache2\conf 目录中。打开此文件;它很长,但是我将指导您进行需要的操作。
默认情况下,Windows 使用 Notepad 打开此文件。按下 Ctrl+F 来打开搜索对话框(如果您使用的是其他编辑器,可以使用该应用程序的搜索命令)。在搜索对话框中,输入 DocumentRoot。您将看到一个类似以下内容的条目:
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"
DocumentRoot 是 Apache 用来代表其默认 Web 目录的键。要使 Apache 查找其他位置,只需使用您自己的目录替换此条目即可,如下所示:
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Documents and Settings/Brett McLaughlin/My Documents/websites"
请确保路径包括在引号中。这让 Apache 可以处理长 Windows 路径名称。
您还需要在另一个位置进行更改;向下滚动几行,将看到一个如下所示的注释:
#
# This should be changed to whatever you set DocumentRoot to.
#
不用说,遵照此说明进行更改:
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Documents and Settings/Brett McLaughlin/My Documents/websites">
您必须重启服务器,才能使 Apache 识别这些更改。右击位于系统托盘中的 Apache 图标(如图 2 所示),单击 Open Apache Monitor。然后在此监视器的右侧,单击 Restart。此 Service Monitor 反映了服务器的状态。现在您只需进行一些测试,来查看 它们是否工作正常。
测试安装
在启动 Web 浏览器之前,我必须和您回顾一个概念。请耐心些,我保证情况不会太坏。当您安装 Apache 时,它会在您的机器的 80 端口上设置商店。这很好,因为当您在 Web 浏览器中输入常规 URL 时,浏览器会自动尝试连接所请求的机器上的 80 端口。您可以选择添加一个类似以下内容的端口: http://www.oreilly.com:8080;但是因为您希望连接到默认端口,所以无需指定此额外信息。
这样,剩下的任务就是在端口号之前输入内容了。通常情况下,您将输入类似 radar.oreilly.com 或 www.thepokergeek.net 之类的内容。您之前可能曾经输入过一些内容作为服务器名称(例如 roland.gilead.net),但是这并不意味着当您在浏览器中输入此服务器名称时,它会起作用。您必须确保输入的名称映射到机器的 IP 地址。我在这里不会过多地介绍这些内容,而只会简单地告诉您一个小秘密:您总是可以通过 IP 地址 127.0.0.1 访问您正在使用的机器。这称为环回地址 ,它将您的请求环回到您的机器上。
当然,我讨厌打字,而 127.0.0.1 对于频繁使用来说有点过长了。您可以使用一个快捷方式来代替它,这个快捷方式是名称 localhost。它映射到环回地址,如下面的命令输出所示:
C:\Documents and Settings\Brett McLaughlin>ping localhost
Pinging Cuthbert [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\Documents and Settings\Brett McLaughlin>
请注意,名称 localhost 映射到 127.0.0.1。将此端口、IP 地址和 locahost 联系起来,您应在浏览器地址栏中输入的地址是 http://localhost。这会从位于端口 80 的本地服务器那里请求一个页面。结果应该类似图 4,尽管您将看到明显的错误。
图 4. Apache 报告一个 403 Forbidden 错误
尽管这不是一个典型的 Web 站点,但是它就是 我们想要的结果。记住,您创建了一个新目录(C:\Documents and Settings\Brett McLaughlin\My Documents\websites),并引导 Apache 在此目录中搜索 Web 文件。问题是此目录中目前没有任何文件。因此,Apache 会报告它不会显示您的空目录(一种安全措施)。修正此问题最容易的方法是导航到此目录,并创建一个简单的文件:
<html>
<head>
<title>My First Page</title>
</head>
<body>
<h1>My First Page</h1>
<p>Everything is working now!</p>
</body>
</html>
将此文件保存为 C:\Documents and Settings\Brett McLaughlin\My Documents\websites 下的 index.html 文件。默认情况下,Apache 会查找具有此名称的文件,因此,现在您应该能够重新加载浏览器页面了(或者重新输入 URL,如果您已经关闭了浏览器的话)。这次的响应会更有用些,如图 5 所示。
现在,您已经安装了 Apache,并准备好使用了。去吃点东西,休息一下,然后再回来 —— 您接下来将继续学习 PHP