Updated: 18 July 2021
Reset to original state
./vagrant destroy --force && ./vagrant up
.vscode/launch.json
{ "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003, "log": true, "pathMappings": { "/home/vagrant/homestead.test": "/home/chris/code/homestead.test" } } ] }
Start an ssh session
./vagrant ssh
Create the xdebug log file
sudo touch /var/log/xdebug.log && sudo chmod 777 /var/log/xdebug.log
Create xdebug settings
sudo nano /etc/php/7.4/fpm/conf.d/20-xdebug.ini
zend_extension=xdebug.so xdebug.mode = debug xdebug.discover_client_host = true xdebug.client_host = 192.168.10.1 xdebug.client_port = 9003 xdebug.max_nesting_level = 512 ; required for cli debugging but for browser ; could omit and use query string at end ; of url instead XDEBUG_SESSION_START=name xdebug.start_with_request = yes ; ensure file exists and is writeable xdebug.log = /var/log/xdebug.log
Switch to cli PHP 7.4
php74
For cli debugging (alias xon=’sudo phpenmod -s cli xdebug’)
xon
After these changes
./vagrant reload --provision
Run phpspec
./vagrant ssh tail -f /var/log/xdebug.log project/dir vendor/bin/phpspec run
If vscode will not stop on a breakpoint try re-enabling PHP Debug extension and restarting vscode.
Run ngrok (outside of Homestead) pointing at a configured Homestead site
ngrok http 192.168.10.10:80 -host-header=site.dev