PHP的开发环境需要web服务器和PHP解释器以及数据库服务器。但是这些软件的安装和配置对于大多数初学者而言,是比较复杂的。为了解决这一问题,出现了众多的集成安装包(如WAMP、PHPStudy、XAMPP等等),即把PHP开发需要的软件打包在一起,并且做好了重要的配置工作,大大简化了搭建PHP开发环境的难度。
XAMPP
XAMPP是完全免费且易于安装的Apache发行版,其中包含MariaDB、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。XAMPP支持多个平台,如Windows、Linux和OS X。我们选择对应的平台,下载合适的版本完成安装后,我们就拥有了一个本地化的PHP开发运行环境,启动浏览器,在地址栏中键入:

http://localhost
就能看到XAMPP的欢迎界面,表明安装成功。
PHPStudy
PHPStudy集成开发环境,具有免安装,配置齐备的特点。可与cmder、Sublime Text便携版或者VSC 便携版一起组成即插即用的PHP开发环境,建议在公共机房等场景使用。
使用虚拟机搭建LEMP开发环境
尽管上述的方法能快速搭建开发平台,但实际工作中,运行网站或APP后台的服务器常常采用Linux操作系统,如centos、deban等等,因此,有必要对linux环境下的服务器设置和管理有所了解。我们可以借助虚拟机技术,在本地模拟服务器端的情况。
使用虚拟机建立CentOS系统
首先需要在系统中安装包管理工具,Windows系统选择Chocolatey,Mac系统选择Homebrew。然后使用包管理工具安装虚拟机管理工具vagrant。再使用vagrant载入纯净的CentOS box或者其他适合运行为服务器端的linux操作系统。具体内容可参见:http://yangjh.oschina.io/appendix/virtualmachine.html
添加仓库
采用CentOS的默认仓库安装软件包的时候,大多以稳定版为主,较少有最新版本的软件,因此,我们需要安装添加额外的仓库,以拓展安装软件包的数量和范围。
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm -y
安装Nginx
sudo yum install nginx -y
安装完毕后,启动NGINX服务,并使其开机自启动:
sudo systemctl start nginxsudo systemctl enable nginx
这样我们就有了WWW服务器,在浏览器键入虚拟机地址,即可看到Nginx的欢迎页面。
安装MariaDB
sudo yum install mariadb -y
安装完毕后,启动mariadb服务,并使其开机自启动:
sudo systemctl start mariadbsudo systemctl enable mariadb
再设置安全相关操作:
mysql_secure_installation
设置root用户密码,删除test数据库,禁用远程登录等有安全隐患的操作。
这样我们就建立了数据库服务。
安装PHP7
第一个 PHP 页面
在 web 服务器根目录(DOCUMENT_ROOT)下(具体到XAMPP集成环境中,是xampp目录中的htdocs目录),建立一个文件名为 hello.php,然后完成如下内容:
<html> <head> <title>PHP 测试</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body></html>
在浏览器的地址栏里输入 web 服务器的 URL 访问这个文件,在结尾加上“/hello.php”。如果本地开发,那么这个 URL 一般是 http://localhost/hello.php 或者 http://127.0.0.1/hello.php,当然这取决于 web 服务器的设置。如果所有的设置都正确,那么这个文件将被 PHP 解析,浏览器中将会输出。
该程序非常简单,它仅仅只是利用了 PHP 的 echo 语句显示了 Hello World。因为使用了“.php”的扩展名,服务器已被配置成自动传递有着“.php”扩展名的文件给 PHP 解释器。PHP 解释器将相应的php代码解释成HTML内容后,再传递给用户。
一个普通的 HTML 文件,加上了几个特别的标签,就可以利用PHP做很多有趣的事情,充分体现了PHP作为web开发语言快速灵活的优势。
echo 是PHP中最常用的输出语言构造,严格来说,echo 不是函数。echo语句可以输出单行、多行文本,此外,print也可向浏览器或文件输出字符。
文本编辑器
理论上来讲,任何文本编辑器都可用来开发PHP程序。但综合考虑功能、价格、速度和可扩展性等等因素,我们推荐使用Sublime Text编辑器书写PHP代码。当然,如果经费充裕,可以考虑使用PHPStorm,PHPStorm是使用Java语言开发的一款功能强大的PHP IDE代码编辑器。Sublime Text的使用和配置,参见附录。
PHP运行机制
PHP说简单,但是要精通也不是一件简单的事。我们除了会使用之外,还得知道它底层的工作原理。PHP的运行机制实际上是从下到上的一个4层体系,下面对详细解释这四个层次的作用:
Zend引擎 Zend整体用纯C实现,是PHP的内核部分,它将PHP代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构(如hashtable、oo)、内存分配及管理、提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕Zend实现。Extensions 围绕着Zend引擎,extensions通过组件式的方式提供各种基础服务,我们常见的各种内置函数(如array 系列)、标准库等都是通过extension来实现,用户也可以根据需要实现自己的extension以达到功能扩展、性能优化等目的。Sapi :Sapi全称是Server Application Programming Interface,也就是服务端应用编程接口,Sapi通过一系列钩子函数,使得PHP可以和外围交互数据,这是PHP非常优雅和成功的一个设计,通过sapi成功的将PHP本身和上层应用解耦隔离,PHP可以不再考虑如何针对不同应用进行兼容,而应用本身也可以针对自己的特点实现不同的处理方式。上层应用 这就是我们平时编写的PHP程序,通过不同的sapi方式得到各种各样的应用模式,如通过webserver实现web应用、在命令行下以脚本方式运行等等.