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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 本节书摘来自华章出版社《Android和PHP开发最佳实践 》一书中的第3章,第3.2节,作者 黄隽实,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.2 PHP开发环境

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

3.2.1 开发环境的搭建

让Eclipse支持PHP有两种方式,其一是在本机的Eclipse开发工具上安装一款名为PHPEclipse的插件;不过现在我们一般使用另一种方式,也就是直接下载Eclipse专门为PHP开发者定制的开发工具PDT,下载地址为:http://www.eclipse.org/pdt/downloads/
PDT的安装方法很简单,解压即可使用。但要注意的是,如果你的开发机之前没有安装过Java运行环境,PDT还是不能运行的,毕竟它还是要依靠Eclipse环境(环境搭建过程可参考2.10.1节)。当然,如果你想要把PHP开发环境和Android开发环境合为一体也是可以的,这就需要我们先下载PDT解压安装之后再安装ADT。

3.2.2 安装配置Xampp

和Android客户端开发不同,进行PHP服务端开发,除了要安装语言本身的环境之外,还需要安装和配置服务端需要的组件,这也是服务端开发和客户端开发的不同之处。当然,PHP的集成开发环境有很多,本书为大家推荐一个方便实用的集成开发环境套件:Xampp。该套件是完全免费的,它集成了Apache服务器、MySQL数据库、PHP语言以及PERL语言等我们常用的服务端开发工具。
Xampp的下载地址非常多,利用搜索引擎可找到很多关于“Xampp下载”的链接,大家选择一个比较官方的链接点击下载即可。当然在本节中我们只会重点介绍这个工具的使用方法,如果你想了解更全面的关于Xampp开发环境套件的详细内容,可以上官方网站了解,网址为:http://www.apachefriends.org/zh_cn/xampp.html
本书的开发环境是Windows,所以在下载完Xampp的Windows版本之后,我们需要将其安装到一个便于访问的目录下,比如D:xampp目录,其中包含的文件如图3-8所示。

image

从图3-8中我们可以看到Xampp还提供了很多额外的配套工具,我们先不看这些工具,找到“xampp-control.exe”文件,双击打开,会看到如图3-9所示的Xampp控制台界面。
在Xampp的控制台界面中,我们可以看到前两排分别是Apache和MySQL的控制按钮,我们单击这两个“Start”按钮就可启动Apache和MySQL了,非常方便。接着我们打开浏览器,输入“http://localhost”地址就可以看到Xampp的管理界面了,如图3-10所示。
Xampp管理界面可以支持多种语言,若要使用中文可以从页面右上方的语言选项中选择。另外,界面的左边是Xampp所有的功能选项,接下来,介绍其中比较重要的几个管理工具。
状态:Xampp主要组件的运行状态。

image

image

安全:如果你想用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数据库等。

3.2.3 管理Apache

Apache服务器是当今功能最为强大的HTTP服务器之一,也是目前全球市场占有率最高的HTTP服务器。因此,对于服务端开发者来说,如何管理Apache应该算是一个必须学习的内容;当然,如果你想仅仅通过本节就完全掌握Apache这是绝对不可能的,因为仅仅是Apache的日常管理文档就可以写成一本很厚的参考书。本节我们主要介绍一下在PHP服务端开发过程中,Apache服务器的基本用法。
由于Xampp环境已经帮助我们把Apache和PHP结合起来了,所以不需要做任何配置就可以让Apache支持PHP脚本。以下是一些在日常开发过程中常出现的操作,让我们来分别学习一下。

  1. 启动和停止
    在Xampp中启动和停止Apache非常简单,可直接在Xampp控制台中进行操控。如果有疑问可以参考3.2.2节的内容。
  2. 设置虚拟主机(Virtual Host)
    当我们开发一个新的网络应用时,首先,我们需要给这个网络应用分配一个域名,那么我们怎么在开发机上访问这个域名呢,我们假设现在要做的网络应用的域名是“http://test-app”,我们可以通过以下步骤来设置Apache的虚拟主机。

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

…
127.0.0.1  test-app
…

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

…
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/path/to/test-app"
    ServerName test-app
    <Directory />
        AllowOverride All
        Allow from all
    </Directory>
</VirtualHost>
…

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

<?php
phpinfo();
?>

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

image

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

3.2.4 管理MySQL

