【问题标题】:How to get Visual Studio Development Server to work with PHP?如何让 Visual Studio 开发服务器与 PHP 一起工作?
【发布时间】:2011-01-26 17:44:59
【问题描述】:

我是一名 .NET 专家,与 PHP/Flash 程序员合作通过 IIS 交付应用程序。在经历了 17 圈火圈并在一场可怕的战斗中击败了石像鬼后,我设法让我的 IIS 7.5 服务器与 PHP 配合,现在如果你浏览我的公共网站,你可以愉快地看到 Flash 对象用 PHP 做他们的幕后工作,不管是什么。

但是...当我使用 VS 开发服务器调试我的应用程序时,它显然仍然不知道如何处理 PHP:我遇到了与我相同的 HTTP 405(不允许的方法)错误在上述 gargoyle 呼吸到最后一口气之前进入 IIS(“不允许用于访问路径 '/php/blah.php' 的 HTTP 动词 POST。”)。

那么,你必须做些什么才能让 VS 开发服务器与 PHP 配合得很好?

【问题讨论】:

  • 我觉得公主可能在别的城堡里……

标签: php asp.net visual-studio-2010 iis


【解决方案1】:

我的 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 org 下载 (php)

并查看可用的各种版本。 这些版本解析起来不是很直观。请按照本指南了解它: 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 开发:

  • phpDesigner7

    • 谷歌:mpsoftware phpDesigner
  • VS.PHP(VS.NET 2010 的 PHP 插件)。

    • 谷歌:jcxsoftware vsphp

我想在 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 服务器、设置断点以及进行大量的逐行调试。

【讨论】:

  • TMI 对我来说 - 但 +1 是为了写它的努力! ;)
  • 感谢您的 +1 :)... 这实际上是我本地笔记的缩写。在设置 XAMPP 时,我遵循了几个长达 6 页的在线参考资料。但是,缺少使用 XAMPP 进行调试的设置指南。希望这能帮助一些需要这些信息的可怜人。
【解决方案2】:

您将无法使 Visual Studio Development Server 为 PHP 工作。但是,您可以轻松使用 IIS Express (http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx),它不仅可以为您提供 PHP,还可以安装 WinCache、URL重写和其他对 PHP 开发非常重要的功能。
另外,请注意,Classic ASP 等其他平台也受支持,而在 Cassini 中则不支持。

【讨论】:

    【解决方案3】:

    一种选择是不运行 cassini,而是在您的开发盒上安装 IIS 并通过那里运行所有内容。

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多