天天看点

《Android和PHP开发最佳实践 》一3.2 PHP开发环境

前面我们已经学习了php编程语言的基础知识,接下来我们来了解php的开发环境。在此之前,我们先讨论一下php的开发工具。php是一种脚本语言,因此就语言本身特点而言,对开发工具没有什么严格的限制,从简单的notepad和editplus到复杂的zend studio和eclipse都可以进行php开发;但是在实际项目中,为了保证编码的一致性,以及代码版本管理的方便性,我建议大家在项目开发时使用eclipse作为php编程开发的统一工具,如此一来,还可以和android应用开发使用同一个开发工具,何乐而不为呢?

pdt的安装方法很简单,解压即可使用。但要注意的是,如果你的开发机之前没有安装过java运行环境,pdt还是不能运行的,毕竟它还是要依靠eclipse环境(环境搭建过程可参考2.10.1节)。当然,如果你想要把php开发环境和android开发环境合为一体也是可以的,这就需要我们先下载pdt解压安装之后再安装adt。

和android客户端开发不同,进行php服务端开发,除了要安装语言本身的环境之外,还需要安装和配置服务端需要的组件,这也是服务端开发和客户端开发的不同之处。当然,php的集成开发环境有很多,本书为大家推荐一个方便实用的集成开发环境套件:xampp。该套件是完全免费的,它集成了apache服务器、mysql数据库、php语言以及perl语言等我们常用的服务端开发工具。

本书的开发环境是windows,所以在下载完xampp的windows版本之后,我们需要将其安装到一个便于访问的目录下,比如d:xampp目录,其中包含的文件如图3-8所示。

《Android和PHP开发最佳实践 》一3.2 PHP开发环境

从图3-8中我们可以看到xampp还提供了很多额外的配套工具,我们先不看这些工具,找到“xampp-control.exe”文件,双击打开,会看到如图3-9所示的xampp控制台界面。

xampp管理界面可以支持多种语言,若要使用中文可以从页面右上方的语言选项中选择。另外,界面的左边是xampp所有的功能选项,接下来,介绍其中比较重要的几个管理工具。

状态:xampp主要组件的运行状态。

《Android和PHP开发最佳实践 》一3.2 PHP开发环境
《Android和PHP开发最佳实践 》一3.2 PHP开发环境

安全:如果你想用xampp作为正式环境,这个部分就很重要,因为这里涉及一些关于xampp安全的注意事项。

文档:xampp常用组件的文档,包括apache、mysql等。

phpinfo():此选项查看的是php的系统参数,比如,如果我们需要查找一些php的模块是否已经安装就可以在这里查看。

phpmyadmin:mysql数据库管理工具,关于此工具将在本章的3.2.4小节中做详细介绍。

webalizer:简单小巧的web日志分析工具,可做简单的访问分析。

mercury mail:mail服务器,建议仅供调试。

filezilla ftp:ftp服务器,建议仅供调试。

xampp的管理工具看起来非常多,然而,在开发过程中经常用到的管理工具并不多,最经常用到的无非就是使用“phpinfo()”查看php环境参数,以及使用“phpmyadmin”管理mysql数据库等。

apache服务器是当今功能最为强大的http服务器之一,也是目前全球市场占有率最高的http服务器。因此,对于服务端开发者来说,如何管理apache应该算是一个必须学习的内容;当然,如果你想仅仅通过本节就完全掌握apache这是绝对不可能的,因为仅仅是apache的日常管理文档就可以写成一本很厚的参考书。本节我们主要介绍一下在php服务端开发过程中,apache服务器的基本用法。

由于xampp环境已经帮助我们把apache和php结合起来了,所以不需要做任何配置就可以让apache支持php脚本。以下是一些在日常开发过程中常出现的操作,让我们来分别学习一下。

启动和停止

在xampp中启动和停止apache非常简单,可直接在xampp控制台中进行操控。如果有疑问可以参考3.2.2节的内容。

设置虚拟主机(virtual host)

首先,我们需要找到并打开windows本地的host文件,该文件位置如下:c:windowssystem32driversetchosts,并在文件尾部加上如配置清单3-1所示的内容。

配置清单 3-1

然后,我们再打开apache的虚拟主机配置文件,该文件位于xampp中的apache目录下,如d:xamppapacheconfextrahttpd-vhosts.conf,其中我们加入如配置清单3-2所示的配置信息。

配置清单 3-2

接着,我们在站点根目录(documentroot)中放入一个测试php脚本,用于测试环境是否配置成功,如代码清单3-13所示。

代码清单 3-13

最后,重启apache服务器,打开浏览器并输入刚才准备好的php脚本文件进行测试,效果如图3-11所示。

《Android和PHP开发最佳实践 》一3.2 PHP开发环境

如果看到的页面和上图的一样,那么表示我们的php网络脚本开发运行环境准备就绪了。学会这些之后,你还可以在该应用目录下编写其他的php脚本进行学习。

