PHP + Apache + Mysql集成环境部署及简要教程_apache集成环境

avatar
作者
筋斗云
阅读量:7

静态网页与动态网页的区别

网页可分为静态网页与动态网页两种形式。在介绍这两种网页之前,我们先来了解一下网络构成中的服务器(Server)与客户机(Client)。

服务器是安装有服务器软件并且可以向客户机提供网页浏览、数据库查询等服务的设备。而客户机则与之相反,它通过客户端软件(如浏览器)从服务器上获得网页浏览、软件下载等服务。简单地讲服务器就是服务提供者,而客户机则是服务获得者。

静态网页

在网站设计中,静态网页是网站建设的基础,纯粹 HTML 格式的网页通常被称为“静态网页”,静态网页是标准的 HTML 文件,它的文件扩展名是 .htm、.html,可以包含文本、图像、声音、FLASH 动画、客户端脚本和 ActiveX 控件等。

静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。

容易误解的是,静态网页并不是静止不动的,它也可以出现各种动态的效果,如 GIF 动画、FLASH、滚动字幕等。

静态网页服务的实现首先需要客户机通过浏览器向服务器发出请求,然后服务器接受请求并根据请求从服务器端的网页中找到对应的页面,最后返回给客户机浏览器。这个过程中所发送的页面都是事先编辑好的,它并不能自动生成。

静态网页的实现模式

图1:静态网页的实现模式

静态网页有以下特点:

动态页面

动态网页是基本的 HTML 语法规范与 PHP、Java、Python 等程序语言、数据库等多种技术的融合,以期实现对网站内容和风格的高效、动态、交互式的管理。因此,可以理解为凡是结合了 HTML 以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。

也就是说,动态网页相对于静态网页来说,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。

动态网页与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术(如 PHP、JSP 等)生成的网页都可以称为动态网页。

与静态网页相比,动态网页有以下特点:

与静态网页的实现方法不同,动态网页服务的实现首先需要客户机向服务器发送请求,然后服务器根据用户请求把动态网页内部的代码先在服务器上进行相应的处理,最后服务器把生成的结果发送给客户机,如下图所示:

动态网页的实现模式

图2:动态网页的实现模式

动态网页与传统网页的区别 1) 更新和维护

静态网页内容一经发布到网站服务器上,无论是否有用户访问,这些网页内容都是保存在网站服务器上的。如果要修改网页的内容,就必须修改其源文件,然后重新上传到服务器上。静态网页没有数据库的支持,当网站信息量很大的时候网页的制作和维护都很困难。

动态网页可以根据不同的用户请求,时间或者环境的需求动态的生成不同的网页内容,并且动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量。

2) 交互性

静态网页由于很多内容都是固定的,在功能方面有很大的限制,所以交互性较差。

动态网页则可以实现更多的功能,如用户的登录、注册、查询等。

3) 响应速度

静态网页内容相对固定,容易被搜索引擎检索,且不需要连接数据库,因此响应速度较快。

动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页,其中涉及到数据的连接访问和查询等一系列过程,所以响应速度相对较慢。

搭建PHP开发环境

对于初学者,推荐在 Windows 操作系统下使用 XAMPP 一键安装 PHP 集成开发环境(Apache、PHP、MySQL),XAMPP 提供 PHP 7 的安装版本,读者只需要到官方网站 下载即可。下载界面如图所示。

img

下载后得到一个 EXE 文件,双击该文件安装。安装完成后,查看该集成环境安装目录,如图所示。

img

双击 manager-windows.exe 即可打开管理窗口,在 Manage Servers 选项卡查看 MySQL 及 Apache 运行状态,如图所示。

img

应用目录默认位于安装目录的 apache2/htdocs 目录下,在该目录下新建 test.php 并编辑其内容:

上面代码中分别表示 PHP 文件的开始和结束标记,在这里结束标记?>并不是必须的,可以省略。两个标记之间是我们所写的 PHP 代码,代码与开始/结束标记也可以在同一行,但必须以空格分开,如下所示:

