Zend 服务器
Zend Server与 PhpStorm 无缝集成,提供用于调试和分析 Web 应用程序的高级功能。
Zend Server 是一个用于移动和 Web 应用程序的集成平台,可在应用程序生命周期的所有阶段提供帮助。Zend Server 包括 Z-Ray,它通过实时显示构建每个页面的确切情况,在应用程序内部提供前所未有的上下文可见性。它可以帮助开发人员编写更好的代码,更早地检测和修复问题,并与运营人员协作以更快地解决生产问题。
在本教程中,我们将研究如何配置集成并继续调试、分析或部署您的代码,以及使用 PhpStorm 的许多内置工具,而 Zend Server 负责您的 PHP 环境。
以下视频将引导您开始使用 Zend Server:
要了解有关 Zend Server 配置和使用的更多信息,请参阅Zend Server 文档。
入门
安装 Zend Server 有两种主要方式:在本地,通过从Zend 的网站下载应用程序,或者通过在云中运行它(例如,在一个特殊的 Amazon Web Services 实例中)。
在本地(或在远程服务器上)安装 Zend Server
注册一个 Zend 帐户并从Zend 的网站为您的操作系统下载 Zend Server 应用程序。根据 PHP 解释器版本的不同,有几个版本可用。
按照安装向导的步骤完成安装。
在云中使用 Zend Server (AWS)
AWS 市场中还提供不同版本的 Zend Server。借助在 Amazon Web Services 上运行的 Zend Server,您可以在云中运行基于 PHP 的高性能、弹性和可靠的 Web 和移动应用程序。
Zend Server 软件提供 30 天试用,但 AWS 对实例收费。如果您以前从未使用过 AWS,您可能有资格通过 AWS 免费套餐计划(仅限新云用户)免费使用一整年的 EC2。
您可以选择实例的参数(例如 VM 的配置、区域、安全设置)并生成新的密钥对来访问实例。查看所有设置并继续进行 AWS 实例配置。
该过程完成后,进入 AWS 控制台管理安装了 Zend Server 的新创建的实例。
启动 Zend 服务器
Zend Server 安装并运行后,通过http://localhost:10081/ZendServer或https://localhost:10082/ZendServer链接打开它(将localhost替换为您正在使用的主机名。如果您正在使用一个 AWS 实例,地址将类似于http://ec2-54-195-230-127.eu-west-1.compute.amazonaws.com:10081/)。
在下一步中,您将被要求阅读并接受许可协议,并配置一些初始参数:
配置文件(开发/生产 - 单服务器/生产 - 创建或加入集群) - 开发配置文件适合大多数开发环境
集群配置(如果您在上一步中选择了集群)
密码
要部署的标准库包
配置完成并成功登录后,会出现 Zend Server Guide Page:
出于教育目的,我们将从 Zend Server Guide Page 部署一个演示应用程序。要了解如何准备您自己的应用程序并将其部署到 Zend Server,请参阅使用 ZPK 包部署到 Zend Server部分。演示应用程序是 Zend Framework 2 框架应用程序,其中包括定制的监视和缓存规则、事件、重复作业和统计数据。
我们将在下面使用 Zend Server 的本地版本,但所有操作和工作流程也适用于远程 AWS 或独立安装(在适用的情况下提供了其他配置说明)。
部署演示应用程序
单击Zend 服务器指南页面上的示例应用程序按钮。
输入应用程序名称、路径和虚拟主机。
检查应用程序先决条件是否得到验证。
查看部署摘要并单击部署以继续部署。
部署过程完成后,您将被带到 Zend Server 的应用程序列表:
在这里,您可以轻松检查有关已部署应用程序的信息、检查状态、进行监控以及执行其他操作。
我们建议您先熟悉 Zend Server,然后再继续下一步。Zend Server Getting Started Guide提供了一个很好的起点。
使用 Z-Ray 和 PhpStorm 进行调试
Z-Ray是一个浏览器工具窗口,它显示页面请求的所有底层细节,包括构建页面所涉及的所有 PHP 脚本。Z-Ray 被注入到来自您的 PHP 应用程序的响应中,并直接显示在您用于开发的浏览器中,因此您可以在不更改开发工作流程的情况下获得更深入的了解。
用于远程调试的 SSH 隧道配置
如果您使用 AWS 或 Zend Server 的任何其他独立远程安装,则需要进行一些配置以防止您的防火墙阻止调试器通信。
要运行远程会话,请为调试端口(默认为10137 )设置 SSH 隧道。如果您运行的是 Linux 或 macOS,请从运行 PhpStorm 的本地终端运行以下命令:
如果您运行的是 Windows,请执行以下操作:
下载腻子
通过运行puttygen.exe、加载PEM文件并将私钥保存为 PuTTY 的密钥格式,将PEM文件转换为PPK文件
运行以下命令来设置隧道:
其中:10137是调试端口(可以在 PhpStorm 和 Zend Server 中更改,请参阅附加配置部分)remote-host.compute.amazonaws.com
是安装 Zend Server 的远程主机名ZS.pem
是授权密钥(由 AWS 或其他权威机构生成的证书,请参阅本文了解详细信息)ubuntu
是远程主机上的用户名 根据您的本地权限,您可能需要从超级用户执行终端命令(使用sudo
.
每次启动调试/分析会话之前,都应建立 SSH 隧道。在以下情况下不需要:
如果 Zend Server 和 PhpStorm 在同一台机器上运行。
如果 Zend Server 和 PhpStorm 之间有直接链接并且没有配置防火墙。
调试 Zend 应用程序
在 PhpStorm 中,通过单击工具栏或选择调试工具窗口。在启动脚本之前,请确保设置了断点,或者在Settings/Preferences对话框的Debug页面上启用了Break at first line in PHP scripts选项。Ctrl+Alt+S
在主菜单中 这将确保 PhpStorm 在启动调试会话时做出反应并自动打开通过单击要中断的行附近的编辑器装订线,在代码中设置断点。
在启用 Z-Ray 栏的情况下打开在 Zend Server 上运行的应用程序,单击Debug图标并选择Debug Current Page。
在 PhpStorm 中接受来自 Zend Debugger 的传入连接。
PhpStorm 将在断点处中断(如果启用该选项,则为第一行),为您提供在 IDE 中调试应用程序的工作流。
使用 Z-Ray 和 PhpStorm 进行分析
远程调试的所有注释和附加配置也适用于此处。
分析您的 Zend 应用程序
在 PhpStorm 中,通过单击工具栏或选择调试工具窗口。在启动脚本之前,请确保设置了断点,或者在Settings/Preferences对话框的Debug页面上启用了Break at first line in PHP scripts选项。Ctrl+Alt+S
在主菜单中 这将确保 PhpStorm 在启动调试会话时做出反应并自动打开在启用 Z-Ray 栏的情况下打开在 Zend Server 上运行的应用程序,单击Debug图标并选择Profile Current Page。
应用程序配置文件快照将在 PhpStorm 中打开。
确保选择服务器以利用上下文菜单操作,例如跳转到源、快速定义、快速文档(有关服务器配置的更多信息,请参见附加配置部分)。您可能需要在 Settings / Preferences | 中为您的项目设置映射。PHP | 服务器。当服务器处理的文件的路径与项目中文件的路径不同时,您需要使用路径映射。为父目录指定的路径映射会自动应用于其所有子目录。如有必要,您可以单独为任何子目录甚至单个文件指定路径映射。
从事件列表/单个事件中使用 Zend Server 和 PhpStorm 进行调试和分析
Zend Server 正在跟踪您的应用程序发生的所有事情。
提供的监控事件列表。 。可以从具有相关操作(IDE 中的调试、IDE中的配置文件或 IDE 中的显示)的事件列表启动调试/分析会话。在从 Zend 服务器端启动调试/分析会话之前,请确保 IDE 正在侦听调试连接(有关详细信息,请参阅使用 Z-Ray 进行调试和使用 Z-Ray进行分析)。
使用 ZPK 包部署到 Zend Server
PhpStorm 中没有用于 Zend Server 部署的 GUI,但它仍然允许您准备ZPK部署包。这可以通过使用终端或通过命令行工具集成来完成。
我们将关注第二个选项,因为它方便地为命令行工具命令和参数提供了补全选项。
准备好ZPK包后,我们将把它部署到 Zend Server。
为 Zend Server 部署工具创建命令行工具
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到 。
单击,从列表中选择自定义工具,然后设置工具可见性(项目或全局)。
设置工具的路径(在我们的例子中是/usr/local/zend/bin/zdpack;对于特定于操作系统的路径,请参阅Zend Server 文档)和别名。
应用更改并单击以在编辑器中打开工具定义。
在自定义命令行定义目录中找到Zend Server 的部署工具 (zdpack)存储库的链接,并将整个 XML 从存储库复制到打开的编辑器选项卡。
您现在可以通过选择zdpack命令行工具。在主菜单中 Ctrl+Shift+X或按。
在 PhpStorm 中准备部署包
选择一个目录并使用
create
命令准备ZPK包的骨架。这包括XML描述符文件、数据文件夹和挂钩脚本:zdpack 创建应用程序名称验证资源是否已在指定目录中创建:
数据文件夹 - 将包含您的应用程序文件的文件夹。
Scripts文件夹 - 可供您根据需要编辑的挂钩脚本框架,以及现有的监控和缓存规则。
deployment.xml文件 -供您根据需要编辑的XML描述符模板。
执行以下操作:
将您的应用程序文件放在数据文件夹中。根据您的需要编辑挂钩脚本。
根据需要编辑deployment.xml。XML模板由示例元素组成。必需的元素是
name
、version
和appdir
。使用
validate
命令验证包
zdpack 验证 package-xml-descriptor-file使用 pack 命令将内容打包到ZPK包中。默认情况下,部署工具将在工作目录中创建包。
zdpack 包应用程序名称在我们的例子中,要准备部署测试应用程序,我们需要运行以下命令:
zdpack create drupal8a zdpack validate drupal8a/deployment.xml zdpack pack drupal8a这样就在我们项目的根文件夹中生成了drupal8a.zpk 。
将包部署到 Zend Server
打开部署应用程序。
并单击从文件系统中选择ZPK包并按照部署步骤进行操作。接受许可协议、验证先决条件并提供所需参数。
使用 PhpStorm 在 Zend Server 上处理数据库
Zend Server 集成了各种数据库(默认为 MySQL),这对于开发目的来说非常方便。PhpStorm 带有数据库和 SQL 支持。确保将 IDE 连接到 Zend Server 的开发实例以利用这些工具。
附加配置(可选)
配置与 Zend Server 的集成
Autodetect IDE 设置选项在此处更改调试端口:
下配置 Zend Server IDE 集成参数。 ,尽管这通常是可选的。例如,可以通过触发请注意,调试端口必须设置为与 PhpStorm 中相同的值。如果需要,可以在调试端口和设置广播端口。设置/首选项对话框的 页面。Ctrl+Alt+S
上的 PhpStorm 中更改如果您在 PhpStorm 中多次调用调试器时遇到 Z-Ray 系统请求问题,请确保在忽略 Z-Ray 系统请求复选框。设置/首选项对话框的 页面。Ctrl+Alt+S
将 Zend Server 设置为 PhpStorm 中的服务器
一旦在 Zend Server 和 PhpStorm 之间建立了调试或分析会话,Zend Server 将作为 PHP 服务器添加到 PhpStorm 配置中。如有必要,您可以修改其设置设置/首选项对话框的 页面Ctrl+Alt+S。
该服务器可以在以后用于配置运行配置。
在 PhpStorm 中配置 PHP 解释器
使用与 Zend Server 捆绑在一起的 PHP 解释器提供了安装在类生产环境中的 PHP 解释器的优势。这样,我们可以确保将应用程序部署到生产环境时不会出现不一致。
例如,您可以使用 PHP 解释器使用 PHPUnit或Behat进行测试,或者使用PHP 代码质量工具分析您的代码。
可以在“设置/首选项”对话框 ( ) 的 页面上设置解释器。有关详细信息,请参阅配置本地 PHP 解释器。Ctrl+Alt+S
使用 PhpStorm 中的 ZF Tool 命令行工具
将 zftool 配置为命令行工具
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到 。
单击工具栏上的 。
在Command Line Tools对话框中,从列表中选择 Zend Framework 1 Tool或Zend Framework 2 Tool,并指定其可见性级别(Project或Global)。
当您单击OK时,Zend Framework Tool对话框打开。
根据使用的 Zend Framework 版本提供 ZF 工具的路径,并从PHP 解释器列表中选择一种配置的 PHP 解释器。有关详细信息,请参阅配置本地 PHP 解释器和配置远程 PHP 解释器。
<Zend-Framework-home>/zf用于Zend Framework 1。
<Zend-Framework-home>/zf.php或<Zend-Framework-home>/zftool.phar用于Zend Framework 2。
单击确定应用更改并返回命令行工具支持页面。或者,单击以编辑工具属性或自定义命令集。有关详细信息,请参阅自定义工具。
运行 zftool 命令
从主菜单中,选择
或按Ctrl两次。在打开的“运行任何内容”窗口中,以
<zf> <command>
or<zf2> <command>
格式键入命令的调用。命令执行结果显示在运行工具窗口中。
终止命令
单击运行工具窗口工具栏。