mysql数据库绝对是现在市面上最为流行的开源数据库之一。实际上,php和mysql在很早以前就被认为是互联网领域的“天作之合”,php为mysql提供了非常稳定而高效率的数据库接口,而mysql又为php提供了灵活而强大的数据存储方式,所以在学习php的同时,mysql也就自然而然变成必学内容中的一部分了。

和apache一样,mysql同样是一个庞然大物,想用一节的文字就把mysql完全说清楚同样是不大现实的事情,因此在本节中我们只对mysql本身做简单介绍,主要介绍如何使用phpmyadmin工具来管理mysql数据库。

首先,我们来简单介绍一下mysql数据库。和本书中所介绍的其他组件一样,mysql是开源而且免费的,除此之外,它还有以下几个主要的优势和特点。

稳定性

对于数据库来说,稳定性毫无疑问是最重要的。对于mysql的稳定性,其实无须多虑,作为目前全球最受欢迎的开源数据库,mysql被无数的互联网应用所采用,比如facebook等。而在这些成功的实例中,mysql扮演着最稳定的数据存储后盾的角色。

高性能

支持多线程,性能佳,同时mysql还提供了非常丰富的性能配置选项(在配置文件my.cnf中)。我曾经对目前linux上的多个主流数据库做过高并发的压力测试,mysql的处理能力绝对是名列前茅的。

灵活性

单台mysql服务器支持的对象数达到十亿(billion)级别,因此从理论上来讲,在性能没有下降的前提下,我们可以建立任意多个数据库,每个数据库中包含任意多张数据表,这样我们就可以在一台mysql服务器上模拟分库分表,当然,我们甚至还可以在一台服务器上建立多个mysql实例。

支持主从

主从复制(replication)也是mysql最重要的特性之一,mysql支持一主多从,以及互为主从两种模式。我们常用的是一主多从的方式,在主从模式运行时,主库会持续地把数据同步到从库上去,一般来说我们会将主库作为写库而从库作为读库,这样做的好处是:多个从库不仅可以为主库分担读的压力,而且还可以为主库提供多套数据备份,当主库出问题时,我们可以通过修改配置快速地进行数据恢复。

支持集群

在mysql 5之后也支持使用ndb cluster存储引擎来实现多cluster的服务器集群,但是在php项目中通常依靠程序逻辑来实现数据库集群的功能。

插件丰富

据我了解mysql的插件应该是目前所有数据库中最多的,针对各种不同的使用场景,都会有不同的数据库引擎或者数据库插件与之对应,比如近几年出现的mysql的nosql处理引擎handlesocket等。丰富的插件系统也使得mysql的应用范围越来越广。

接下来,我们来看看在xampp环境下如何方便地管理mysql。在3.2.2节中曾经提到过xampp自带的phpmyadmin管理工具,此工具是由纯php写出来的,特点就是部署完之后可以直接在浏览器中打开操作,界面如图3-12所示。

图3-12展示的就是phpmyadmin的主界面(在不同的版本里phpmyadmin的界面表现可能会稍有不同,但是功能布局肯定是不会变的),左边灰色的列表就是目前所有的mysql数据库列表,其中除了mysql、information_schema、performance_schema以及test是mysql自带的数据库之外,其他的数据库都是后来添加的。我们单击对应的数据库名就可以进入对应的数据库管理界面,例如我们单击cdcol数据库,会看到如图3-13所示的管理界面。

从图3-13中可以看到,cdcol库中只有一个表cds,单击表名就可以在右边看到表里所有数据的列表,当然我们可以对这些数据进行增删查改等动作。另外,在数据列表上面我们可以看到所有操作的相关sql,非常方便;sql栏上方还有一排按钮选项,这些选项的功能也是我们在日常操作中经常使用的,下面简单介绍一下。

《Android和PHP开发最佳实践 》一3.2 PHP开发环境
《Android和PHP开发最佳实践 》一3.2 PHP开发环境

浏览:默认的功能,用于管理表中的数据。

结构:用于查看表的详细结构,还可以添加索引。

sql:使用我们自己编写的sql语句进行数据表操作。

搜索:快捷地使用模糊搜索查找数据。

插入:插入新的数据。

导出:导出表中的数据,一般用于数据备份或者转移;phpmyadmin提供了非常多的导出方式和选项,一般来说mysql导出的文件都是文本sql文件。

导入:和导出相反的功能,一般用于数据恢复。

操作:提供一些其他的高级功能选项,比如修改数据表名、修改存储引擎、修改字符集等操作,需要了解更多信息请进入相应界面查看。

清空:清空表内所有数据,此操作在未开启事务的情况下不可恢复,请慎用!

删除:删除整张表,请慎用!

由于篇幅限制,对于phpmyadmin的一些主要功能的介绍到此为止,如果你想熟悉这个工具建议动手操作一下,熟悉一下这个mysql管理工具的日常功能,这对后面的服务端开发是非常重要的。