Preparation:
- Homebrew should be installed
- Valet should be installed and running: https://laravel.com/docs/7.x/valet
- Browser extension for PHPSTORM should be installed: https://www.jetbrains.com/help/phpstorm/browser-debugging-extensions.html
gerry@webgarten ~ % brew install pecl gerry@webgarten ~ % pecl install xdebug In case of error message: Warning: mkdir(): File exists in System.php on line 294 PHP Warning: mkdir(): File exists in /usr/local/Cellar/php/7.4.7/share/php/pear/System.php on line 294 Warning: mkdir(): File exists in /usr/local/Cellar/php/7.4.7/share/php/pear/System.php on line 294 ERROR: failed to mkdir /usr/local/Cellar/php/7.4.7/pecl/20190902 Remedy: gerry@webgarten ~ % mkdir -p /usr/local/lib/php/pecl gerry@webgarten ~ % pecl install xdebug Installing '/usr/local/Cellar/php/7.4.7/pecl/20190902/xdebug.so' install ok: channel://pecl.php.net/xdebug-2.9.6 Extension xdebug enabled in php.ini gerry@webgarten ~ % valet restart gerry@webgarten ~ % php -m | grep xdebug [nothing found] Remedy: Add to PHP.ini, first find PHP.ini: gerry@webgarten ~ % php --ini configuration File (php.ini) Path: /usr/local/etc/php/7.4 Loaded Configuration File: /usr/local/etc/php/7.4/php.ini Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d Additional .ini files parsed: /usr/local/etc/php/7.4/conf.d/ext-opcache.ini, /usr/local/etc/php/7.4/conf.d/php-memory-limits.ini gerry@webgarten ~ % subl /usr/local/etc/php/7.4/php.ini We use Sublime, any other text editor will do. Insert in PHP.ini: zend_extension="xdebug.so" xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_autostart=1 Execution time can be adjusted in php.ini to prevent early timeouts (504) from Nginx during debugging: max_execution_time = [number_in_seconds] e.g. 1800 Save php.ini and go: gerry@webgarten ~ % valet restart Happy debugging!