其中,echo 是输出语句,用于输出一个字符串,也就是 echo 后面以" "包裹的部分(这里使用' '也是可以的)。末尾的英文状态的分号;表示一条语句的结束。

PHP 源文件的格式为“.php”,理论上 PHP 的源文件可以放在任意目录下,但是为了方便运行我们还是尽量将它放置在服务器环境相应的目录下,比如下面列举的这些:

提示:因开发环境的不同,PHP 源文件的存放目录略有不同,比较常见的就是 htdocs、WWW 这两个目录。

本教程中使用的就是 XAMPP 集成环境,所以首先需要在 htdocs 目录下创建一个 index.php 文件,index 在这里是首页的意思,PHP 程序默认会首先运行名为 index 的文件(如 index.php、index.html 等),当然这也不是绝对的,我们也可以通过修改配置文件的方式让 PHP 程序首先运行指定的文件,这些我们会在后面详细介绍。

新建一个 index.php 文件

图:新建一个index.php文件

创建好 index.php 文件后,将我们上面的代码复制到文件中并保存。

在开始运行之前,我们首先需要确认一下 XAMPP 的 apache 服务处于开启状态,如下图所示:

img

图:开启 apache 服务

然后就可以在浏览器中输入 localhost,或者点击上图红框中的 Admin 按钮就可以运行我们的 PHP 程序了,如下图所示:

第一个 php 程序

图:运行第一个PHP程序

MySQL数据库简介

PHP 在开发 Web 站点或一些管理系统时,需要对大量的数据进行保存,虽然 XML 文件或者文本文件也可以作为数据的载体,但不易进行管理和对大量数据的存储,所以在项目开发时,数据库就显得非常重要。

PHP 可以连接的数据库种类较多,其中 MySQL 数据库与其兼容较好,在 PHP 数据库开发中被广泛地应用。

MySQL 是什么

MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。

MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。

MySQL logo

图:MySQL 图标

目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。

MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载 MySQL 数据库,而不必支付任何费用。

MySQL 特点

下面总结了一下 MySQL 具备的特点。

1) 功能强大

MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。

2) 支持跨平台

MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。

3) 运行速度快

高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。

4) 支持面向对象

PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。

5) 安全性高

灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。

6) 成本低

MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。

7) 支持各种开发语言

MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。

8) 数据库存储容量大

MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。

9) 支持强大的内置函数

PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。

数据库的应用

数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像及声音等,数据是所有计算机系统所要处理的对象。我们所熟知的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组成数据文件,再用程序来调用,数据文件与程序文件保持着一定的关系。

在计算机应用迅速发展的情况下,这种文件式管理方法便显出它的不足。比如,它使得数据通用性差、不便于移植、在不同文件中存储大量重复信息、浪费存储空间、更新不便等。

而数据库系统便能解决上述问题。数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。

其实简单地说,数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称为数据库管理系统。一般一个数据库系统(Database System)

可以分为数据库(Database)与数据管理系统(Database Management System,DBMS)两个部分。主流的数据库软件有 Oracle、Informix、Sybase、SQL Server、PostgreSQL、MySQL、Access、FoxPro 和 Teradata 等等。

数据库在 Web 开发中的重要地位

归根结底,动态网站都是对数据进行操作,我们平时浏览网页时,会发现网页的内容会经常变化,而页面的主体结构框架没变,新闻就是一个典型。这是因为我们将新闻存储在了数据库中,用户在浏览时,程序就会根据用户所请求的新闻编号,将对应的新闻从数据库中读取出来,然后再以特定的格式响应给用户。

Web 系统的开发基本上是离不开数据库的,因为任何东西都要存放在数据库中。所谓的动态网站就是基于数据库开发的系统,最重要的就是数据管理,或者说我们在开发时都是在围绕数据库在写程序。所以作为一个 Web 程序员,只有先掌握一门数据库,才可能去进行软件开发。

