Linux

Ubuntu 16.04.3 LTS + PHP 7.2 の環境に Xdebug をインストールする

投稿日:2018年1月19日 更新日:

2018年1月29日に、Xdebug 2.6.0 (stable版) がリリースされました。
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 コマンドを使いました。

📂-Linux
-

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

CentOS

CentOS 8 標準の Apache と PHP の関係について

CentOS 8 における Apache と PHP の関係について説明します。

Linux

ドキュメントルートに chmod コマンドを実行する際、指定すると便利なモード引数

目次1. はじめに2. chmod に関する前提知識3. ディレクトリは rwxr-xr-x ファイルは rw-r–r– にする解説4. ディレクトリは rwxrwxr-x ファイルは rw-rw …

Linux

ssh-agent の代わりに gpg-agent を使う手順

ssh-agent の代わりに gpg-agent を使う手順について説明します。

Linux

pip install でインストールしたパッケージを使おうとするエラーが発生する

目次1. はじめに2. 環境3. 対処方法4. おわりに 1. はじめに 以下のコマンドで、Python のパッケージをシステムにインストールしたとします。 $ sudo pip install {パ …

CentOS

CentOS 8 を CentOS Stream に移行するコマンド

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 2021年5月:移行作業を行いました4. 参考 1. 突然の CentOS 8 終了宣言 Cent …