我设置了Laravel Homestead。然后我配置了宅基地 xdebug.ini 和 PHPStorm 以使调试工作。
这是我家中的xdebug.ini
zend_extension=xdebug.so
xdebug.remote_autostart = on
xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.remote_port = 9000
xdebug.idekey = "vagrant"
要开始调试会话,我遵循的步骤是
这完美无缺。我的问题是当我进入宅基地命令行并且运行php artisan
命令时,我无法让它达到我的断点。
我尝试了什么
XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=server_name" php -dxdebug.remote_host="127.0.0.1" artisan mycommand
php -d xdebug.profiler_enable=On artisan mycommand
我还尝试设置xdebug.remote_autostart=On
然后sudo service php5-fpm restart
,但我的断点在PHPStorm中仍然没有被击中
答案 0 :(得分:24)
有两件事很重要:
remote_connect_back
无法在CLI情况下工作,因为当您在控制台中时Xdebug无法检测到远程IP 127.0.0.1
。相反,它通常具有类似10.0.2.2
的IP。要找到正确的IP,请查看您的Apache access.log
,以下对我有用:
php -dxdebug.remote_autostart=on -dxdebug.remote_connect_back=off
-dxdebug.remote_host=10.0.2.2 artisan
在您的虚拟机中执行export PHP_IDE_CONFIG="serverName=yourservername"
,其中yourservername
是您在屏幕截图中配置的" name"
使用IDE密钥和上面配置的服务器添加Php远程调试配置
并将您的IDE密钥和remote_host添加到VM的XDEBUG-CONFIG
export XDEBUG_CONFIG="idekey=artisan remote_host=10.0.2.2"
参考文献:http://randyfay.com/content/remote-command-line-debugging-phpstorm-phpdrupal-including-drush
答案 1 :(得分:12)
或者,如果一切都太复杂或不起作用 - 您可以使用
通过网址(路线)触发您的工匠命令RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]