1.1 PHP开发组件介绍
利用PHP开发动态网站时,主要用到3个组件:Web服务器软件Apache、服务器端脚本编程语言PHP以及数据库服务器软件MySQL。只有把这三者结合起来使用,才能最大限度地发挥它们的优势。
1.1.1 Apache服务器
Apache是一款流行的Web服务器软件。据调查,目前在Internet上大约有50%以上的Web服务器都在用Apache。Apache功能强大、性能稳定,而且是完全免费的,完全开放源代码,可以从Internet上自由下载。
Apache服务器具有以下主要特点:
(1)支持多种Web编程语言,如ASP、JSP以及PHP等。
(2)安全性高。作为最流行的Web服务器,Apache具有极高的安全性,使其能够应对可能的安全威胁和信息泄露。
(3)扩展性好。Apache可以用于Windows、UNIX、Linux以及FREEBSD等多种操作系统,而且在不同操作系统中进行配置的步骤基本相同,可移植性很高。
(4)UNIX线程。从版本2.0开始,在支持POSIX线程的UNIX系统上,Apache能在混合多线程、多线程模式下运行,从而使可伸缩性得到改善。
(5)新的编译系统。在版本2.0中,重写了Apache的编译系统,现在是基于autoconf和libtool,从而使得Apache的配置系统与其他软件包更为相似。
(6)对非UNIX平台更好的支持。Apache在诸如BeOS、OS/2以及Windows等非UNIX平台上具有更快的速度和更好的稳定性。
1.1.2 PHP语言
PHP是一种流行的开放源代码的Web编程语言,主要用于开发服务器端应用程序及动态网页。PHP最初是由Rasmus Lerdorf在1994年设计的,用来统计个人网站的访问量。Lerdorf在1995年以Personal Home Page Tools(PHP Tools)为题发表了PHP 1.0版。现在的PHP表示“PHP:Hypertext Preprocessor”,这是一个嵌套的缩写词,亦即超文本预处理语言。
PHP语言具有以下主要特点:
(1)开放性源代码。PHP的原始代码完全公开,这种开源策略使无数业内人士欢欣鼓舞。新函数库的不断加入,使得PHP具有强大的更新能力,从而在Win32或UNIX平台上拥有更多的新功能。PHP是完全免费的,所有源代码和文档都可以免费下载、复制、编译、打印和分发。
(2)运行于服务器端。与ASP一样,PHP脚本也是在服务器端运行的。PHP脚本可以嵌入HTML文档中,并由Web服务器识别出来交给PHP脚本引擎解释执行,从而完成一定的功能,执行结果以HTML代码形式返回客户端浏览器。在客户端虽然可以看到PHP脚本执行的结果,但看不到PHP脚本代码本身。
(3)跨平台性。PHP可以在Windows、Macintosh、UNIX以及Linux等操作系统上运行,而且可以与Apache、IIS等主流Web服务器一起使用。更为难能可贵的是,PHP代码不需要做任何修改即可在不同的Web服务器平台之间移植,而这也正是PHP能大行其道、备受人们青睐的重要原因之一。
(4)语言简单易学。PHP的语法利用了C、Java和Perl并吸取了这些语言的精华,PHP语言很容易学习,只要了解一些编程的基本知识,就可以使用PHP编程。PHP语言的主要目标是用于快速编写动态网页,读者完全可以一边学习PHP一边做动态网站。
(5)执行效率高。与其他解释性语言相比,PHP消耗的系统资源比较少,当使用Apache作为Web服务器并将PHP作为该服务器的一部分时,不需要调用外部二进制数据程序即可运行PHP脚本,解释执行PHP脚本不会增加额外的负担。
(6)图像处理功能。通过在PHP中调用GD图像库中的函数,可以很方便地创建和处理Web上最为流行的GIF、PNG和JPEG等格式的图像,并直接将图像流输出到浏览器。GD是一个用于动态生成图像的开源代码库,GD库文件包含在PHP安装包中。
(7)数据库访问功能。通过PHP可以访问多种数据库格式,包括MySQL、Oracle、SQL Server、Informix、Sybase以及通用的ODBC等。如果要使用Dreamweaver来开发PHP动态网站,PHP语言与MySQL数据库更是一对黄金搭档。
(8)面向对象编程。PHP支持面向对象编程,提供了类和对象,支持构造函数和抽象类等。PHP 5.0于2004年7月13日正式发布,该版本在面向对象编程方面有了重要变化,主要包括:对象克隆、访问修饰符(公共、私有和受保护的)、接口、抽象类和方法,以及扩展重载对象等。
(9)可伸缩性。网页中的交互作用可以通过CGI程序来实现,但CGI程序的可伸缩性不理想,因为需要为每一个正在运行的CGI程序创建一个独立进程。解决的方法就是将CGI语言的解释器编译进Web服务器。PHP也可以通过这种方式来安装,这种内嵌的PHP具有更好的可伸缩性。
1.1.3 MySQL数据库
MySQL是目前最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,也是一家使用一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用。MySQL是一款完全免费的数据库产品,任何人都可以从Internet自由下载它,而无需支付任何费用。如果愿意,用户可以研究源代码并进行适当的修改,以满足自己的实际需要。
MySQL数据库服务器具有以下特点:
(1)快速、可靠、易于使用。MySQL服务器最初是为了处理大型数据库而开发的,与已有的解决方案相比速度更快。多年以来,MySQL已成功用于众多要求很高的生产环境。MySQL一直在不断发展,目前MySQL服务器已能提供丰富的有用功能。MySQL具有良好的连通性、速度和安全性,这使得它非常适合于用做网站的后台数据库。
(2)工作在客户端/服务器模式下或嵌入式系统中。MySQL是一种客户端/服务器数据库管理系统,它由一个多线程SQL服务器、数种不同的客户端程序和库、众多管理工具以及广泛的应用编程接口API组成。MySQL符合GNU规则,可以为用户提供C、C++、Java(JDBC)、Perl、PHP等API接口。
(3)真正的多线程。MySQL是一种多线程数据库产品,它采用核心线程的完全多线程,如果有多个CPU,它可以方便地使用这些CPU。MySQL使用多线程方式运行查询,可以使每个用户至少拥有一个线程,这对于多CPU系统来说,查询的速度和所能承受的负荷都将高于其他系统。
(4)跨平台性。MySQL能够工作在各种不同的平台上,这些平台包括Solaxis、SunO、SBSDI、SGIIRIX、AIX、DECUNIX、FreeBSD、SCOOPenSer、verNetBSD、OpenBSD、HPUX以及Windows系列等。由于MySQL和PHP都具有跨平台性,两者可以在多种不同平台上配合使用。
(5)数据类型丰富。MySQL提供的数据类型很多,包括带符号整数和无符号整数、单字节整数和多字节整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET、ENUM以及OpenGIS空间类型等。
(6)安全性好。MySQL采用十分灵活和安全的权限和密码系统,允许基于主机的验证。当连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。
(7)处理大型数据库。使用MySQL服务器可以处理包含5千万条记录的数据库。据报道,有些用户已将MySQL用于含60000个表和约50亿条记录的数据库。
(8)连接性好。在任何操作系统平台上,客户端都可以使用TCP/IP协议连接到MySQL服务器。在Windows系统的NT系列中(NT、2000、XP或2003),客户端可以使用命名管道进行连接。在UNIX系统中,客户端可使用UNIX域套接字文件建立连接。Connector/ODBC(MyODBC)接口为使用ODBC连接的客户端程序提供了MySQL支持。