第1章 安装
PHP和MySQL Web开发从新手到高手(第5版)
在本书中,我们将帮助你跨出超越静态页面构建的第一步。静态页面,是使用HTML、CSS和JavaScript这样的纯客户端技术构建的。我们将一起探索数据库驱动的Web站点的世界,看看令人眼花缭乱的动态工具、概念以及它们所带来的各种可能。
在开始构建第一个动态Web站点之前,你必须收集完成这项工作所需的工具。在本章中,我们将介绍如何下载和安装所必需的两个软件包。你能猜出它们是什么吗?我给你一个提示:它们的名字就在本书的封面上。没错,这就是PHP和MySQL。
如果你过去经常使用HTML和CSS,甚至是用更加智能化的JavaScript来构建Web站点,你可能很熟悉将文件上传到某个位置以组成站点的方式。这可能是你已经付费的虚拟主机服务,由你的互联网服务提供商(Internet Service Provider,ISP)提供的Web空间,也可能是由你所在的公司的IT部门搭建的Web服务器。在任何情况下,一旦你将自己的文件复制到这些目的地中的任何一个,当Internet Explorer、Google Chrome、Safari或Firefox这样的Web浏览器请求这些文件的时候,一个叫作Web服务器的软件程序就能够找到并提供这些文件的副本。你可能听说过的Web服务器软件程序,包括Apache HTTP Server(Apache)和Internet Information Services(IIS)。
PHP是一种服务器端脚本编程语言。你可以将PHP看作是Web服务器的一个插件,它使得Web服务器能够做更多的工作,而不只是准确地发送Web浏览器所请求的文件的副本。安装了PHP之后,Web服务器将能够运行小程序(叫作PHP脚本),执行诸如此类的任务:从数据库提取最新的信息,用这些信息生成一个实时的Web页面,然后将其发送给请求该页面的浏览器。本书的大部分内容将集中介绍如何编写PHP脚本来做这样的事情。PHP可以完全免费地下载和使用。
要让PHP脚本从数据库获取信息,必须首先有一个数据库。这就是MySQL的用武之地。MySQL是一种关系数据库管理系统(Relational Database Management System,RDBMS)。稍后,我们将介绍MySQL的具体角色以及它是如何工作的。简言之,它是一种软件程序,能够高效地组织和管理众多的信息片段,同时记录这些信息片段之间是如何彼此关联的。MySQL还使得诸如PHP这样的服务器端脚本编程语言能够非常容易地访问那些信息,并且和PHP一样,MySQL也是完全免费使用的。
本章的目标是建立配备了PHP和MySQL的一个Web服务器。我将一步一步地指导你在最新的Windows和Mac OS X系统上工作,因此,不管你喜欢使用什么样的计算机,这里都有你所需要的内容。1
1 Linux用户将会在附录A中找到相关介绍,因为我猜想大多数人可能会想要以自己的方式安装,而不管我这里是怎么介绍的。
1.1 属于自己的Web服务器
PHP和MySQL Web开发从新手到高手(第5版)
如果你当前的虚拟主机的Web服务器已经安装了PHP和MySQL,那么,你很幸运。大多数虚拟主机确实会这么做,这也是PHP和MySQL如此流行的原因之一。如果是这样,那么,好消息是,你可以发布自己的第一个数据库驱动Web站点,而不必购买任何支持相应技术的虚拟主机服务。
然而,你仍然需要自己安装PHP和MySQL。这是因为,你需要配备了PHP和MySQL的Web服务器,以便可以在正式发布前测试数据库驱动Web站点。在开发静态Web站点的时候,你可以直接从硬盘将HTML文件加载到自己的浏览器中,预览它们的显示效果。当你这么做的时候,没有Web服务器软件也没问题,因为Web浏览器自身就能够阅读和理解HTML代码。
当使用PHP和MySQL来构建动态Web站点的时候,Web浏览器则需要一些帮助。虽然Web浏览器无法理解PHP脚本,然而,PHP脚本包含了针对能够理解PHP的Web服务器的指令,通过执行这些指令可以生成浏览器能够理解的HTML代码。因此,在开发属于自己的站点的时候,除了能够寄存站点的公共Web服务器之外,你还需要拥有自己的私有Web服务器以便在开发过程中使用。
如果你所在的公司有一个特别能干的IT部门,你可能发现已经有一个供开发使用的Web服务器。通常,你必须在寄存于内部Web服务器的一个网络驱动器上,操作站点的文件,该服务器可以安全地用于开发。当你准备好将站点部署并发布时,文件将会从网络驱动器复制到公共Web服务器上。
如果你足够幸运,能够在这种环境中工作,你可以略过本章的大部分内容。然而,你可能会向负责开发服务器的IT工作人员提出一些问题,这和在本章1.5节中列出的那些问题是相同的。因为,当你开始使用人们提供的有用的PHP和MySQL支持的时候,你需要获知一些关键信息。