2015-01-21 95 views
0

虽然我现在意识到让Eclipse停止在断点处的诀窍是,当PHP脚本从POST和GET请求中执行ajax/curl时,要确保XDEBUG_START_SESSION变量在您希望调试器的所有请求中设置要知道,这似乎只适用于Web服务器上的所有路径都是正常的相对类型。但是,如果您碰巧在Web服务器上存在一些别名路径(例如通过httpd Alias指令),则XDebug无法将工作空间中的文件路径与站点URL中的路径相关联。在XDebug for Eclipse中,远程路径如何映射到本地路径?

我有以下的目录设置:

Directory Setup

这里的Web服务器是如何设置:

ServerName test.local 
DocumentRoot "C:\Users\me\projects\testproject\start\here" 
Alias /post "C:\Users\me\projects\testproject\post" 

<Directory "C:\Users\me\projects\testproject"> 
    Require all granted 
</Directory> 

我认为这是路径映射选项卡是干什么用的,在发现Debug Configurations -> Server -> Configure... -> Path Mapping。在我看来,我被告知将Path on server设置为网络服务器上文件系统路径的目录或文件,并将Local path设置为文件系统或工作区中的路径。我也尝试将Path on server设置为我想要映射到Local path的站点URL路径,但这两个配置都不会导致在POST POST PHP脚本中出现问题。

我打开了XDebug的日志记录,比较正确停止的断点的消息,因为它位于调试器启动的文件中,并且脚本中的断点通过POST请求执行,这是不幸的不停止。如果/post路径与DocumentRoot上的邮政目录相对应,但它不会在该文件中停止,但是如果邮政目录位于其他位置并且站点URL中的“假”/post路径与别名不同,则该路径不会生效。

在我的XDebug log file中,index.php中有第28行的几个日志条目,它是正确拆分的文件。 message.php中的第3行也有一个条目,并且URL编码的路径看起来正确,但我没有看到相同类型的条目。

如何将Eclipse配置为知道服务器上的/post表示工作区中的/My Project/post

+0

我难倒了PHP社区? :-)当然,有人能够在整个PHP应用程序中设置断点,喜欢将curl/ajax遍布整个地方并使用别名web服务器路径。 – 2015-01-23 17:12:00

回答

0

噢,我的......这是简单的设置接受远程会话(JIT)为localhost,在我的情况,或者只是任何其他比off的问题:

Accept remote session

这是伟大的确认这确实起到了根本性的作用,但我仍然困惑于为什么它不在一个更复杂的项目中。幸运的是,我将有更多的分享...