Homestead にもまた Xdebug がデフォルトでインストールされるようになるのではないかと思います。それまでは、本記事とほぼ同様の手順で stable版をインストールすることができます。
1. はじめに
ふと気付くと、Homestead に入っている Ubuntu 16.04.3 LTS の php
コマンドのバージョンが 7.2 になっていました。
vagrant@homestead:~$ php -v
PHP 7.2.0-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 30 2017 13:58:33) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.2.0-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies
with blackfire v1.18.0~linux-x64-non_zts72, https://blackfire.io, by SensioLabs
ログを見てみると、12月1日にシンボリックリンクが変更されたようです。
vagrant@homestead:~$ grep php7.2 /var/log/alternatives.log.1
update-alternatives 2017-12-01 00:52:20: run with --install /usr/bin/php php /usr/bin/php7.2 72 --slave /usr/share/man/man1/php.1.gz php.1.gz /usr/share/man/man1/php7.2.1.gz
update-alternatives 2017-12-01 00:52:20: link group php updated to point to /usr/bin/php7.2
update-alternatives 2017-12-01 00:54:27: run with --set php /usr/bin/php7.2
おそらく、Homestead のバージョンを上げたときに、Ubuntu の環境が更新されていたのでしょう。
以下のページを見ると、最新の Homestead v7.0.1 では、デフォルトのPHPバージョンが 7.2 になったと書いてあります。
ここでちょっとした問題があります。
Xdebug(stable版)が PHP 7.2 にまだ対応していないのです。
そのせいか、Homestead v7.0.1 では、Xdebug を自分でインストールする必要があります。
(以前は Homestead の環境をセットアップすると、Xdebug がインストールされた状態になっていました。)
といっても、必要な作業はそれ程難しくはありません。以下に説明します。
2. Xdebug の導入手順
まず、Homestead 環境に ssh接続します。
$ vagrant ssh
or
$ ssh vagrant@192.168.10.10
PHP 7.2 に対応した stable な Xdebug はありませんので、beta版をインストールします。
$ sudo pecl install xdebug-2.6.0beta1
# 2018年2月現在では以下でよいです
$ sudo pecl install xdebug
これにより、/usr/lib/php/20170718/xdebug.so
が生成されたはずです。
次に、xdebug.ini
ファイルを開き、
$ sudo vi /etc/php/7.2/mods-available/xdebug.ini
先頭に以下を記述します。
zend_extension=/usr/lib/php/20170718/xdebug.so
そして、このファイルのシンボリックリンクを作り、20-xdebug.ini
とします。
$ cd /etc/php/7.2/fpm/conf.d/
$ sudo ln -s /etc/php/7.2/mods-available/xdebug.ini ./20-xdebug.ini
最後に、php7.2-fpm
を再起動します。
$ sudo service php7.2-fpm restart
以上です。
PHP 7.2 に正式対応した Xdebug がリリースされたら、Homestead でもデフォルトでインストールされるとよいのですが。
3. おまけ
今回は、pecl
コマンドで xdebug をインストールしましたが、別のやり方もあります。
$ php -i
を実行して出力されたテキストをコピーし、Xdebug: Support; Tailored Installation Instructions 内のテキストエリアに貼り付け、「Analyze my phpinfo() output」ボタンを押します。
すると、その環境に合った Xdebug の導入手順が表示されます。
ただ今回の場合、こちらのやり方だと、自分でコンパイルまで行う手順が表示されたので、もっと簡単にインストールできる pecl
コマンドを使いました。