1.1 PHP开发环境搭建

PHP可以运行在绝大多数的系统上,如Windows、Linux等平台,本节将主要介绍如何在Windows平台下搭建PHP开发环境,具体内容如下。

  • Web应用开发的基本技术。
  • Apache服务器的安装与配置。
  • PHP语言集成开发工具的安装与配置。
  • MySQL数据库的安装与配置。
  • 应用实例简介--诚信管理论坛。

1.1.1 Web应用开发简介

相关知识

1. Web工作原理

WWW(World Wide Web)又称“万维网”,也简称Web,起源于1989年欧洲粒子物理研究室,当时用于研究人员互相传递文献资料。1991年,WWW首次在Internet上亮相,立即引起了强烈反响,并迅速获得推广应用。WWW是一个由许多互相链接的超文本Hyper Text文档组成的系统,通过Internet访问,是基于客户机/服务器(Client/Server)模式的信息发布和超文本技术的综合,Web工作原理如图1.1.1所示。

34805-009-1

图1.1.1 Web工作原理图

用户通过网页浏览器(Web Browser)向Web服务器(Web Server)发出一个HTTP(Hypertext Transfer Protocol,超文本传输协议)请求访问指定的URL(Uniform Resource Locator,统一资源定位符)。由Web服务器指定的URL通常是一个由HTML(Hypertext Markup Language,超文本标记语言)编写的网页(Web Page)文件,其中包含了许多链至其他文件的超链接(HyperLink),用户可以单击网页上的超链接,继续浏览其他网页文件,这种顺着超链接浏览的行为又叫浏览网页。相关的数据通常排成一群网页,又叫网站(Web Site),一台Web服务器上可以存放一个或多个网站的网页文件。

2. 静态网页和动态网页

网页分为静态网页和动态网页两种类型。在动态网页出现之前,采用传统的HTML编写的网页就是静态网页,目前大部分网页仍然属于静态网页。静态网页无须系统实时生成,网页风格灵活多样,但是静态网页在交互性能上比动态网页差,日常维护也更为繁琐。文件后缀名一般为htm或html,其处理过程如图1.1.2(a)所示。

所谓动态网页就是网页内含有程序代码(脚本),采用JSP、PHP、ASP、ASP.NET等技术动态生成的页面,这种网页通常在服务器端以扩展名JSP、PHP、ASP或是ASPX储存,表示里面的内容是Active Server Pages(动态服务器页面),有需要执行的程序。在接到用户的访问请求后,必须由服务器端先执行程序后,再用执行完的结果动态生成页面,并传输到用户的浏览器中,在浏览器上显示出来。这种网页要在服务器端执行一些程序,而执行程序时的条件不同,其执行的结果也可能会有所不同,所以称为动态网页。其处理流程如图1.1.2(b)所示。

34805-010-1

图1.1.2 Web处理过程图

表1.1.1列出了静态网页和动态网页的优缺点。

表1.1.1 静态网页和动态网页

34805-010-2

3. 网页编程语言

网页编程技术可分为前台编程技术和后台服务器编程技术。目前主要的前台编程技术包括Java Applet、JavaScript、VBScript、ActionScript、AJAX,下面分别简介如下。

(1)Java Applet。Java Applet是用Java语言编写的,包含在网页里的“小应用程序”。通常被放在Web服务器中。当有人上网浏览时,Applet随网页一起下载到客户端的浏览器中,并借助浏览器中的Java虚拟机进行工作。

(2)JavaScript。JavaScript是Netscape公司开发的一种Script脚本语言,使用浅显的程序语法,即使是程序设计初学者也可运用自如,轻松地在网页上建立互动效果;Jscript是Microsoft公司推出的兼容JavaScript的Script语言,简单地说,Netscape或Mozilla Firefox支持JavaScript;Internet Explorer支持Jscript。JavaScript定位于简单的Script语言,其目的是让不懂程序设计的用户也一样可以编写JavaScript程序代码来产生互动的网页内容。

(3)VBScript。VBScript属于Visual Basic语言家族的成员,全名为Microsoft Visual Basic Scripting Edition,简称VBScript。VBScript是一种完全免费的解释型程序语言,也是一种在浏览程序执行的网页语言,能够让网页设计者开发互动多媒体的网页内容,目前只有Internet Explorer浏览程序支持VBScript。

(4)ActionScript与Flash。ActionScript是Macromedia公司(后被Adobe公司收购)开发的一种Script脚本语言,它可以让Flash动画电影等产生互动效果,这是一种类似JavaScript语法的脚本语言。

Flash是Macromedia公司的一款产品,可以用来建立动画效果,浏览程序只需安装Flash播放程序,就可以在网页显示Flash动画效果。换句话说,Flash加上ActionScript,就可以轻松建立动画效果的网页应用程序。

(5)Ajax技术。Ajax是Asynchronous JavaScript And XML的缩写,即非同步JavaScript和XML技术。Ajax技术由多种网页技术所构成。

HTML和CSS:在浏览程序显示用户接口和相关数据。

XML:在服务器端使用XML文件来异步传递数据。

XML DOM:当浏览器端异步取得XML数据后,可以进一步使用JavaScript程序代码和XML DOM取出所需的信息。

XMLHttpRequest对象:JavaScript程序代码通过XMLHttpRequest对象来创建异步的HTTP请求。

后台服务器编程技术包括CGI、ASP/ASP.NET、JSP、PHP,下面简介如下。

(1)CGI。通用网关接口(Common Gateway Interface,CGI)定义了Web与其他应用程序相互访问的接口。这些应用程序可以以任何语言编写,以任何方式运行于服务器上。通过CGI接口,它们可以被Web服务器调用完成某种特定的功能。CGI是最早的动态网页开发技术,因其学习及开发较为困难,目前已较少使用。

(2)ASP。ASP(Active Server Page)是Microsoft公司推出一种服务器端命令执行环境,它可以让用户轻松地整合HTML Web页面、脚本程序和ActiveX组件,创建可靠的、功能强大的Web应用系统。ASP技术的优点是,简单易学、功能强大,其缺点是,有的网络操作系统不支持ASP技术或者支持得不好。