下图展示了项目中一个模块的开发流程:将网站的内容存储在 MySQL 数据库中;然后使用 PHP 通过 SQL 查询获取这些内容并以 HTML 格式输出到浏览器中显示。或者将用户在表单中输出的数据,通过在 PHP 程序中执行 SQL 查询,将数据保存在 MySQL 数据库中。也可以在 PHP 脚本中接受用户在网页上的其他相关操作,再通过 SQL 查询对数据库中存储的网站内容进行管理。

基于数据库的 Web 系统

图:基于数据库的 Web 系统

PHP 几乎可以使用现有的所有的数据库,MySQL 与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,自有它的不足之处,比如规模小、功能有限(MySQL Cluster 的功能和效率都相对比较差)等,但这也丝毫没有减少它受欢迎的程度。 对于一般的个人使用者或者中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。

目前 Internet 上流行的网站构架方式分别是 LAMP(Linux + Apache + MySQL + PHP/Perl/Python)和 LNMP(Linux + Nginx + MySQL + PHP/Perl/Python),也就是使用 Linux 作为操作系统,Apache 和 Nginx 作为 Web 服务器,MySQL 作为数据库,PHP 作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件,因此使用这种方式不用花一分钱(除开人工成本外)就可以建立起一个稳定、免费的网站系统。

PHP 和 MySQL 的合作方式

在同一个 MySQL 数据库服务器中可以创建多个数据库,如果把每个数据库看成是一个“仓库”,那么网站中的内容数据就存储在这个仓库中。而对数据库中数据的存取及维护等,都是通过数据库管理系统软件进行管理的。

同一个数据库管理系统可以为不同的网站分别建立数据库,但为了使网站中的数据便于维护、备份及移植,最好为一个网站创建一个数据库(在大数据量时则采用分库分表)。数据库和数据库管理系统,以及 PHP 应用程序之间的关系如下图所示。

PHP 程序与数据库之间的关系

图:PHP 程序与数据库之间的关系

PHP连接数据库

使用 PHP 操作 MySQL 数据库是进行 Web 开发的必然要求之一,PHP 中提供了完整的操作 MySQL 数据库的函数,这些函数包括了从连接数据库、执行 SQL 语句、处理数据结果集到关闭数据库的方方面面。通过这些函数,使基于 MySQL 数据库的 Web 开发高效而简单。通常 PHP 访问 MySQL 数据库的步骤如下图所示。

PHP 访问数据库的步骤

图:PHP 访问数据库的步骤

在此之前,我们需要确保开启了 PHP 中的 mysqli 扩展。以 Windows 系统为例,开启 mysqli 扩展就是将 php.ini 配置文件中extension=mysqli(php7)或extension=php_mysqli.dll(php5)一项的注释去掉即可。

注意:在学习 PHP 操作 MySQL 数据库的过程中,会涉及到一些 MySQL 的相关知识,不了解的同学可以阅读本站的《MySQL教程》。

开启成功后可以使用 phpinfo() 函数查看,示例代码如下:

在输出的界面中搜索 mysqli,出现如下界面则表示开启成功。

使用 phpinfo() 函数查看是否开启成功

图:使用 phpinfo() 函数查看是否开启成功

连接 MySQL 数据库

前面我们成功开启了 PHP 中的 mysqli 扩展,使用扩展中的 mysqli_connect() 函数就可以实现 MySQL 数据库的连接,函数语法格式如下:

mysqli_connect(

[string $host = ini_get(“mysqli.default_host”)

[, string $username = ini_get(“mysqli.default_user”)

[, string $password = ini_get(“mysqli.default_pw”)

[, string $dbname = “”

[, int $port = ini_get(“mysqli.default_port”)

[, string $socket = ini_get(“mysqli.default_socket”)

]]]]]] )

参数说明如下:

另外需要注意的是,mysqli_connect() 函数是 mysqli::__construct() 函数的别名,所有使用对象 mysqli() 也可以实现连接数据库。

【示例】下面通过一个简单的代码实现连接数据库。

1) 面向过程风格的写法

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!