Следуя инструкциям Вот, и я застрял на самых глупых шагах ..
создайте простой файл test.php, поместите phpinfo (); заявление там,
затем скопируйте вывод и вставьте его в мастер установки XDebug.
Я создал файл test.php (с phpinfo();
как единственное утверждение), но я не могу запустить его …
Что я сделал:
Я установил XAMPP и запустил Apache на порт 8080. http://localhost:8080/
дает мне панель управления XAMPP, так что я знаю, что все в порядке
я имею "php.validate.executablePath": "C:/xampp/php/php.exe"
в моем settings.json
У меня есть задача task.json построить следующим образом
{
"version": "0.1.0",
"command": "php",
"args": [
"-S", "127.0.0.1:8080",
"-t", "${workspaceRoot}"]
}
но когда я пытаюсь запустить его, я получаю сообщение об ошибке
Failed to launch external program php -S 127.0.0.1:8080 -t ${workspaceRoot}.
spawn php ENOENT
Является ли весь мой подход (взятый из различных руководств в Интернете) каким-то образом неправильным или я что-то упустил? (Я разработчик MS с 20-летним стажем, но я ничего не знаю о php, поэтому извините, если это действительно глупый вопрос)
Итак, я решил обходной путь, чтобы хотя бы отобразить файл test.php.
Следовал инструкциям Вот, но единственный способ заставить работать несколько сайтов — использовать отдельные порты. Поэтому я добавил к C:\xampp\apache\conf\extra\httpd-vhosts.conf
:
<VirtualHost *:8080>
DocumentRoot "C:/xampp/htdocs/"ServerName localhost:8080
</VirtualHost><VirtualHost *:8081>
DocumentRoot "C:/mydir/myrootfolder/"ServerName localhost:8081
</VirtualHost>
и к C:\xampp\apache\conf\httpd.conf
, Я добавил
<Directory />
AllowOverride none
Require all granted
</Directory>
а также
Listen 8080
Listen 8081
мой test.php
файл был изменен на:
<?php
phpinfo();
?>
Я мог бы затем перейти к http://localhost:8081/test.php
и посмотреть вывод!
Я надеюсь, что это поможет кому-то еще, по крайней мере, на этой стадии процесса. Я буду обновлять, если есть что-то дополнительное в настройке PHP-отладка или же х-отладка сам.
Запустить в консоли php -i
или же php -i > phpinfo.txt
,
Скопируйте вывод содержимого или содержимого phpinfo.txt
в Xdebug Wizard
Загрузите файл .dll с этой страницы. И следуйте инструкциям.
добавить в php.ini
, например
[XDebug]
zend_extension = C:\xampp\php\ext\php_xdebug-2.4.1-5.6-vc11.dll
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=on
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"xdebug.remote_log ="C:\xampp\tmp\xdebug.log"
Перезагрузите сервер Apache. В браузере в phpinfo () вы видите раздел с настройкой Xdebug.
Иначе ты что-то не так.
В коде Visual Studio на панели gebug нажмите значок с шестеренкой и выберите php
,
созданный launch.json
,
В панели gebug выбрано Listen for Xdebug
, Запустите отладку.
Отметить точки останова в приложении. Перейдите и перезагрузите приложение в браузере.
Настройки для mysite.local/test.php
Создать папку «c: / [path-to-xampp] /htdocs/mysite.local» В этой папке создать файл test.php
<?php
phpinfo();
?>
Создать новый виртуальный хост
<VirtualHost *:80>
ServerName mysite.local
DocumentRoot "c:/[path-to-xampp]/htdocs/mysite.local"<Directory />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Allow from all
</Directory>
</VirtualHost>
В файле C:/windows/system32/drivers/etc/hosts
добавлять
127.0.0.1 mysite.local
Перезагрузите сервер Apache.
Перейдите ваше приложение в браузере: http://mysite.local