(3)JSP。JSP(Java Server Pages)是由Sun公司倡导、多家公司合作建立的一种动态网页技术,于1999年提出,目前已经成为最流行的Web开发技术之一。该技术的目的是整合已经存在的Java编程环境,如Java Applet是下载到客户端运行的程序代码;Java Servlet是在服务端运行的,而JSP则是结合HTML和Java Servlet的一种服务器端动态网页编程技术。JSP技术最大的优点是开放的、跨平台的结构,可以运行在几乎所有的服务器系统上。

(4)PHP。超级文本预处理器(Hypertext Preprocessor,PHP)是一种通用的、开源的(Open Source)服务端脚本语言,可以直接内嵌于HTML网页中,特别适合于Web网站的开发,是主要用在Linux/UNIX操作系统服务器端的动态网页技术,它目前也支持Windows操作系统和Microsoft公司的IIS服务器。

表1.1.2列出几种常见的网页编程技术的比较。

表1.1.2 几种网页编程技术的比较

34805-011-1

练一练

写下5个你熟悉的网站名称,并判断它们分别是使用何种编程技术实现的?

1.1.2 PHP简介

相关知识

1. PHP的发展历史

PHP诞生于1994年,它是由丹麦的Rasmus Lerdorf所创建的,最初它只是为了统计Rasmus Lerdorf网站的访问人数,而使用Perl语言编写的一个程序。1995年,Rasmus发布了第一个PHP版本,称为“Personal Home Page Tools(PHP Tools)”。这个版本只是一套简单的Perl脚本,它仅具有简单的语法分析引擎、访客留言本和计数器等功能,同年Rasmus使用C语言对它进行重构,命名为PHP/FI,并为其增加了接受HTML表单和数据库访问的功能,从此奠定了PHP在动态网页设计的基础,至1997年,使用PHP/FI开发的Web网站就超过5万个。

1997年,Zeev Suraski及Andi Gutmans在使用PHP/FI开发Web软件项目时,发现PHP的一些不足之处,便自愿加入PHP语言开发组,对PHP底层解析引擎进行重构,发布了PHP 3.0版本。2000年5月,PHP 4.0正式发布,它使用全新的脚本引擎——Zend,提高了运行效率,同时还实现了自动资源管理、对象重载、多维数组等多项重要扩展功能。

2004年7月,官方正式发布了PHP 5.0,这是一个里程碑式的版本,它在内置功能、语言方面均有极大的提高和完善,如完善了面向对象编程,引入了异常处理机制,增强了对XML的支持等。

2. PHP的特点

  • 开放源码:PHP遵守通用公共许可(GNU General Public License,GUN GPL)规则,所有的PHP源代码都可以通过Internet免费获得,并且,任何人都可以改写PHP源码,扩展其功能。
  • 跨平台:PHP是跨平台的,在任何平台下编写的PHP应用程序都可以直接移植到其他平台下运行,而不需要对程序做任何修改。
  • 程序运行效率高:PHP采用HTML内置标记技术解析器(PHP语法解析器)作为Web服务器的一个模块运行,这很大程度上提高了程序运行时的解析度。另外,由Web页面表单提交的数据将会自动成为PHP程序中与表单同名的变量,无须手工赋值,极大方便了程序员的编码工作。
  • 混合方式编程:PHP支持混合编程方式。程序可以分为纯粹面向对象、面向过程、面向过程与面向对象混合3种方式。
  • 支持面向对象模型:PHP 3.0开始支持面向对象编程,PHP 5.0对原有的面向对象语法进行了改造,实现了完全的面向对象编程。

3. 成功案例

随着PHP的推广和应用,目前采用PHP实现的网站也越来越多。

(1)腾讯。腾讯公司成立于1998年11月,是目前中国最大的Internet综合服务提供商之一,也是中国服务用户最多的Internet企业之一,其门户站点即使用PHP语言开发。

(2)PChome。PChome.net电脑之家网站是美国CBS(哥伦比亚广播公司)下属的全球第七大网络旗下的核心在线媒体,成立于1996年,是中国最优秀的IT及消费电子产品主流资讯平台之一;是国内最大、最早的下载平台;拥有国内最大的科技生活网络社区,网站日浏览量达2920万人次,拥有注册会员753万。

(3)Discuz!论坛系统。Discuz! Crossday Discuz! Board(简称Discuz!)是康盛创想(北京)科技有限公司推出的一套通用的社区论坛软件系统,采用PHP+MySQL实现,自2001年6月面世以来,Discuz!已拥有10年以上的应用历史和30多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。

4. 工作原理

PHP的工作原理如下。

(1)首先由客户端用户发出HTTP请求。通常是用户在浏览器的地址栏中输入网址,当然也可以通过单击网页中超链接的方式来实现。

(2)浏览器发送HTTP请求到Internet。根据HTTP中所包含的IP地址,Web服务器接收到客户端请求,并对HTTP请求进行处理。如果请求的是“.html”静态页面,则Web服务器直接将该页面内容返回给客户端;如果客户端产生的是对“.php”文件的请求,则Web服务器将请求传递给PHP引擎。

(3)PHP引擎分析客户端请求的目标脚本文件(后缀名为“.php”的文件),在服务器端解释并执行脚本文件,需要时与数据库进行交互,最后处理结果。

(4)在操作完成后,将结果转换成HTML代码的形式,返回给Web服务器。

(5)Web服务器将结果发送至客户端浏览器进行呈现。

在上述处理过程中,用户的请求首先传递给Web服务器软件进行处理,对于PHP文件的请求,则是由PHP引擎处理,并将处理结果返回给服务器,如图1.1.3所示。由此可知,Web服务器软件需要与PHP引擎同时工作,PHP有两种方式与服务器协作:一种是作为Web服务器软件的一个扩展模块;另一种方式是以CGI方式运行,这两种运行模式都可以通过配置来实现。

34805-013-1

图1.1.3 PHP的工作原理

