职业能力目标和学习要求
超级文本预处理器(Hypertext Preprocess,PHP)是一种开放源代码的多用途脚本语言,它可嵌入HTML中,是当前开发Web系统的主流语言之一。PHP主要用于编写服务器端的脚本程序,可以轻松实现接收表单请求、访问数据库和生成动态页面等功能。通过本项目的学习,可以培养以下职业能力并完成相应的学习要求。
职业能力目标:
- 能搭建Apache+MySQL+PHP开发Web应用程序的环境。
- 建立对问题的合理认知与定位。
- 树立有效的管理目标。
- 具有解决冲突问题的能力。
学习要求:
- 了解Web应用开发的基本技术。
- 掌握Apache服务器的安装与配置。
- 掌握PHP语言集成开发工具的安装与配置。
- 掌握MySQL数据库的安装与配置。
- 了解项目案例——诚信管理论坛的系统需求。
项目导入
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所示。
用户通过网页浏览器(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)所示。
表1.1.1列出了静态网页和动态网页的优缺点。
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列出几种常见的网页编程技术的比较。
练一练
写下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方式运行,这两种运行模式都可以通过配置来实现。
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所示。
(2)运行所下载的安装包文件“httpd-2.2.21-win32-x86-no_ssl.msi”,弹出如图1.1.5所示的Apache HTTP Server 2.2.21安装向导界面,单击“Next”按钮继续。
(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所示。
(6)选择安装类型,Typical为默认安装,Custom为用户自定义安装,这里选择Typical,单击“Next”按钮继续,如图1.1.7所示。
(7)选择安装路径,如需修改默认安装路径,单击“Change”按钮,手动指定安装目录,安装路径如图1.1.8所示。
(8)选择安装路径后单击“Next”按钮,安装程序转入安装选项确认界面,如图1.1.9所示,当选项无误后,单击“Install”按钮开始按前面设定的选项进行安装。
(9)安装程序执行安装操作,当安装完成后,在屏幕右下角的状态栏中出现如图1.1.10所示的图标,表示Apache服务已经开始运行,单击“Finish”按钮结束Apache的安装。
在图标上单击鼠标左键,将出现服务控制菜单,有“Start(启动)”、“Stop(停止)”、“Restart(重启动)”3个选项,可以很方便地对安装的Apache服务器进行操作(注:Apache服务器默认使用80端口)。Apache运行成功时,可以在浏览器上输入“http://localhost/”地址来判断服务器是否安装成功,如图1.1.11所示。Apache服务器的默认根目录是服务器软件安装目录下的“C:\Apache2.2\htdocs\”。
(10)Apache服务器配置。要使Apache服务器更好地服务用户,满足用户个性化的需求,就需要对Apache服务器进行配置。对Apache服务器的配置主要通过编辑“C:\Apache2.2\conf\”目录下的httpd.conf文件,如图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端口上的请求,可以进行如下设置。
如果需要在指定的IP地址端口进行监听,则需要在Listen参数中指定IP地址,例如:
- < Directory "C:/Apache2.2/htdocs">和< /Directory>:这部分参数用于设置对文件目录的访问选项。
- DirectoryIndex:该参数设置文件目录中的默认检索文件。当客户端请求是指向服务器某个目录而不是某个具体文件时,Apache将请求指向该参数指定的文件。例如,默认页面设为index.html,index.php文件。
- LoadModule:加载目标文件或库,并将其添加到活动模块列表。例如,需要加载PHP模块,可以使用下面的指令。
- LimitRequestBody:LimitRequestBody可以让用户在其作用范围内(整个服务器、特定目录、特定文件、特定位置)设置允许客户端发送HTTP请求的最大字节数的限制。如果客户端的请求超出了这个限制,服务器会回应一个错误而不是响应这个请求。例如,如果允许上传文件的大小设置为100KB,可以使用下面的指令。
- LimitRequestFieldSize:该参数允许服务器管理员增大或减小HTTP请求头域大小的限制。
- AddType:该参数在给定的文件扩展名与特定的内容类型之间建立映射关系。例如,添加对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所示。
(2)运行PHP安装程序启动安装向导,如图1.1.14所示。
(3)单击图1.1.14中的“Next”按钮,进入用户使用协议页面,单击同意使用协议后单击“Next”按钮,进入PHP安装路径设置页面,这里将安装路径设置为“c:\php”,如图1.1.15所示。
(4)设置完安装路径后,单击“Next”按钮,进入选择Web服务器页面,这里选择“Apache 2.2.x Module”项,即采用Apache模块方式安装PHP 5.3,并单击“Next”按钮,如图1.1.16所示。
(5)选择好Web Server类型后,进入Web服务器安装路径设置,这主要是为便于安装程序整合Apache与PHP。这里设置该服务器路径为前面安装Apache服务器时设置的服务器路径“c:/apache2.2”,如图1.1.17所示。
(6)进入选择安装项页面中,通常保持默认项即可,单击“Next”按钮,进入安装确认页面,单击“Install”按钮,安装程序启动PHP安装。
(7)正确安装完毕后,安装向导给出安装成功的提示页面,如图1.1.18所示。
(8)当提示PHP安装成功后,为验证是否正确安装,在“C:\Apache2.2\htdocs”目录下创建名为“index.php”的文件,并在该文件中输入下述代码。
保存上述文件后,启动Apache服务器,打开浏览器,在地址栏中输入地址“http://localhost/ index.php”,如果在浏览器中显示如图1.1.19所示的信息,就说明PHP已成功安装。
(9)配置PHP。
前面安装PHP时,整合Apache与PHP是由PHP安装程序自动完成的,其实该安装程序只是在Apache的配置文件——httpd.conf中添加了如下两行命令。
上述配置信息中的第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”,即
- extension_dir:该参数设置PHP扩展模块(modules)的存放位置。在PHP安装目录下的ext目录中,存放了许多dll文件,这些文件均为PHP必要的扩展模块。该参数可设为
- extension:该参数用于指定在运行时加入的模块,如:需要PHP提供访问MySQL数据库的功能,就需要使用该参数加载php_mysql.dll模块,如下所示。
session.save_path:该参数指定存放Session的目录。Session提供了一种在服务器端记录、追踪客户端用户操作及状态的方法。默认情况下,Session通过在服务器上保存的文件进行工作。这个参数用于指定保存Session文件的位置,例如,将文件保存在PHP安装文件夹中的tmp子目录下:
- file_uploads:指示PHP是否支持文件上传功能,默认为On。
- upload_tmp_dir:指定上传文件的存储路径。
- upload_max_filesize:指定上传文件的最大容量,如上传文件最大不能超过2MB,其设置方法如下。
在配置完成后,需要重新启动Apache才能使新的配置生效。
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所示的安装向导。
(2)单击“Next”按钮,进入显示用户使用允许协议窗口,如果同意该协议,则选中“I accept the terms in the License Agreement”,并单击“Next”按钮。
(3)在选择安装类型窗口中,为用户提供了3种安装模式,即Typical(典型安装)、Complete(完全安装)和Customer(自定义安装),为简便,本次选择Typical模式,如图1.1.21所示。
(4)选择Typical模式后,安装向导进入安装确认窗口,如设置无误,就可单击“install”按钮进入MySQL安装操作,如图1.1.22所示。
(5)MySQL系统文件复制安装完毕后,安装向导将启动MySQL服务器配置向导,如图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所示。
(7)选择服务器类型之后,进入设置数据库类型界面提供了3种类型:Multifuctionctional Database(多功能数据库)、Transactional Database Only(只用于事务处理类型数据库)和Non-Transcational Database Only(非事务处理类型),通常选择多功能数据库,如图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。
(11)设置完毕后,进入MySQL默认字符集设置界面,即数据库中存储数据时采用的编码集,若字符集设置不当,在显示Web页面时会出现中文乱码的现象,目前主要采用UTF-8字符集,而默认为Latin字符集,因此需要修改,如图1.1.27所示。
(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可执行文件。
(13)设置后单击“Next”按钮进入如图1.1.29所示的界面,在该界面中设置管理数据库的root(数据库管理员)的账号与密码。也可以选择“Create an Annonymous Account”建立匿名账号,允许匿名用户访问数据库。
(14)完成root账号和密码的设置后,将列出向导需要完成的配置操作内容,单击“Execute”按钮后,向导开始进行配置。
(15)配置成功后,显示安装完成界面,单击“Finish”按钮结束安装,如图1.1.30所示。
(16)配置成功后,通过“开始”→“管理工具”→“服务”打开Windows服务管理器,从中可以找到MySQL的服务器服务控制项,可以通过Winodws服务管理器控制MySQL服务的启动与停止,如图1.1.31所示。
(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命令行。其连接数据库的命令如下。
其中,参数u表示登录数据库的用户账号,p表示用户密码,在正确输入用户密码之后进入命令行状态,如图1.1.32所示。之后就可以使用SQL语句操作数据库,如需要退出,可以使用quit命令。
图形界面方式:目前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数据库中,执行如下命令。
注意:在MySQL中每条语句均以“;”为语句结束标识。
执行上述命令的结果如图1.1.33所示。
- 添加新用户。
MySQL为新增用户提供了两条命令:一条是“Create User”命令;另一条是SQL语言中的“insert into”命令,即直接向user表插入一条新记录即可。下面以“Create User”为例来介绍。该命令的语法格式如下。
示例1.1.1 向数据库新增1个名为“james”的用户。
执行上述命令的结果如图1.1.34所示。
练习1.1.2 在MySQL数据库中新增名为“bbsuser”的用户。
- 删除用户。
可以使用SQL中的DELETE语句或“DROP USER”命令来删除MySQL用户信息,其实质就是对user表执行删除操作。例如,将示例1.1.1中创建的用户删除可使用下述命令。
- 设置用户密码
MySQL还提供了用户密码设置和修改命令——“SET PASSWORD”,该命令的语法格式如下。
注意:password()是MySQL的内部方法,主要用于加密用户密码。
示例1.1.2 将示例1.1.1中创建的用户密码设置为“654321”。
- 设置用户权限。
MySQL可以通过设置用户的操作权限来控制对数据库的访问,目前MySQL提供了12种权限供管理员分配,其具体权限如表1.1.3所示。
在MySQL中使用GRANT命令来为用户设置权限,使用REVOKE命令删除用户权限,这两个命令的语法格式如下。
注意: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数据列信息。
如果需要取消该用户的这项权限,可使用下述命令。
练习1.1.3 为练习1.1.2中创建的用户分配数据表mysql.user中user与host两个数据列的修改权限。
② 数据库的管理与维护。
为确保数据库安全、正常运行,数据库管理员必须对数据库进行定期备份。MySQL同样也提供了数据库备份与恢复功能。
- 数据库备份操作。
MySQL提供了“mysqldump.ext”程序来实现对数据库的备份。mysqldump程序位于MySQL安装路径下的“bin”子目录中,该程序能将需要备份的数据库信息转变为SQL语句,并保存在一个文本文件中,其命令行格式如下。
其中,accountname,表示用于备份数据库的用户;password是该用户的密码;databasename是该用户的数据库名;path/backfilename是数据库备份文件名。
示例1.1.4 使用mysqldump命令完成对数据库cxbbs的备份操作。
分析:在进行数据库备份时需要确定数据库服务器中的cxbbs数据库是正常运行的。数据库备份操作的步骤如下。
- 打开Windows操作系统的命令窗口,并将当前路径转到MySQL下的“bin”子目录下,以本书为例可以执行如下命令。
- 在命令行窗口下输入如下命令。
执行上述命令后会在当前目录下生成一个名为“cxbbs.sql”的文本文件,文件中的内容就是创建cxbbs数据库的数据表与插入记录的SQL语句,如图1.1.35所示。
练习1.1.4 使用mysqldump程序备份MySQL中的mysql数据库。
- 数据库恢复
数据库恢复是指当数据库出错或出现异常时,使用先前备份的文件对该数据库进行恢复。在MySQL中可以使用下面的命令对数据库进行恢复。
注意:accountname是用户名;path/backupfilename是备份文件名。
示例1.1.5 使用示例1.1.4中完成的备份文件对数据库进行恢复。
分析:由于使用mysqldump程序对数据进行备份时,所生成的SQL语句中没有数据库的创建信息,因此需要在上例生成的cxbb.sql文件中最前面添加如下两条创建和打开数据库的语句。
完成上述备份语句修改后,就可以使用mysql命令对数据进行恢复,其操作步骤如下。
- 打开Windows命令行窗口,并将系统当前路径转到MySQL数据库下的“bin”子目录下;
- 修改原有备份文件cxbbx.sql的内容,在文件的最前面增加示例1.1.5中的两条SQL语句,并保存。
- 在命令行窗口中输入如下命令,其运行结果如图1.1.36所示。
(20)MySQL与PHP整合配置。要实现在PHP中访问到MySQL数据库就需要对PHP引擎进行配置。方法是:首先在PHP配置文件(php.ini)中增加MySQL数据库访问的扩展模块(php_mysql.dll)的加载设置,设置如下。
修改完上述程序后,在浏览器中输入“http://localhost/index.php”地址后,如果出现如图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”按钮进入附加设置窗口。
(4)在附加设置窗口中,分别选中创建快速启动图标(Quick Launch icon)、桌面快捷方式(Desktop icon),如图1.1.39所示。
(5)设置完成后,单击“Next”按钮,进入安装设置确认界面,如确认前述设置无误,单击“install”按钮,安装程序将启动安装进程,如图1.1.40所示。
(6)安装完毕后,安装向导要求设置explorer的位置,将其定位到“%windir%explorer.exe”即可。
(7)设置完毕后,安装向导要求输入PHP中收发电子邮件的电子邮箱地址,如图1.1.41所示。
(8)设置完电子邮箱地址后,完装即结束,在桌面上将会添加如图1.1.42(a)所示的图标,如需运行双击该图标即可。WampServer运行之后会在系统状态栏中添加一个小托盘,如图1.1.42(b)所示,可以通过这个系统托盘菜单来实现对服务器的控制。
(9)通过WampServer菜单可以实现对3种服务器的启、停控制,以及配置,具体配置方式与前述相同,就是分别对httd.conf、php.ini和my.ini文件进行设置。当WampServer成功运行时,在浏览器中输入“http://localhost”,将打开如图1.1.43所示页面。
(10)在安装WampServer时,WampServer默认会为用户安装一个SQL数据库管理工具:phpMyAdmin。在启动WampServer后,在浏览器中输入“http://localhost/phpmyadmin/”地址,即可运行该SQL数据库管理工具,如图1.1.44所示。
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安装向导。
(2)在同意安装向导给出的用户使用允许协议之后,向导将进入系统安装路径设置窗口,如图1.1.46所示。在该窗口中设置NetBeans工具和Java SDK的安装路径。(注:在安装NetBeans之前,必须先安装Java SDK6.0。)
(3)设置路径后,单击“下一步”按钮,进入安装设置确认界面,确认设置无误之后,单击“安装”按钮,即启动安装程序进行安装。
(4)当安装成功后,会在桌面上创建一个NetBeans快捷方式,双击该快捷方式将运行NetBeans集成开发工具,如图1.1.47所示。
6.NetBeans的使用方法
使用NetBeans编辑、运行和调试PHP程序。下面将以编写输出“Hello World!”为例来阐述PHP程序的编写、运行和调试方法,具体步骤如下。
(1)创建PHP项目。启动NetBeans集成开发工具后,选择“文件”→“新建项目”菜单项,在弹出的“新建项目”对话框中选择类别为“PHP”,项目为“PHP应用程序”,并单击“下一步”按钮,如图1.1.48所示。
(2)在“名称和位置”对话框中,分别输入项目名称(本例中为“TestPHP”)、源文件夹(本例中为“D:/CourseSample/phpProjects/TestPHP”)、PHP版本为“PHP 5.3”,缺省编码为“UTF-8”,如图1.1.49所示。设置完毕后单击“下一步”按钮。
(3)在“运行配置”对话框中,设置项目URL址,以及将项目程序自动发布到WampServer服务器的“www”目录中,如图1.1.50所示,设置完成后单击“完成”按钮完成项目创建,如图1.1.51所示。
(4)PHP项目创建时,NetBeans会自动为项目创建一个名为“index.php”的文件,作为项目的默认首页文件,可以根据需要对其进行修改。如需要添加新的PHP文件,则可以用鼠标右击项目工程名称,在弹出的快捷菜单中选择“新建”→“PHP文件”,在弹出的“新建PHP文件”对话框中输入本例创建的PHP程序文件名“HelloWorld”,并单击“完成”按钮。这时在项目导航窗体中会新增加一个PHP程序文件,如图1.1.52所示。
(5)在项目导航窗口中单击前面创建的“HelloWorld.php”文件,NetBeans将在程序编辑窗口中打开该程序,在该窗口中输入下面的程序。
注意:程序中的“<?php”与“?>”是PHP程序开始与结束的标识,任何PHP程序都以“<?php”为开始标识,以“?>”为结束标识;“$”为程序变量的标识;echo语句的功能是输出信息;“//”表示单行注释。
(6)运行程序。完成PHP程序编写后,要运行该程序,首先要手动启动WampServer服务器,然后右击项目导航窗口中的“HelloWorld.php”项,在弹出的快捷菜单中选择“运行”项,NetBeans将自动打开浏览器窗口,并将运行的结果在浏览器中呈现,如图1.1.53所示。
注意:PHP语言是一种解释型程序设计语言,因此在运行程序之前不需要编译,而是由apache服务器直接调用PHP引擎运行该程序。
(7)如需要调试该程序,在确保Wamp服务器运行的基础上,右击该程序文件,在弹出的快捷菜单中选择“调试”项,NetBeans将进入调试状态,用户可以通过调试控制菜单中的“单步”、“单过程”按钮来实现对程序的调试,在调试信息输出窗口中可以查看程序变量中的值,如图1.1.54所示。
练一练
请在win7系统下搭建PHP开发环境。
1.2 诚信管理论坛需求分析
诚信管理论坛是诚信集团为使员工能更好地沟通而设计开发的一个网络论坛系统。本书将以开发这个项目为载体来展开对PHP技术的介绍。下面首先对该论坛的功能、整体的系统架构和数据库逻辑结构进行介绍,以便后面的学习。
任务解决
1.诚信论坛系统的用例图
诚信管理论坛的基本功能如下。
- 登录(Login):用户登录诚信论坛系统。
- 注册(Register):新用户注册功能。
- 版块列表(Board List):列出论坛所有的预置的版块信息。
- 帖子列表(Topic List):将指导版块的所有帖子信息以列表的形式列出。
- 查看帖子(Read Topic):查看帖子的详细信息,同时显示该帖子的所有帖子信息。
- 回帖(Reply Topic):对查看的帖子进行回复。
- 发帖(Post Topic):在指定版块中发布新帖子。
- 登出(Logout):从诚信管理论坛系统中注销登录。
图1.2.1所示为系统的用例图。
2.诚信管理论坛系统的系统架构
为满足诚信管理论坛系统的业务需求,经过分析,决定采用多种架构的模式来开发该系统,系统的整体架构如图1.2.2所示。
- Web Clinet:用户通过浏览器来访问和使用该论坛系统,Web Client将通过Web服务器与数据库进行交互。
- Web表示层:主要实现论坛系统中的Web页面的表示逻辑。
- 数据访问层:该层主要使用了PHP的数据库访问技术来实现,该层是诚信管理论坛系统的核心层。
- DB:数据存储层,该层负责保存系统的数据。
1.3 实践习题
1.简述PHP的发展历史。
2.简述PHP的特性。
3.如果Apache的网站主目录是C:\eshop,并且没有建立任何虚拟目录,那么在浏览器中输入http://localhost/admin/admin.php,则打开的文件是( )。
A.C:\localhost\admin\admin.php
B.C:\eshop\admin\admin.php
C.C:\eshop\admin.php
D.C:\eshop\localhost\admin\admin.php
4.在MySQL数据库中创建一个名为“super”的用户,并为其授予操作mysql数据库的所有权限。
5.使用NetBeans集成开发工具编写、运行如下程序,并写出运行结果。
6.默认情况下,Apache服务器的配置文件名、MySQL服务器的配置文件名以及PHP的配置文件名分别是什么?WAMPServer采用默认方式安装成功后,这些配置文件放在哪个目录下?
7.按照1.1.4小节中的方式对下述电子商务网站系统的功能描述进行需求分析。
目前电子商务网站主要包括两个基本部分:一个是前台销售程序,客户在前台浏览普通商品、特价促销商品,并可以使用购物车等工具存放网上选购的商品,当购买完毕后下单结算。另一个是后台管理程序,包括商品目录管理、商品管理、统计信息、管理员设置等功能。
1.4 项目总结
本项目对Web应用开发技术进行了介绍,对PHP的产生背景、发展历史进行了概述,并重点阐述了PHP工作原理,以及如何搭建PHP开发运行环境。
1.Web应用开发简介
WWW又称“万维网”,是基于客户机/服务器(Client/Server)模式的信息发布和超文本技术的综合,用户通过浏览器向服务器发出请求访问指定的网页文件。网页文件分为静态网页和动态网页两种类型。网页编程技术分为前台编程技术和后台服务器编程技术,其中主要的前台编程技术包括Java Applet、JavaScript、VBScript、ActionScript、AJAX,后台编程技术包括CGI、ASP/ASP.NET、JSP、PHP。
2.PHP简介
超文本预处理器(Hypertext Preprocess,PHP),是一种开放源代码的多用途脚本语言,它可嵌入到HTML中,是当前开发动态Web系统的主流语言之一。PHP语言是一种解释型的、简单的、面向对象的、安全的、高性能、跨平台的脚本语言。
3.PHP运行开发环境搭建
使用PHP语言开发应用程序,需要搭建PHP的运行环境与开发环境。目前,多数企业使用PHP语言开发Web应用程序,且PHP是与Apache服务器紧密融合的,因此介绍了Apache(Web服务器)+PHP+MySQL(数据库)平台,同时为提高开发效率选用Oracle公司的NetBeans作为集成开发工具。
1.5 专业术语
- PHP(Hypertext Preprocess):超级文本预处理器,是一种开放源代码的多用途脚本语言,它可嵌入HTML中,是当前开发Web系统的主流语言之一。
- Apache:Apache HTTP Server(简称Apache)是Apache软件基金会管理的一个开放源代码的Web服务器,可以在大多数操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
- WWW(World Wide Web):又称“万维网”,也简称Web, WWW是一个由许多互相链接的超文本Hyper Text文档组成的系统,通过Internet访问,是基于客户机/服务器(Client/Server)模式的信息发布和超文本技术的综合。
- WAMP:是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的著名免费开源的软件,其中包括:Windows操作系统;Apache网页服务器;MySQL数据库管理系统(或者数据库服务器);PHP 和有时 Perl 或 Python脚本语言。取各自名字的首个字母就组成WAMP这个词了。
- Active Server Pages:动态服务器页面,采用JSP、PHP、ASP、ASP.NET等技术动态生成的页面,通常在服务器端以扩展名JSP、PHP、ASP或是ASPX储存,这种网页要在服务器端执行一些程序,而执行程序时的条件不同,其执行的结果也可能会有所不同,所以称其为动态网页。
1.6 拓展提升
在Linux下搭建PHP开发环境
在Linux下搭建PHP环境可分为独立安装和集成安装2种方式,其中独立安装方式比在Windows下还要复杂一些,而集成安装方式则相对简便许多,这里以XAMPP的安装为例介绍liunx下的PHP开发环境搭建。XAMPP是一个由Apache、MySQL、PHP、PERL等软件组合在一起的,功能强大的建站软件集成安装包,可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持英文、中文、日文等多种语言,目前同步更新的版本有XAMPP For Linux 5.5.19 &5.6.3。以下安装测试环境的OS是Ubuntu 13.10,XAMPP For Linux 5.6.3。
1.获取安装文件
在Ubuntu中打开终端,输入以下命令获取安装文件:
cd/tmp
wget https://www.apachefriends.org/xampp-files/5.6.3/xampp-linux-5.6.3-0-installer.run
2.赋权
chmod 755 xampp-linux-5.6.3-0-installer.run
3.安装
sudo ./xampp-linux-1.8.3-4-installer.run
安装XAMPP需具有管理员权限,输入以上命令弹出安装向导,如图1.6.1所示。单击【Next】进入选择组件对话框,选择所需组件,如图1.6.2所示。单击【Next】进入安装目录对话框,显示XAMPP的安装路径为“/opt/lampp”,如图1.6.3所示。单击【Next】进入Bitnami选择界面,Bitnami For XAMPP提供了一些流行的PHP开源软件系统,这里暂不选择,如图1.6.4所示,最后单击【Next】进入安装界面。
安装完成后,显示安装完成界面,选择启动XAMPP ,如图1.6.5所示,单击【Finish】启动XAMPP。此时会弹出XAMPP 5.6.3-0的管理对话框,如图1.6.6所示,并自动打开浏览器,显示XAMPP欢迎界面,如图1.6.7所示,至此,PHP环境搭建完成。
1.7 超级链接
[1] PHP官网:www.php.net
[2] Apache官网:http://www.apache.org/
[3] Mysql官网:http://www.mysql.com/
[4] XAMPP 官网:https://www.apachefriends.org/index.html