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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Linux

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

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

Linux

【Linux】man コマンドの基本的な使い方

Linux をコマンドラインで使う場合、man コマンドでマニュアルを読むことができます(man は manual の略です)。 このページでは、この manコマンドの簡単な使い方について説明します。 …

CentOS

yum のエラー「Not using downloaded repomd.xml because it is older than what we have」

私が管理している CentOS 7 から yum に関するエラー通知メールが送られてきました。 目次メールの内容対応方法実際に実行してみました メールの内容 以下がメールの抜粋になります。 件名: C …

Linux

Ubuntu 18.04 (WSL) で curl がインストールエラーになったので対応しました

Ubuntu 18.04 LTS (WSL) の環境で curl コマンドをインストールしようとしたところ、エラーになりました。 この時の対応方法を説明します。 目次1. 状況2. 対応手順参考 1. …

Let's Encrypt

Let’s Encrypt でワイルドカードを使う

手持ちの CentOS 7 に入れてある certbot パッケージが バージョン 0.22.0 になり、Let’s Encrypt のワイルドカードに対応しましたので試してみました。 目 …