是否可以将Visual Studio设置为远程调试virtualbox上基于php的站点?
我的设置: 一台运行Visual Studio 2013 pro和Oracle Virtualbox的机器:Mint 17、Apache 2、PHP5、Mysql。 我已经使用samba网络映射了我的主目录。该项目位于我的主目录之外的一个公共html文件夹中。之所以要求进行此设置,是因为我们是在windows环境下开发的,但该站点托管在ubuntu服务器上 网站: 这是一个使用codeigniter框架的PHP网站,其中包括将生成的页面传递到PhantomJS中,以创建页面的屏幕截图,并将其传递到站点生成的pdf文件中,作为用户的报告 问题: 我可以从/var/www和{ip}/~userDir在Mint vbox上运行该站点。然而,有一些问题困扰着我,我希望能够使用PHP工具来实现VisualStudio(Devsense)中断PHP本身并读取对象的当前状态的功能。当我尝试使用VS(我认为VS附带的iis express服务器)时,我可以在断点处进入代码,轻松查看对象的状态。然而,唯一拒绝工作的是PhantomJS(尽管只有VS IIS)。在指示灯上运行相同的过程效果很好。(即) 我“假设”这个障碍介于iis设置(我一点都不精通)和如何从windows使用linux共享之间。我在进入是否可以将Visual Studio设置为远程调试virtualbox上基于php的站点?,php,visual-studio-2013,virtualbox,lamp,linux-mint,Php,Visual Studio 2013,Virtualbox,Lamp,Linux Mint,我的设置: 一台运行Visual Studio 2013 pro和Oracle Virtualbox的机器:Mint 17、Apache 2、PHP5、Mysql。 我已经使用samba网络映射了我的主目录。该项目位于我的主目录之外的一个公共html文件夹中。之所以要求进行此设置,是因为我们是在windows环境下开发的,但该站点托管在ubuntu服务器上 网站: 这是一个使用codeigniter框架的PHP网站,其中包括将生成的页面传递到PhantomJS中,以创建页面的屏幕截图,并将其传递
exec()
之前使用的escapeshellcmd($exec)
命令在VS中呈现的路径与在LAMP服务器上呈现的路径不同。我从$output=exec($escaped\u command,$outArray,$rtnVal)
甚至$someError=error\u get\u last()
中根本没有得到任何响应(读作:在执行行后步进并读取每个变量的状态)
问题:
是否有人将VS设置为使用虚拟Linux服务器使用breakponts测试php?我是否可以设置VS,使其使用LAMP中的php引擎而不是自己的引擎
我知道在服务器区域的“项目选项”选项卡中,您可以“使用自定义Web服务器”,但当我将Virtualbox的IP放在该位置时,我会得到“无效的URI:无法解析主机名”。我知道服务器在那里,当我将相同的URL放入浏览器时,会出现欢迎页面
感谢您抽出时间阅读本文以及您可能获得的任何帮助。是的,有一种调试外部虚拟机环境的方法,这就是我使用Visual Studio和Xdebug扩展来完成此任务的方法 以下是步骤
xdebug\u on
命令中使用SSH这是使用此机器的默认/“开箱即用”设置,因此您可能需要调整这些值。希望这能有所帮助。我根本不知道Visual Studio对PHP有任何语言支持。活得多好啊!我真的很想知道为什么你在mint box上使用我见过的最复杂的解决方案之一,而不是像你现在使用的那样在mint box上使用Apache和虚拟网络,完全抛弃IIS,在mint安装上使用本机IDE而不是VS和IIS?(编辑:漏掉了一个字)@Brad Yep和你得到的IntelliSense插件、完整的php手册(鼠标悬停)以及其他好东西。@Thom你知道PHPStorm吗?流浪汉。。。而puphpet.com@iamgory问题的重点是不要使用IIS,而是使用铸币盒上的Apache2。至于剩下的,我真的很喜欢VS,从来没有遇到过问题。我们的团队在Windows环境下开发,但我们的网站都是基于Linux的。这对我来说是新鲜事。
$src = "var page = require('webpage').create(); page.viewportSize = { width: {$wi} , height: {$hi}};";
if (isset($clipw) && isset($cliph)) {
$src .= "page.clipRect = { top: 0, left: 0, width: {$clipw}, height: {$cliph} };";
}
$src .= "page.open('{$url}', function () {
page.evaluate(function() {
document.body.bgColor = 'white';
});
page.render('{$cache_job}');
phantom.exit();
});
page.onError = function (msg, trace) {
console.log(msg);
trace.forEach(function(item) {
console.log(' ', item.file, ':', item.line);
})
}";
$job_file = $jobs . $url_segs['host'] . crc32($src) . '.js';
file_put_contents($job_file, $src);
$exec = $bin_files . 'phantomjs ' . $job_file;
$escaped_command = escapeshellcmd($exec);
$output = exec($escaped_command, $outArray, $rtnVal );
$someError = error_get_last();