1.1.3 搭建开发环境

相关知识

使用PHP语言开发应用程序,需要搭建PHP的运行环境与开发环境。由于本书主要介绍使用PHP语言开发Web应用程序,且PHP是与Apache服务器紧密融合的,因此本书将采用Apache(Web服务器)+PHP+MySQL(数据库)的技术平台,同时为提高开发效率选用Oracle公司的NetBeans作为集成开发工具。

目前PHP开发环境搭建有两种方式:一种是手工安装配置,即分别安装PHP、Apache和MySQL软件,然后通过配置,整合这3个软件,完成PHP开发环境的搭建;另一种是使用集成安装包自动安装,就是使用当前主流的集成安装包——WAMPServer,实现对上述3个软件的自动安装与配置。本书将分别介绍这两种安装配置方法。

1. Apache HTTP Server服务器安装与配置

Apache HTTP Server(简称Apache)是Apache软件基金会管理的一个开放源代码的Web服务器,可以在大多数操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl、PHP等解释器整合到服务器中。目前Apache最新的稳定版本是2.4.1(本书中使用的版本是2.2.21),任何人都可以从它的官方网站(网址为http://httpd.apache.org/)上免费获得该服务器软件。Apache服务器安装的具体步骤如下。

(1)从Apache官方网站上下载基于Windows平台的Apache HTTP Server2.2.21版安装包,如图1.1.4所示。

34805-014-1

图1.1.4 Apache HTTP Server安装包下载页面

(2)运行所下载的安装包文件“httpd-2.2.21-win32-x86-no_ssl.msi”,弹出如图1.1.5所示的Apache HTTP Server 2.2.21安装向导界面,单击“Next”按钮继续。

34805-015-1

图1.1.5 Apache安装界面

(3)确认同意软件安装使用许可条例,选择“I accept the term in the license agreement”,并单击“Next”按钮继续。

(4)阅读完将Apache安装到Windows上的使用须知后,单击“Next”按钮继续。

(5)设置系统信息,在Network Domain下填入用户的域名(如:126.com),在Server Name下填入服务器名称,在“Administrator's Email Address”下填入系统管理员的联系电子邮件地址,上述3项信息均可任意填写,填写完毕后单击“Next”按钮继续,如图1.1.6所示。

34805-015-2

图1.1.6 设置系统信息

(6)选择安装类型,Typical为默认安装,Custom为用户自定义安装,这里选择Typical,单击“Next”按钮继续,如图1.1.7所示。

34805-015-3

图1.1.7 安装类型

(7)选择安装路径,如需修改默认安装路径,单击“Change”按钮,手动指定安装目录,安装路径如图1.1.8所示。

34805-015-4

图1.1.8 安装路径

(8)选择安装路径后单击“Next”按钮,安装程序转入安装选项确认界面,如图1.1.9所示,当选项无误后,单击“Install”按钮开始按前面设定的选项进行安装。

34805-016-1

图1.1.9 安装选项确认界面

(9)安装程序执行安装操作,当安装完成后,在屏幕右下角的状态栏中出现如图1.1.10所示的图标,表示Apache服务已经开始运行,单击“Finish”按钮结束Apache的安装。

34805-016-2

图1.1.10 Apache服务运行图标

在图标上单击鼠标左键,将出现服务控制菜单,有“Start(启动)”、“Stop(停止)”、“Restart(重启动)”3个选项,可以很方便地对安装的Apache服务器进行操作(注:Apache服务器默认使用80端口)。Apache运行成功时,可以在浏览器上输入“http://localhost/”地址来判断服务器是否安装成功,如图1.1.11所示。Apache服务器的默认根目录是服务器软件安装目录下的“C:\Apache2.2\htdocs\”。

34805-016-3

图1.1.11 Apache服务器已安装成功界面

(10)Apache服务器配置。要使Apache服务器更好地服务用户,满足用户个性化的需求,就需要对Apache服务器进行配置。对Apache服务器的配置主要通过编辑“C:\Apache2.2\conf\”目录下的httpd.conf文件,如图1.1.12所示。在该文件中,以符号“#”开始的行为注释行,在每个参数之前,均通过注释行对参数的意义进行了说明。Apache中的主要参数如下。

34805-016-4

图1.1.12 Apache服务器配置文件

  • ServerAdmin:该参数设置管理员的E-mail地址,等同于安装过程中设置的E-mail地址,如:“ServerAdmin tojiangwen@126.com”。
  • ServerName:该参数设置服务器名称,等同于安装过程中设置的Server Name,如:“ServerName www.engine.com:80”。
  • DocumentRoot:该参数设置Web文件的根目录。默认情况下,Apache将客户端请求指向该目录,并在该目录下搜索被请求的页面,该参数默认值为“..\htdocs\”,如:“DocumentRoot "C:/Apache2.2/htdocs"”。
  • Listen:Listen参数指定服务器在哪个端口或地址和端口的组合上监听接入请求。如果只指定一个端口,服务器将在所有地址上监听该端口,该参数默认值为80。Listen参数是一个必须设置的参数。如果在配置文件中找不到这个参数,服务器将无法启动。例如,想要服务器接收80和8000端口上的请求,可以进行如下设置。
Listen 80
Listen 8000

如果需要在指定的IP地址端口进行监听,则需要在Listen参数中指定IP地址,例如:

Listen 192.168.1.100:80
  • <Directory "C:/Apache2.2/htdocs">和</Directory>:这部分参数用于设置对文件目录的访问选项。
  • DirectoryIndex:该参数设置文件目录中的默认检索文件。当客户端请求是指向服务器某个目录而不是某个具体文件时,Apache将请求指向该参数指定的文件。例如,默认页面设为index.html,index.php文件。
DirectoryIndex index.html index.php
  • LoadModule:加载目标文件或库,并将其添加到活动模块列表。例如,需要加载PHP模块,可以使用下面的指令。
LoadModule php5_module "c:/php/php5apache2_2.dll"
  • LimitRequestBody:LimitRequestBody可以让用户在其作用范围内(整个服务器、特定目录、特定文件、特定位置)设置允许客户端发送HTTP请求的最大字节数的限制。如果客户端的请求超出了这个限制,服务器会回应一个错误而不是响应这个请求。例如,如果允许上传文件的大小设置为100KB,可以使用下面的指令。
LimitRequestBody 102400
  • LimitRequestFieldSize:该参数允许服务器管理员增大或减小HTTP请求头域大小的限制。
  • AddType:该参数在给定的文件扩展名与特定的内容类型之间建立映射关系。例如,添加对PHP文件的映射。
AddType application/x-httpd-php.php

2. PHP安装与配置

PHP是一种解释型的脚本语言,在编写和运行PHP程序之前需要先安装PHP编译与运行引擎。目前PHP在Windows平台上发布的最新版本是5.4,可以从“http://windows.php.net/download/”网站上下载。在该网站上下载时可以选择开发版和安装版,所谓的开发版,就是需要用户自己手动配置PHP运行环境和整合Apache服务器,而安装版则只通过安装程序自动进行安装和配置。本书将以安装版5.3.8为例来讲解PHP的安装,其安装与配置的步骤如下。

(1)从PHP官方网站上下载PHP 5.3开发版文件“php-5.3.8-Win32-VC9-x86.msi”到本地,如图1.1.13所示。

34805-017-1

图1.1.13 PHP下载页面

(2)运行PHP安装程序启动安装向导,如图1.1.14所示。

34805-018-1

图1.1.14 PHP安装向导

(3)单击图1.1.14中的“Next”按钮,进入用户使用协议页面,单击同意使用协议后单击“Next”按钮,进入PHP安装路径设置页面,这里将安装路径设置为“c:\php”,如图1.1.15所示。

34805-018-2

图1.1.15 设置PHP安装路径

(4)设置完安装路径后,单击“Next”按钮,进入选择Web服务器页面,这里选择“Apache 2.2.x Module”项,即采用Apache模块方式安装PHP 5.3,并单击“Next”按钮,如图1.1.16所示。

34805-018-3

图1.1.16 Web Server设置页面

(5)选择好Web Server类型后,进入Web服务器安装路径设置,这主要是为便于安装程序整合Apache与PHP。这里设置该服务器路径为前面安装Apache服务器时设置的服务器路径“c:/apache2.2”,如图1.1.17所示。

34805-018-4

图1.1.17 设置Apache服务器路

(6)进入选择安装项页面中,通常保持默认项即可,单击“Next”按钮,进入安装确认页面,单击“Install”按钮,安装程序启动PHP安装。

(7)正确安装完毕后,安装向导给出安装成功的提示页面,如图1.1.18所示。

34805-018-5

图1.1.18 安装成功提示页面

(8)当提示PHP安装成功后,为验证是否正确安装,在“C:\Apache2.2\htdocs”目录下创建名为“index.php”的文件,并在该文件中输入下述代码。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>MySQL Connection</title>
    </head>
    <body>
        <?php  //PHP 程序起始标记符
        //显示PHP系统信息
          echo phpinfo();
        //PHP 程序结束符
        ?>
    </body>
</html>

保存上述文件后,启动Apache服务器,打开浏览器,在地址栏中输入地址“http://localhost/index.php”,如果在浏览器中显示如图1.1.19所示的信息,就说明PHP已成功安装。

34805-019-1

图1.1.19 PHP信息

(9)配置PHP。

前面安装PHP时,整合Apache与PHP是由PHP安装程序自动完成的,其实该安装程序只是在Apache的配置文件——httpd.conf中添加了如下两行命令。

PHPIniDir "C:\PHP\"
LoadModule php5_module "C:\PHP\php5apache2_2.dll"

上述配置信息中的第1行指定PHP引擎的安装路径;第2行在Apache中加载PHP模块。

PHP同Apache服务器一样,是一种可配置的平台,程序员可以通过修改php.ini文件中的参数来设置PHP。php.ini中的主要参数如下。

  • short_open_tag:该参数决定PHP脚本中是否允许使用起始标记符“<?php”的简写形式“<?”。在之前的版本中默认为On,即允许使用简写形式“<?”。从PHP 5.0开始,这个参数默认为Off,即不允许使用简写方式。
  • default_charset:该参数决定PHP返回给Web服务器的数据内容采用的编码格式。如需设置为“gbk”,即
default_charset = "gbk"
  • extension_dir:该参数设置PHP扩展模块(modules)的存放位置。在PHP安装目录下的ext目录中,存放了许多dll文件,这些文件均为PHP必要的扩展模块。该参数可设为
extension_dir = "c:/php/ext/"
  • extension:该参数用于指定在运行时加入的模块,如:需要PHP提供访问MySQL数据库的功能,就需要使用该参数加载php_mysql.dll模块,如下所示。
extension = php_mysql.dll

session.save_path:该参数指定存放Session的目录。Session提供了一种在服务器端记录、追踪客户端用户操作及状态的方法。默认情况下,Session通过在服务器上保存的文件进行工作。这个参数用于指定保存Session文件的位置,例如,将文件保存在PHP安装文件夹中的tmp子目录下:

session.save_path = "c:/php/tmp"
  • file_uploads:指示PHP是否支持文件上传功能,默认为On。
  • upload_tmp_dir:指定上传文件的存储路径。
  • upload_max_filesize:指定上传文件的最大容量,如上传文件最大不能超过2MB,其设置方法如下。
upload_max_filesize = 2 MB

在配置完成后,需要重新启动Apache才能使新的配置生效。

练习1.1.1 对于Apache的配置文件,请将左边的项与右边的描述联系起来。

A. httpd.conf ( )用于设置默认文档
B. Listen ( )用于配置Apache服务器
C. DocumentRoot ( )用于设置网站的访问端口
D. DirectoryIndex ( )用于设置网站文档的根目录

3. MySQL数据库的安装与配置

MySQL是Oracle公司推出的一种多用户、多线程的关系型数据库,也是当前主流的开源SQL数据库管理系统。MySQL的官方网站是www.mysql.com。在该网站上可以免费下载其最新版本和各种技术资料,目前MySQL发布的最新版是5.5.20。MySQL的主要特性如下。

  • 高速:高速是MySQL的显著特性,在MySQL中,使用了极快的“B树”磁盘表和索引压缩;通过使用优化的“单扫描多连接”,能够实现极快的连接;SQL函数使用高度优化的类库实现,运行速度快。
  • 支持多种平台:MySQL支持超过20种开发平台,包括Linux、Windows、FreeBSD等。这使得在不同平台之间进行移植变得非常简单。
  • 支持各种开发语言:MySQL为包括C/C++、Java、C#、PHP等各种流行的程序设计语言提供支持,为它们提供了很多API函数。
  • 提供多种存储器引擎:MySQL中提供了多种数据库存储引擎,各种引擎各有所长,适用于不同的应用场合,用户可以根据需求进行配置,以获得最佳性能。
  • 功能强大:强大的存储引擎使MySQL能够有效应用于任何数据库应用系统,高效完成各项任务,能支持达数亿次的搜索。
  • 支持大型数据库:InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。表空间还可以包括原始磁盘分区,从而使表容量达到64 TB。
  • 安全:灵活和安全的权限和密码系统,允许基于主机的验证。
  • 开源:MySQL是一种开源系统软件,它采用GPL许可,用户可以免费使用。

由上述可知,MySQL数据库支持多种平台,本书将以在Windows环境下安装与配置MySQL为例进行阐述。MySQL安装与配置的步骤如下。

(1)MySQL为Windows环境下的安装提供了图形安装向导,以帮助用户快速完成安装工作。在其官方网站中下载Windows安装包“mysql-5.5.19-win32.msi”,然后运行该安装程序,弹出如图1.1.20所示的安装向导。

34805-021-1

图1.1.20 MySQL安装向导

(2)单击“Next”按钮,进入显示用户使用允许协议窗口,如果同意该协议,则选中“I accept the terms in the License Agreement”,并单击“Next”按钮。

(3)在选择安装类型窗口中,为用户提供了3种安装模式,即Typical(典型安装)、Complete(完全安装)和Customer(自定义安装),为简便,本次选择Typical模式,如图1.1.21所示。

34805-021-2

图1.1.21 选择安装模式

(4)选择Typical模式后,安装向导进入安装确认窗口,如设置无误,就可单击“install”按钮进入MySQL安装操作,如图1.1.22所示。

34805-021-3

图1.1.22 安装界面

(5)MySQL系统文件复制安装完毕后,安装向导将启动MySQL服务器配置向导,如图1.1.23所示。

34805-021-4

图1.1.23 服务器配置向导

(6)单击“Next”按钮,进入选择配置类型界面,界面中提供了两种配置选项:Detailed Configuration(详细配置)和Standard Configuration(标准配置)。选择详细配置,向导要求设置MySQL服务器使用类型,不同类型将占用不同的内存、硬盘和CPU资源,界面中共列出了3种类型:Developer Machine(开发服务器,占用资源数量较少)、Server Machine(普通Web服务器,占用资源数量中等)、Dedicated MySQL Server Machine(独占服务器,占用全部资源)。由于本书以介绍Web系统开发为主,因此选用“Developer Machine”方式,以节约系统资源,如图1.1.24所示。

34805-022-1

图1.1.24 选择配置类型

(7)选择服务器类型之后,进入设置数据库类型界面提供了3种类型:Multifuctionctional Database(多功能数据库)、Transactional Database Only(只用于事务处理类型数据库)和Non-Transcational Database Only(非事务处理类型),通常选择多功能数据库,如图1.1.25所示。

34805-022-2

图1.1.25 选择数据库类型

(8)选择数据库类型后,单击“Next”按钮进入数据库文件存放位置设置界面,默认为安装目录,通常保持默认设置。

(9)完成数据库存放位置设置后,进入MySQL最大并发连接设置界面。提供了3种设置方式:Decision Support(DSS)/OLAP(最大并发数为20)、Online Transaction Processing(OLTP)(最大并发数为50)和Manual Setting(自定义最大并发数)。

(10)在设置最大并发数之后,进入网络通信协议设置界面,如图1.1.26所示。选项“Enable TCP/IP Networking”设置是否允许TCP/IP连接方式,对于一般的Web服务器而言,必须选中该选项,否则将无法正常连接MySQL服务器。“Port Number”参数用于设置MySQL服务器监听的端口号,默认为3306。

34805-022-3

图1.1.26 设置通信协议

(11)设置完毕后,进入MySQL默认字符集设置界面,即数据库中存储数据时采用的编码集,若字符集设置不当,在显示Web页面时会出现中文乱码的现象,目前主要采用UTF-8字符集,而默认为Latin字符集,因此需要修改,如图1.1.27所示。

34805-022-4

图1.1.27 MySQL字符集设置

(12)字符集设置完毕后,进入MySQL服务器运行方式设置界面,如图1.1.28所示。选中“Install As Windows Service”选项,使MySQL作为Windows的一个服务运行,这样,在Windows启动时,MySQL将自动运行。“Service Name”定义MySQL在Windows服务管理器中的显示名称。选中“Include Bin Directory in Windows Path”选项,把MySQL安装目录下的bin目录添加到Windows系统环境变量PATH中,bin目录下包含了操作MySQL的各种可执行文件,如启动、停止MySQL的执行文件。这样,便可以直接在DOS命令行中执行MySQL可执行文件。

34805-023-1

图1.1.28 设置MySQL运行方式

(13)设置后单击“Next”按钮进入如图1.1.29所示的界面,在该界面中设置管理数据库的root(数据库管理员)的账号与密码。也可以选择“Create an Annonymous Account”建立匿名账号,允许匿名用户访问数据库。

34805-023-2

图1.1.29 设置管理员密码

(14)完成root账号和密码的设置后,将列出向导需要完成的配置操作内容,单击“Execute”按钮后,向导开始进行配置。

(15)配置成功后,显示安装完成界面,单击“Finish”按钮结束安装,如图1.1.30所示。

34805-023-3

图1.1.30 安装完成

(16)配置成功后,通过“开始”→“管理工具”→“服务”打开Windows服务管理器,从中可以找到MySQL的服务器服务控制项,可以通过Winodws服务管理器控制MySQL服务的启动与停止,如图1.1.31所示。

34805-023-4

图1.1.31 控制MySQL服务

(17)手工配置MySQL。MySQL的配置信息主要保存在一个名为my.ini的文本文件中,其主要配置信息如下。

  • Basedir:设置MySQL主程序所在路径,如basedir="C:/Program Files/MySQL/MySQL Server 5.5/"。
  • datadir:设置MySQL数据库存放路径,如datadir= "C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"。
  • port:服务器监听端口号,系统默认为3306。
  • default-character-set:数据库默认使用的字符集,例如,设置为“UTF-8”,default-character-set=utf8。
  • max_connections:数据库允许连接的最大客户端数。例如,允许连接100个客户可设置为max_connections=100。
  • key_buffer:索引块的缓冲区大小,增加该值可提高读操作和并发写操作的速度。
  • max_allowed_packet:查询语句的最大数据包大小。该值太小会在处理大数据时产生错误,如果要使用大的BLOB列,就必须增加该值。

(18)MySQL数据库管理工具。

MySQL提供了两种使用数据库的方式,即命令行方式与图形界面方式。

  • 命令行方式。在Windows命令行窗口中,通过执行mysql.exe(该命令文件位于“%MYSQL_PATH%/bin”目录下)命令来启动MySQL命令行。其连接数据库的命令如下。
Mysql  -u root –p

其中,参数u表示登录数据库的用户账号,p表示用户密码,在正确输入用户密码之后进入命令行状态,如图1.1.32所示。之后就可以使用SQL语句操作数据库,如需要退出,可以使用quit命令。

34805-024-1

图1.1.32 MySQL命令行用户端

  • 图形界面方式:目前MySQL常用的可视化管理工具有php My Admin、navicat等多种,其中php My Admin是一个由PHP语言编写的、免费的、可视化的MySQL管理工具,可以实现数据库、数据表的创建、修改和删除操作,执行SQL程序等。

(19)MySQL数据库管理与维护。

MySQL同其他关系型数据库一样,都提供了丰富的管理与维护工具,本书将主要从用户管理与数据库维护两方面来讲解。

① 数据库用户管理。

MySQL数据库通过设置用户权限、密码和登录主机地址等方式来实现对数据库访问的控制。MySQL数据库的用户主要有3个属性。

  • 用户名(name):用于登录的用户名(用户名长度不能超过16位)。
  • 主机名(host):用户能够登录访问数据库的主机地址(可以是主机IP地址、主机域名、通配符%)。
  • 密码(password):用户登录密码。
  • 权限集(privileges):用户权限集。

MySQL对用户的管理主要体现在对其系统数据库MySQL中user表的操作上,对用户的管理操作如下。

• 查看数据库用户列表。

以root权限登录到MySQL数据库中,执行如下命令。

Select  name,host,password from mysql.user;

在MySQL中每条语句均以“;”为语句结束标识。

执行上述命令的结果如图1.1.33所示。

34805-024-2

图1.1.33 数据库用户列表

• 添加新用户。

MySQL为新增用户提供了两条命令:一条是“Create User”命令;另一条是SQL语言中的“insert into”命令,即直接向user表插入一条新记录即可。下面以“Create User”为例来介绍。该命令的语法格式如下。

CREATE USER  accountname@hostname IDENTIFIED BY 'password', accountname@hostname IDENTIFIED BY 'password', …

示例1.1.1 向数据库新增1个名为“james”的用户。

CREATE USER james IDENTIFIED BY '123456';--插入用户
James Select user,host,password from mysql.user;--查询结果

执行上述命令的结果如图1.1.34所示。

34805-025-1

图1.1.34 创建新用户

练习1.1.2 在MySQL数据库中新增名为“bbsuser”的用户。

• 删除用户。

可以使用SQL中的DELETE语句或“DROP USER”命令来删除MySQL用户信息,其实质就是对user表执行删除操作。例如,将示例1.1.1中创建的用户删除可使用下述命令。

DELETE From mysql.user where user='j ames';

• 设置用户密码

MySQL还提供了用户密码设置和修改命令——“SET PASSWORD”,该命令的语法格式如下。

SET PASSWORD FOR username@hostname = PASSWORD('password')

password()是MySQL的内部方法,主要用于加密用户密码。

示例1.1.2 将示例1.1.1中创建的用户密码设置为“654321”。

SET PASSWORD FOR j ames@localhost= PASSWORD('654321');

• 设置用户权限。

MySQL可以通过设置用户的操作权限来控制对数据库的访问,目前MySQL提供了12种权限供管理员分配,其具体权限如表1.1.3所示。

表1.1.3 MySQL用户权限列表

34805-026-1

在MySQL中使用GRANT命令来为用户设置权限,使用REVOKE命令删除用户权限,这两个命令的语法格式如下。

GRANT privilege (columns) ON tablename TO accountname@hostname [IDENTIFIED BY'password']
REVOKE privilege (columns) ON tablename FROM accountname@hostname

privilege是指MySQL的用户权限类型,如SELECT、DELETE等;tablename是指数据表名,如mysql.user表;columns表示该权限只对数据表中的数据列有效。

示例1.1.3 为示例1.1.1所创建的用户赋予查询mysql.user表中user、host和password等3个数据列数据的权限。

分析:依题意可知要求授予查询mysql数据库中user数据表的权限,也就是为该用户授予SELECT权限。一旦设置成功,该用户登录后就可以使用SELECT语句查询mysql.user表中的user、host和password数据列信息。

GRANT SELECT (user,host,password) ON mysql.user  TO  james;

如果需要取消该用户的这项权限,可使用下述命令。

REVOKE SELECT (user,host,password) ON mysql.user FROM james;

练习1.1.3 为练习1.1.2中创建的用户分配数据表mysql.user中user与host两个数据列的修改权限。

② 数据库的管理与维护。

为确保数据库安全、正常运行,数据库管理员必须对数据库进行定期备份。MySQL同样也提供了数据库备份与恢复功能。

• 数据库备份操作。

MySQL提供了“mysqldump.ext”程序来实现对数据库的备份。mysqldump程序位于MySQL安装路径下的“bin”子目录中,该程序能将需要备份的数据库信息转变为SQL语句,并保存在一个文本文件中,其命令行格式如下。

mysqldump  --user=accountname  --password=password  databasename >path/backfilename

其中,accountname,表示用于备份数据库的用户;password是该用户的密码;databasename是该用户的数据库名;path/backfilename是数据库备份文件名。

示例1.1.4 使用mysqldump命令完成对数据库cxbbs的备份操作。

分析:在进行数据库备份时需要确定数据库服务器中的cxbbs数据库是正常运行的。数据库备份操作的步骤如下。

  • 打开Windows操作系统的命令窗口,并将当前路径转到MySQL下的“bin”子目录下,以本书为例可以执行如下命令。
cd C:\wamp\bin\mysql\mysql5.5.8\bin

• 在命令行窗口下输入如下命令。

mysqldump  --user=root  --password=root   cxbbs >cxbbs.sql

执行上述命令后会在当前目录下生成一个名为“cxbbs.sql”的文本文件,文件中的内容就是创建cxbbs数据库的数据表与插入记录的SQL语句,如图1.1.35所示。

34805-027-1

图1.1.35 数据库备份文件

练习1.1.4 使用mysqldump程序备份MySQL中的mysql数据库。

• 数据库恢复

数据库恢复是指当数据库出错或出现异常时,使用先前备份的文件对该数据库进行恢复。在MySQL中可以使用下面的命令对数据库进行恢复。

mysql –u accountname –p < path/backupfilename

accountname是用户名;path/backupfilename是备份文件名。

示例1.1.5 使用示例1.1.4中完成的备份文件对数据库进行恢复。

分析:由于使用mysqldump程序对数据进行备份时,所生成的SQL语句中没有数据库的创建信息,因此需要在上例生成的cxbb.sql文件中最前面添加如下两条创建和打开数据库的语句。

--创建数据库
CREATE DATABASE IF NOT EXISTS  cxbbs;
--打开数据库
USE cxbbs;

完成上述备份语句修改后,就可以使用mysql命令对数据进行恢复,其操作步骤如下。

  • 打开Windows命令行窗口,并将系统当前路径转到MySQL数据库下的“bin”子目录下;
  • 修改原有备份文件cxbbx.sql的内容,在文件的最前面增加示例1.1.5中的两条SQL语句,并保存。
  • 在命令行窗口中输入如下命令,其运行结果如图1.1.36所示。
mysql –u root –p <cxbbs.sql
34805-028-1

图1.1.36 数据库恢复

(20)MySQL与PHP整合配置。要实现在PHP中访问到MySQL数据库就需要对PHP引擎进行配置。方法是:首先在PHP配置文件(php.ini)中增加MySQL数据库访问的扩展模块(php_mysql.dll)的加载设置,设置如下。

extension=php_mysql.dll

然后,将MySQL数据库安装路径下的“../lib/libmysql.dll”库文件复制到Windows下的“system32”目录中,并重启计算机,即完成两者的整合。

在重启机器之后,为检验整合是否成功,可将前述index.php程序文件修改成如下内容。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>MySQL Connection</title>
    </head>
    <body>
        <?php
         //创建与MySQL的连接
         $connection=mysql_connect("localhost","root","root") or die(mysql_error());
        if ($connection) {//判断数据库连接是否成功
            $msg = "成功创建了MySQL数据库连接!";
        }
        echo "<p>$msg</p>"  ;//显示提示信息
?>
      </body>
</html>

修改完上述程序后,在浏览器中输入“http://localhost/index.php”地址后,如果出现如图1.1.37所示的页面,就说明配置成功了。

34805-028-2

图1.1.37 数据库服务器连接测试

4. PHP集成运行环境的安装与配置

由上述可知,搭建PHP运行开发环境是比较复杂的,这无形中提高了PHP的学习门槛。为简化PHP安装配置的繁琐操作,法国的Alter Way开源团队开发了一套在Windows平台上快速安装和配置Apache、PHP和MySQL系统的程序,并把它命名为WampServer,同时将其作为开源程序上传到网络开源平台上,以供广大开发人员下载使用。本书将下载WampServer 2.1版,它集成了Apache 2.2.17、PHP 5.3.5、MySQL 5.5.8和phpMyAdmin,可以从其官方网站(http://www.wampserver.cm)下载。

为便于读者的学习,本书将以WampServer为平台来阐述PHP的应用与开发,WampServer的安装与配置步骤如下。

(1)从其官方网站上下载WampServer 2.1到本地机器,下载完毕运行该安装程序,弹出安装向导窗口。在该窗口显示了WampServer将要安装的服务器程序与工具清单,如果同意安装就单击“Next”按钮。

(2)进入用户使用许可协议窗口,选中“I accept the agreement”,并单击“Next”按钮。

(3)转入服务器安装路径设置窗口,设置本次服务器安装的路径,本书将其安装在“c:\wamp”目录中,如图1.1.38所示。设置完毕后,单击“Next”按钮进入附加设置窗口。

34805-029-1

图1.1.38 WampServer安装路径设置

(4)在附加设置窗口中,分别选中创建快速启动图标(Quick Launch icon)、桌面快捷方式(Desktop icon),如图1.1.39所示。

34805-029-2

图1.1.39 设置附加设置

(5)设置完成后,单击“Next”按钮,进入安装设置确认界面,如确认前述设置无误,单击“install”按钮,安装程序将启动安装进程,如图1.1.40所示。

34805-029-3

图1.1.40 安装WampServer

(6)安装完毕后,安装向导要求设置explorer的位置,将其定位到“%windir%explorer.exe”即可。

(7)设置完毕后,安装向导要求输入PHP中收发电子邮件的电子邮箱地址,如图1.1.41所示。

34805-029-4

图1.1.41 电子邮箱设置

(8)设置完电子邮箱地址后,完装即结束,在桌面上将会添加如图1.1.42(a)所示的图标,如需运行双击该图标即可。WampServer运行之后会在系统状态栏中添加一个小托盘,如图1.1.42(b)所示,可以通过这个系统托盘菜单来实现对服务器的控制。

34805-029-5

图1.1.42 WampServer

(9)通过WampServer菜单可以实现对3种服务器的启、停控制,以及配置,具体配置方式与前述相同,就是分别对httd.conf、php.ini和my.ini文件进行设置。当WampServer成功运行时,在浏览器中输入“http://localhost”,将打开如图1.1.43所示页面。

34805-030-1

图1.1.43 WampServer首页

(10)在安装WampServer时,WampServer默认会为用户安装一个SQL数据库管理工具:phpMyAdmin。在启动WampServer后,在浏览器中输入“http://localhost/phpmyadmin/”地址,即可运行该SQL数据库管理工具,如图1.1.44所示。

34805-030-2

图1.1.44 phpMyAdmin管理界面

5. PHP集成开发工具的安装

在使用PHP语言编写应用程序时,为提高开发速度通常需要一个集编写、运行、调试于一体的集成开发工具。目前,行业中主流的PHP集成开发工具有Zend Studio、Eclipse、NetBeans等。由于Zend Studio是一种商业开发工具,在使用时需要付费,故本书将以Oracle公司开发的NetBeans为例来讲述。NetBeans安装与使用方法如下。

(1)从NetBeans官方网站(http://www.netbeans.org)上下载支持PHP语言开发的NetBeans工具,如图1.1.45所示。双击下载的安装程序“netbeans-7.0.1-ml-php-windows.exe”,启动NetBeans安装向导。

34805-030-3

图1.1.45 NetBeans工具下载页面

(2)在同意安装向导给出的用户使用允许协议之后,向导将进入系统安装路径设置窗口,如图1.1.46所示。在该窗口中设置NetBeans工具和Java SDK的安装路径。(注:在安装NetBeans之前,必须先安装Java SDK6.0。)

34805-031-1

图1.1.46 安装路径设置

(3)设置路径后,单击“下一步”按钮,进入安装设置确认界面,确认设置无误之后,单击“安装”按钮,即启动安装程序进行安装。

(4)当安装成功后,会在桌面上创建一个NetBeans快捷方式,双击该快捷方式将运行NetBeans集成开发工具,如图1.1.47所示。

34805-031-2

图1.1.47 Net௪ns集成开发环境

6. NetBeans的使用方法

使用NetBeans编辑、运行和调试PHP程序。下面将以编写输出“Hello World!”为例来阐述PHP程序的编写、运行和调试方法,具体步骤如下。

(1)创建PHP项目。启动NetBeans集成开发工具后,选择“文件”→“新建项目”菜单项,在弹出的“新建项目”对话框中选择类别为“PHP”,项目为“PHP应用程序”,并单击“下一步”按钮,如图1.1.48所示。

34805-031-3

图1.1.48 选择类别和项目

(2)在“名称和位置”对话框中,分别输入项目名称(本例中为“TestPHP”)、源文件夹(本例中为“D:/CourseSample/phpProjects/TestPHP”)、PHP版本为“PHP 5.3”,缺省编码为“UTF-8”,如图1.1.49所示。设置完毕后单击“下一步”按钮。

34805-031-4

图1.1.49 项目名称与位置设置

(3)在“运行配置”对话框中,设置项目URL址,以及将项目程序自动发布到WampServer服务器的“www”目录中,如图1.1.50所示,设置完成后单击“完成”按钮完成项目创建,如图1.1.51所示。

34805-031-5

图1.1.50 “运行配置”对话框

34805-031-6

图1.1.51 完成项目创建

(4)PHP项目创建时,NetBeans会自动为项目创建一个名为“index.php”的文件,作为项目的默认首页文件,可以根据需要对其进行修改。如需要添加新的PHP文件,则可以用鼠标右击项目工程名称,在弹出的快捷菜单中选择“新建”→“PHP文件”,在弹出的“新建PHP文件”对话框中输入本例创建的PHP程序文件名“HelloWorld”,并单击“完成”按钮。这时在项目导航窗体中会新增加一个PHP程序文件,如图1.1.52所示。

34805-032-1

图1.1.52 添加PHP程序文件

(5)在项目导航窗口中单击前面创建的“HelloWorld.php”文件,NetBeans将在程序编辑窗口中打开该程序,在该窗口中输入下面的程序。

<?php
  //定义字符串变量
  $str = "Hello World!";
  echo $str;//输出字符串信息到客户端
?>

程序中的“<?php”与“?>”是PHP程序开始与结束的标识,任何PHP程序都以“<?php”为开始标识,以“?>”为结束标识;“$”为程序变量的标识;echo语句的功能是输出信息;“//”表示单行注释。

(6)运行程序。完成PHP程序编写后,要运行该程序,首先要手动启动WampServer服务器,然后右击项目导航窗口中的“HelloWorld.php”项,在弹出的快捷菜单中选择“运行”项,NetBeans将自动打开浏览器窗口,并将运行的结果在浏览器中呈现,如图1.1.53所示。

34805-032-2

图1.1.53 程序运行与结果输出

PHP语言是一种解释型程序设计语言,因此在运行程序之前不需要编译,而是由apache服务器直接调用PHP引擎运行该程序。

(7)如需要调试该程序,在确保Wamp服务器运行的基础上,右击该程序文件,在弹出的快捷菜单中选择“调试”项,NetBeans将进入调试状态,用户可以通过调试控制菜单中的“单步”、“单过程”按钮来实现对程序的调试,在调试信息输出窗口中可以查看程序变量中的值,如图1.1.54所示。

34805-033-1

图1.1.54 调试程序

练一练

请在win7系统下搭建PHP开发环境。