PHP的运行环境可以分为CLI模式和CGI模式,前者为命令行模式,可以本机运行;后者为网关模式,通常使用Nginx或Apache作为Web服务器,而PHP作为解释器来接收输入数据并将处理结果返回给Web服务器。
如果读者使用Windows平台,可以在网址https://windows.php.net/download中下载。
推荐将PHP安装在C:\php目录下。
如果读者使用Mac系统,则可以使用Homebrew来安装:
sudo brew update brew install php70
如果读者使用Ubuntu系统,则可以使用如下命令来安装:
sudo apt-get update sudo apt-get install php7.0-fpm php7.0-cli
本书默认PHP的安装位置如表1-1所示。
表1-1 PHP默认安装位置
以Ubuntu为例,最后安装完成之后,可以用php-v来查看版本号:
注意,本书默认的PHP版本为7,有特殊说明的除外。
在CLI模式下运行PHP代码有多种方式,本书使用如下三种:
php source.php
php -r 'phpinfo()';
localhost:etc didi$ php -a Interactive shell php > echo 'hello world'; hello world
CGI模式下,Web服务器接收客户端发出的请求,将地址栏的URL“路由”到一个PHP脚本,而PHP作为解释器来执行PHP脚本。这里介绍4种Web环境的配置。
PHP 5.4.0以上的版本提供了一个内置的Web服务器,供本地开发使用,默认的Web根目录是当前目录,也可以使用-t来指定其他的目录作为Web根目录。
$ php -S localhost:8000 -t ~/www PHP 7.1.19 Development Server started at Wed Jan 23 15:11:37 2019 Listening on http://localhost:8000 Document root is /Users/david/www Press Ctrl-C to quit.
由于LNMP环境的配置对初学者来说比较复杂和烦琐,因此一些企业或组织推出集成开发环境的一键安装包,不需要复杂配置,安装即可使用,这里推荐使用XMAPP环境。
XMAPP是一款集成PHP、MariaDB、Apache等软件的开发环境,目前提供了Windows、Mac、Linux的全平台支持的下载包。下载地址为:https://www.apachefriends.org/index.html。
LNMP是Linux、Nginx、MySQL、PHP的缩写,是常用的PHP生产环境。本节简单描述一下在Ubuntu下安装LNMP环境的步骤。完整命令可以在随书代码的gists/ch01/install_lnmp.md文件中找到。
(1)准备必要的软件包:
sudo apt-get install software-properties-common sudo apt-get install -y language-pack-en-base sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
(2)安装PHP 7。此处安装了PHP的很多扩展,读者可以根据自己的需要酌情增减:
(3)安装Nginx:
sudo apt-get install nginx
Nginx和PHP通信的方式有两种:TCP/IP和UNIX Domain Socket。一般推荐使用TCP/IP方式。
编辑/etc/php/7.0/fpm/pool.d/www.conf文件,使PHP-FPM监听9000端口:
listen 127.0.0.1:9000
然后修改sites-enabled目录里的文件,将fastcgi_pass修改如下:
(4)安装MySQL Server:
运行以下命令,根据提示完成MySQL Server的安装:
sudo apt-get install mysql-server sudo mysql_secure_installation
(5)重新启动服务:
sudo service php7.0-fpm restart sudo service nginx restart
如果Nginx启动失败,可以将IP V6配置注释掉:
(源码文件:/etc/nginx/sites-enabled/default)
#listen [::]:80 default_server;
访问http://localhost或相应IP即可看到Nginx的欢迎页面,如图1-1所示。
图1-1 Nginx的欢迎页面
这样即可完成安装。
习惯使用Docker的读者,也可以使用Docker搭建开发环境。LNMP环境所需要的软件镜像都可以在Docker Hub(https://hub.docker.com)里找到。表1-2列举了软件镜像的网址和命令。
表1-2 软件镜像网址及命令
这里推荐笔者开发的一个使用相关软件的Alpine版本的Docker环境。读者可以访问https://github.com/spetacular/php-alpine获取相关下载文件。
Alpine(见图1-2)是一个面向安全的轻型Linux发行版,官网地址为https://alpinelinux.org。不同于通常的Linux发行版,Alpine采用了musl libc(一种C标准函数库)和Busybox(一个遵循GPL协议、以自由软件形式发行的应用程序)来减小系统的体积和运行时的资源消耗,但功能比Busybox更为完善。Alpine的Docker镜像容量很小,只有5 MB左右,而Ubuntu镜像则接近200 MB。因此使用Alpine来搭建LNMP环境非常方便。
图1-2 Alpine操作系统的Logo
Alpine PHP环境特性如下:
● 目前集成PHP、Nginx、Redis、MySQL。
● Alpine包比Ubuntu、Centos包体积小。
● 配置任意版本,包括Nginx、MySQL、Redis、PHP。
● 自由切换htdocs目录。
Alpine PHP环境的安装运行,需要在本机安装Docker和docker-compose,其下载地址为:https://docs.docker.com/engine/installation/。
安装完毕后,下载文件包,下载地址为https://github.com/spetacular/php-alpine/archive/master.zip。
解压后进入目录执行build。如果下次启动时没更改Dockerfile,就不需要再次build。只更改docker-compose.yml不需要重新build。
docker-compose build
执行如下命令即可启动:
docker-compose up
这时可以访问http://localhost:8080来访问环境。
docker-compose.yml字段说明如表1-3所示。
表1-3 docker-compose.yml字段说明
另外使用时注意以下事项:
由于代码跑在Docker里,所以localhost和127.0.0.1不再可用。如需要连接Redis和MySQL,应使用如下地址:
redis-server mysql-server
“工欲善其事,必先利其器”。选择合适的文本编辑器,能够起到事半功倍的效果。本节我们介绍几种常见的文本编辑器及其配置方法。
Visual Studio Code是微软公司开发的一款开源的文本编辑器,它包含了编辑、构建、调试的全周期所需要的功能,支持大部分主流的开发语言。它提供了丰富的插件库,读者可以根据需要加以安装和应用。Visual Studio Code提供了Windows、Linux、Mac系统下的版本,读者可以从官网地址直接下载和安装(https://code.visualstudio.com/)。
安装的方式分为全局安装和工作区安装。前者对所有的项目都适用,后者仅对当前工作区生效。
打开首选项→设置,单击右上角的“{ }”符号,打开用户设置页面,如图1-3所示。
图1-3 用户设置页面
如果用户设置为空,则直接复制如下代码即可:
(源码文件:gists/ch01/vscode_php_launch.json)
如果已有用户设置,则只需将launch字段补充上去即可,例如:
(源码文件:gists/ch01/vscode_add_php_launch.json)
注意将path/to/php按照表1-1进行替换。
首先安装php debug插件。在Visual Studio Code左侧边栏切换到“扩展(Extensions)”页面,输入“php debug”,即可找到该插件,如图1-4所示。
切换到调试面板,在调试工具栏的下拉菜单里选择“添加配置”,如图1-5所示。
图1-4 输入“php debug”
图1-5 添加配置
文件内容如下:
(源码文件:gists/ch01/vscode_php_launch.json)
配置完成后,可以在调试面板里运行。如图1-6所示,首先选择“Run using local PHP Interpreter”的运行配置,然后单击绿色的三角即可运行当前打开的文件。可以看到,在右下角的控制台上输出了程序执行的结果。
图1-6 程序执行结果
Sublime是一款很受开发者欢迎的文本编辑器,它提供了丰富的配置选项和插件,支持大部分主流的开发语言。可以从官网地址(https://www.sublimetext.com/)下载Sublime。
在顶部菜单依次选择Tools → Build System→New Build System,这时会打开构建配置文件,如图1-7所示。
图1-7 打开构建配置文件
在打开的文件里,将内容替换为如下所示:
(源码文件:gists/ch01/sublime_php_launch.json)
其中cmd的第一个参数为PHP解释器的路径,例如Windows平台为C:\\php\\php.exe,Mac平台为/usr/bin/php。
编辑完成后,将配置保存为php.sublime-build的文件,Windows平台使用Ctrl+B组合键,Mac平台使用COMMAND+B组合键来运行代码。