虽然我现在意识到让Eclipse停止在断点处的诀窍是,当PHP脚本从POST和GET请求中执行ajax/curl时,要确保XDEBUG_START_SESSION
变量在您希望调试器的所有请求中设置要知道,这似乎只适用于Web服务器上的所有路径都是正常的相对类型。但是,如果您碰巧在Web服务器上存在一些别名路径(例如通过httpd Alias指令),则XDebug无法将工作空间中的文件路径与站点URL中的路径相关联。在XDebug for Eclipse中,远程路径如何映射到本地路径?
我有以下的目录设置:
这里的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
?
我难倒了PHP社区? :-)当然,有人能够在整个PHP应用程序中设置断点,喜欢将curl/ajax遍布整个地方并使用别名web服务器路径。 – 2015-01-23 17:12:00