如何让Visual Studio开发服务器与PHP一起使用?

Sha*_*ica 5 php asp.net iis visual-studio-2010

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

但是......当我使用VS开发服务器调试我的应用程序时,显然仍然不知道如何应对PHP:我得到了与IIS相同的HTTP 405(方法不允许)错误在前面提到的gargoyle呼吸它的最后一个("用于访问路径的HTTP动词POST'/php/blah.php'是不允许的.").

那么,你需要做些什么来让VS Dev服务器与PHP一起玩呢?

Dav*_*oll 5

我的PHP调试设置

我是一名.NET开发人员,过去几个月一直在PHP池中游泳.

由VS.NET IDE,调试器和强类型平台破坏,我决心创建一个非常类似于我的.NET调试体验的PHP开发环境.

注意:在IIS中为新的PHP应用程序设置PHP调试可能很容易.但是,下面列出的步骤打破了一些非常复杂的步骤,因为我发现需要在WordPress和Joomla中进行调试.如果您没有运气调试工作,请按照这些步骤操作.

免责声明: 完成此设置的完整步骤非常复杂.我特意把这个放在一起,希望它能帮助那些需要建立一个专业的开发环境,而基于Linux的系统背景很少.

这些步骤无法保证正常工作,并且可能对环境设置非常敏感.我花了很多时间经历了反复试验,直到我开始工作.

在此过程中,我必须赞扬您应该检查的一些优秀的在线资源,以便开始使用.这些不涉及调试或开发设置.我将在下面提供详细信息.

分步指南:在Windows上安装XAMPP和WordPress

由于我刚刚在这里发帖,我不能添加多个链接.只需谷歌以下参考资料: - Google:sixrevisions教程网页开发 - 教程使用-xampp-for-local-wordpress-theme-development

保护您的XAMPP安装

  • 谷歌:robsnotebook xampp-builtin-security

开发设置

WAMP Stack vs IIS for PHP:

首先,我没有使用IIS来托管我的PHP应用程序.我希望将这些Web服务器分开,并使用其中一个可用的WAMP堆栈进行开发.这使我能够管理和研究将在Apache和Linux上使用的配置设置.如果我将PHP应用程序部署到Windows主机,我会选择IIS设置.同样,这是基于使用Linux主机创建类似配置环境的选择.

什么是WAMP堆栈?

对于那些不熟悉的人,WAMP Stack代表在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(点)apachefriends(点)组织(/)下载(php)?xampp-win32-1.7.3.exe

安装XDebug进行PHP调试

这适用于使用Apache或IIS在WAMP上安装PHP.选择正确版本的dll并不是直截了当的.

首先,去:

  • 谷歌:xdebug组织下载(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.
Run Code Online (Sandbox Code Playgroud)

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.
    
    Run Code Online (Sandbox Code Playgroud)

    xdebug.trace_output_dir ="P:[完全合格的路径]\xampp\tmp";

    ; ************ ;需要IDE支持; ************

    xdebug.idekey ="vsphp";

    ;This value can be arbitrary or may require something specific for your IDE.
    
    Run Code Online (Sandbox Code Playgroud)

    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设置在私有Web服务器中启动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]进行调试.php-cgi.exe是在Windows上运行php.exe所必需的.

我希望这可以帮助您开始将IDE连接到Web服务器,设置断点,并通过逐行调试做很多事情.


Not*_*tMe 2

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