MySQL数据库绝对是现在市面上最为流行的开源数据库之一。实际上,PHP和MySQL在很早以前就被认为是互联网领域的“天作之合”,PHP为MySQL提供了非常稳定而高效率的数据库接口,而MySQL又为PHP提供了灵活而强大的数据存储方式,所以在学习PHP的同时,MySQL也就自然而然变成必学内容中的一部分了。
和Apache一样,MySQL同样是一个庞然大物,想用一节的文字就把MySQL完全说清楚同样是不大现实的事情,因此在本节中我们只对MySQL本身做简单介绍,主要介绍如何使用phpMyAdmin工具来管理MySQL数据库。
首先,我们来简单介绍一下MySQL数据库。和本书中所介绍的其他组件一样,MySQL是开源而且免费的,除此之外,它还有以下几个主要的优势和特点。

  1. 稳定性
    对于数据库来说,稳定性毫无疑问是最重要的。对于MySQL的稳定性,其实无须多虑,作为目前全球最受欢迎的开源数据库,MySQL被无数的互联网应用所采用,比如Facebook等。而在这些成功的实例中,MySQL扮演着最稳定的数据存储后盾的角色。
  2. 高性能
    支持多线程,性能佳,同时MySQL还提供了非常丰富的性能配置选项(在配置文件my.cnf中)。我曾经对目前Linux上的多个主流数据库做过高并发的压力测试,MySQL的处理能力绝对是名列前茅的。
  3. 灵活性
    单台MySQL服务器支持的对象数达到十亿(Billion)级别,因此从理论上来讲,在性能没有下降的前提下,我们可以建立任意多个数据库,每个数据库中包含任意多张数据表,这样我们就可以在一台MySQL服务器上模拟分库分表,当然,我们甚至还可以在一台服务器上建立多个MySQL实例。
  4. 支持主从
    主从复制(Replication)也是MySQL最重要的特性之一,MySQL支持一主多从,以及互为主从两种模式。我们常用的是一主多从的方式,在主从模式运行时,主库会持续地把数据同步到从库上去,一般来说我们会将主库作为写库而从库作为读库,这样做的好处是:多个从库不仅可以为主库分担读的压力,而且还可以为主库提供多套数据备份,当主库出问题时,我们可以通过修改配置快速地进行数据恢复。
  5. 支持集群
    在MySQL 5之后也支持使用NDB Cluster存储引擎来实现多Cluster的服务器集群,但是在PHP项目中通常依靠程序逻辑来实现数据库集群的功能。
  6. 插件丰富
    据我了解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栏上方还有一排按钮选项,这些选项的功能也是我们在日常操作中经常使用的,下面简单介绍一下。

image

image

浏览:默认的功能,用于管理表中的数据。
结构:用于查看表的详细结构,还可以添加索引。
SQL:使用我们自己编写的SQL语句进行数据表操作。
搜索:快捷地使用模糊搜索查找数据。
插入:插入新的数据。
导出:导出表中的数据,一般用于数据备份或者转移;phpMyAdmin提供了非常多的导出方式和选项,一般来说MySQL导出的文件都是文本SQL文件。
导入:和导出相反的功能,一般用于数据恢复。
操作:提供一些其他的高级功能选项,比如修改数据表名、修改存储引擎、修改字符集等操作,需要了解更多信息请进入相应界面查看。
清空:清空表内所有数据,此操作在未开启事务的情况下不可恢复,请慎用!
删除:删除整张表,请慎用!
由于篇幅限制,对于phpMyAdmin的一些主要功能的介绍到此为止,如果你想熟悉这个工具建议动手操作一下,熟悉一下这个MySQL管理工具的日常功能,这对后面的服务端开发是非常重要的。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
22天前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
87 2
|
2月前
|
设计模式 测试技术 PHP
使用PHP进行面向对象网站开发的最佳实践
【8月更文第10天】PHP 是一种广泛使用的开源服务器端脚本语言,特别适合于 Web 开发并可嵌入 HTML 中。随着 PHP 5.x 和 7.x 版本的发展,它已经完全支持面向对象编程(OOP)。面向对象的设计模式和原则可以帮助开发者构建更加模块化、可扩展且易于维护的应用程序。
42 6
|
5天前
|
缓存 安全 PHP
PHP 7新特性及其最佳实践
【10月更文挑战第2天】本文将深入探讨PHP 7带来的创新特性,以及如何运用这些特性优化代码和提升性能。我们将从类型声明、空值合并运算符等新语法出发,通过实际代码示例,展示如何高效利用PHP 7的新特性进行开发。文章还将分享一系列最佳实践,帮助你写出更安全、更快速的PHP代码。无论你是PHP新手还是资深开发者,这篇文章都将为你提供有价值的见解和技巧。
21 5
|
12天前
|
安全 Android开发 数据安全/隐私保护
探索安卓与iOS的安全性对比:哪个更适合企业环境?
在数字化时代,移动设备已成为企业日常运营不可或缺的一部分。选择合适的操作系统对于保障企业数据安全至关重要。本文深入分析了Android和iOS两大主流操作系统的安全性,从系统架构、安全功能、应用生态及更新频率四个维度进行全面比较,旨在为企业提供一个清晰的决策依据,帮助企业在Android的开放性与iOS的封闭性之间找到最适合自身需求的平衡点。
42 6
|
9天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
20天前
|
Dart 开发工具 Android开发
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
|
23天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
34 2
|
1月前
|
设计模式 数据库连接 PHP
PHP中的设计模式应用与最佳实践
在本文中,我们将探讨PHP设计模式的应用和最佳实践。通过深入分析,揭示如何在实际项目中有效利用设计模式来优化代码结构、提升系统灵活性和维护性,并分享一些常见设计模式的实际应用案例。无论你是PHP初学者还是经验丰富的开发者,这篇文章都会对你有所帮助。
|
2月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
49 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目