我的 PHP 调试设置
我是一名 .NET 开发人员,过去几个月一直在 PHP 池中游泳。
被 VS.NET IDE、调试器和强类型平台宠坏了,我决心创建一个与我的 .NET 调试体验非常相似的 PHP 开发环境。
注意:在 IIS 中为新的 PHP 应用程序设置 PHP 调试可能很容易。但是,下面列出的步骤分解了一些非常复杂的步骤,因为我发现在 WordPress 和 Joomla 中进行调试是必需的。仅当您无法进行调试时才执行这些步骤。
免责声明:
完成此设置的全套步骤非常复杂。我特地把它放在一起,希望它能帮助其他需要建立一个专业开发环境的人,但几乎没有基于 Linux 的系统背景。
这些步骤不能保证有效,并且可能对环境设置非常敏感。在完成这项工作之前,我花了很多时间进行反复试验。
在此过程中,我必须赞扬一些好的在线资源,您应该查看这些资源以开始使用。这些不涉及调试或开发设置。我将在下面提供详细信息。
分步指南:在 Windows 上安装 XAMPP 和 WordPress
由于我是新来这里发帖的,所以我不能添加多个链接。只需谷歌以下参考资料:
- Google:sixrevisions tutorials web-development-tutorials using-xampp-for-local-wordpress-theme-development
保护您的 XAMPP 安装
- Google:robnotebook xampp-builtin-security
开发设置
PHP 的 WAMP 堆栈与 IIS:
首先,我没有使用 IIS 来托管我的 PHP 应用程序。我想将这些 Web 服务器分开,并使用可用的 WAMP 堆栈之一进行开发。这使我能够管理和研究将在 Apache 和 Linux 上使用的配置设置。如果我将 PHP 应用程序部署到 Windows 主机,我会选择 IIS 设置。同样,这是基于使用 Linux 主机创建类似配置环境的选择。
什么是 WAMP 堆栈?
对于那些不熟悉的人,WAMP 堆栈代表在 Windows 上运行的 Apache、MySQL 和 PHP 的分发包。其他风格包括 LAMP(用于 Linux)、MAMP(用于 MAC)等。社区中有几种风格可以提供 WAMP Stacks 来使用。我最初发现 BitNami 很有趣。但是,我对用于管理堆栈中不同服务的控制面板不满意。
为 Windows 选择 XAMPP
最后,我使用了一个名为 XAMPP(跨平台 Apache、MySQL、PHP 和 PERL)的包。 XAMPP 中的第二个 P 提供了其他 WAMP 堆栈(WAMPServer、bitnami 和其他一些堆栈)所缺乏的 PERL 支持。我也喜欢 XAMPP,因为它似乎是一个更活跃的社区,而且堆栈对我来说非常稳定。 XAMPP 需要考虑的其他突出特性是支持托管 FTP 服务器、基于 apache 的邮件服务器。只需单击一个按钮即可轻松切换将 MySQL 和 Apachi 作为服务或本地运行应用程序运行的选项。
为开发设置 XAMPP
XAMPP 的设置很简单。我的经验是使用之前的 1.7.3 版本。他们刚刚发布了 1.7.4。前往:
- 谷歌:apachefriends xampp-windows
并向下滚动页面,直到看到安装链接。如果您想使用已经成熟了一段时间的版本,您仍然可以在以下链接中找到 1.7.3:
- 构建链接:www (dot) apachefriends (dot) org (/) 下载 (php) ?xampp-win32-1.7.3.exe
为 PHP 调试安装 XDebug
这适用于在带有 Apache 的 WAMP 或 IIS 上安装 PHP。选择此 dll 的正确版本并非易事。
首先,转到:
并查看可用的各种版本。
这些版本解析起来不是很直观。请按照本指南了解它:
XDebug名称细分:[php_xdebug-2.1.0-5.3-vc6.dll]
- XDebug version 2.1.0
- Compatible with PHP 5.3
- VC6: Use for Apache ver 1 or 2
- VC6 indicates compiled with legacy Visual Studio 6 Compiler
- VC9: Use for IIS
- VC9 indicates compiled with Visual Studio 2008.
- NTS (not listed in the name above) indicates Non Thread Safe.
- The version listed is thread safe.
PHP.ini 配置设置
注意:由于我没有在 IIS 上进行设置,我不确定要应用哪些特定设置。但是,这是整个网络的文档。
对于 WAMP/XAMPP:
-
找到 \php\php.ini 文件。
;zend_extension = "php\ext\php_xdebug.dll"
-
找到 [XDebug] 部分
[XDebug]
;常用设置
zend_extension = "P:[完全限定路径]\xampp\php\ext\php_xdebug-2.1.0-5.3-vc6.dll"
xdebug.profiler_enable = 1;
xdebug.profiler_output_dir = "P:[完全限定路径]\xampp\tmp"
xdebug.profiler_output_name = "xdebug_profile.%p";
xdebug.remote_enable = 1;
xdebug.remote_host = "127.0.0.1";
xdebug.remote_port = 9000;
;Make sure your IDE setup on port 9000. Some will default to 7870.
xdebug.trace_output_dir = "P:[完全限定路径]\xampp\tmp";
;************
;需要 IDE 支持
;************ p>
xdebug.idekey = "vsphp";
;This value can be arbitrary or may require something specific for your IDE.
xdebug.remote_autostart = 1;
xdebug.var_display_max_depth = 5;
使用 IDE 进行调试
我使用 2 个 IDE 进行 PHP 开发:
我想在 VS.NET 2010 中爱上 VS.PHP,但是,这并不是逐步调试的最佳体验。 phpDesigner7 在调试和访问局部变量、智能感知以及在调试期间使用运行的 eval 命令方面要好得多。 VS.PHP 已经接近伟大,但如果你没有耐心,你会感到沮丧。我仍然更喜欢它作为我选择的开发编辑器,即使对于 PHP。
不管 IDE 是什么,大多数 IDE 都提供内部调试支持,而无需我上面列出的任何额外步骤。但是,这些应用程序将使用 IDE 特定的 php.ini 设置在专用网络服务器中启动 php 应用程序。
我正在与 WordPress、Joomla 和 .NET 应用程序进行大量自定义集成。因此,我需要调试器为我的各种平台使用 php.ini 设置。为了调试这些平台,我将 IDE 配置为基本上在远程调试模式下运行。 IDE 和 Web 服务器在 XDebug 的帮助下协调运行时执行,充当代理并向 IDE 调试器提供必要的调试符号。
为调试配置 IDE
最后一步是配置您的 IDE,以便调试器可以连接到 Web 服务器。
要查找的 3 个设置如下:
- PHP-CGI: P:[完全限定路径]\xampp\php\php-cgi.exe
- PHP.INI: P:[完全限定路径]\xampp\php\php.ini
- 监听端口:9000
不同的 IDE 可能会以不同的方式标记这些设置并需要额外的设置。这些应该是最重要的寻找。
注意:使用 [php\php-cgi.exe],而不是 [php\php.exe] 进行调试。在 Windows 上运行 php.exe 需要 php-cgi.exe。
我希望这可以帮助您开始将 IDE 连接到 Web 服务器、设置断点以及进行大量的逐行调试。