Можно ли настроить Visual Studio для удаленной отладки php-сайта, размещенного в virtualbox?

Моя настройка:
Одна машина под управлением Visual Studio 2013 pro и Oracle Virtualbox: Mint 17, Apache 2, PHP5, Mysql.
Я сопоставил сеть с моим домашним каталогом, используя samba. Проект находится вне моего домашнего каталога, в папке public_html. Эта настройка была запрошена, потому что мы разрабатываем в среде Windows, но сайт размещен на сервере Ubuntu.

Сайт:
Это веб-сайт PHP, использующий платформу codeigniter, которая, помимо прочего, передает сгенерированную страницу в PhantomJS, чтобы создать снимок экрана с этой страницей, который передается в сгенерированный сайтом файл pdf в виде отчета для пользователя.

Эта проблема:
Я могу запустить сайт как есть на Mint vbox как из / var / www, так и из {ip} / ~ userDir. Однако некоторые проблемы мешают мне, что я хотел бы иметь возможность использовать инструменты PHP для способности Visual Studio (Devsense) прерывать сам php и читать текущее состояние объектов. Когда я пытаюсь использовать VS (сервер iis express, который поставляется с VS, я думаю), я могу войти в код в точке останова и легко просмотреть состояние моих объектов. Однако единственное, что отказывается работать, это PhantomJS (хотя только VS IIS). Запуск того же процесса на ЛАМПА работает просто отлично. (То есть)

$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();

Я предполагаю, что контрольно-пропускной пункт находится где-то между настройкой iis (в которой я совсем не разбираюсь) и тем, как я использую Linux-ресурс из Windows. escapeshellcmd($exec) Команда, которую я использую перед тем, как перейти в exec() отображает путь в VS иначе, чем на сервере LAMP. Я не получаю ответа (читай как: входить и читать состояния каждой переменной после выполнения строки) вообще от $output = exec($escaped_command, $outArray, $rtnVal ) или даже $someError = error_get_last(),

Вопрос:
Кто-нибудь настраивал VS для использования виртуального Linux-сервера для тестирования php с использованием breakponts? Могу ли я настроить VS так, чтобы он использовал движок php из ЛАМПЫ вместо собственного?

Я знаю, что на вкладке параметров проекта в области «Серверы» вы можете «Использовать пользовательский веб-сервер», но когда я помещаю IP-адрес Virtualbox в это место, я получаю «Неверный URI: имя хоста не может быть проанализировано». Я знаю, что сервер там, страница приветствия появляется, когда я вставляю тот же URL в браузер.

Спасибо, что нашли время, чтобы прочитать это и любую помощь, которую вы могли бы иметь.

2

Решение

Да, есть способ отладки среды внешней виртуальной машины, и я делаю это, используя PHP инструменты расширение для Visual Studio и Xdebug.

Вот следующие шаги.

  1. Убедитесь, что PHP Tools установлен в Visual Studio. Убедитесь, что Xdebug установлен и включен на вашей виртуальной машине. Я обычно SSH в и в xdebug_on команда работает.
  2. Убедитесь, что проект, над которым вы работаете, является проектом PHP в Visual Studio
  3. Правый клик в вашем файле проекта и перейдите в свойства.введите описание изображения здесь
  4. Перейдите на сервер и введите URL-адрес вашего сервера (каков ваш локальный URL-адрес домена)
  5. Установите свой порт xdebug, по умолчанию его обычно 9000 или 80.
  6. Введите ваш файл / каталог, который является вашим путем, сопоставленным с вашим локальным именем, например: C: / programfiles / www / wordpress-default / public_html
  7. Введите ваш абсолютный путь на сервере, например: / srv / www / wordpress-default / public_html
  8. Убедитесь, что у вас есть права администратора для запуска Visual Studio.
  9. Загрузите и установите Расширение Xdebug Helper для Chrome.
  10. Создать точку останова, запустить отладчик с помощью F5.
  11. Убедитесь, что Chrome Xdebug Helper запущен.введите описание изображения здесь

При этом используются настройки по умолчанию / «из коробки» для данного аппарата, поэтому вам может потребоваться настроить эти значения. Надеюсь это поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]