環境
- emacs 25.2
- laradock環境
Xdebug
- PHPをステップ実行したりブレーク貼ったりできる
有効化
- laradockではフラグひとつでxdebugが入る
laradock/.env
...
WORKSPACE_INSTALL_XDEBUG=true
...
PHP_FPM_INSTALL_XDEBUG=true
...
設定
- laradock/workspace/xdebug.ini
- laradock/php-fpm/xdebug.ini
xdebug.remote_host=host.docker.internal
#xdebug.remote_connect_back=1
xdebug.remote_connect_back=0
#xdebug.remote_port=9000
xdebug.remote_port=9001
#xdebug.idekey=PHPSTORM
#xdebug.remote_autostart=0
xdebug.remote_autostart=1
#xdebug.remote_enable=0
xdebug.remote_enable=1
#xdebug.cli_color=0
xdebug.cli_color=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
-
php-fpmコンテナ-nginxコンテナ間の疎通に9000番ポートを使うので、
他のポートを使用する- 今回は9001
-
host.docker.internal
でコンテナ内からホストにアクセスできる - 変更を反映
docker-compose build workspace php-fpm
docker-compose up -d workspace php-fpm nginx
- (storybookで既にホストの9001番を使ってて詰まるなどした)
-
ポートを変えるたびにリビルドするのは効率悪い。
- entrykitを使って環境変数で変えられるようにすると良さそう:
xdebug.ini.tmpl
...
xdebug.remote_port={{ var "XDEBUG_PORT" | "9000" }}
...
geben
-
- emacsのXdebugクライアント
導入
M-x package-install geben
つかう
- デフォルト設定では9000番ポートが使われる
- 今回は9001番を使うので設定が必要:
(setq geben-dbgp-default-port 9001)
M-x geben
http://localhost
にアクセスするとステップ実行が始まる!