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 6 で yum update した時、remi-php70 レポジトリ内のパッケージの依存性解決ができない場合の解決方法

目次現象解決方法 その1解決方法 その2解決方法 その3まとめ参考 現象 remi-php70 リポジトリを使っている CentOS 6 の環境で PHP関連のパッケージを更新しようと思い、以下のコマ …

Vim

Vim でファイルを編集した後、sudo でそのファイルを保存する

目次1. 困った状況2. 対応方法3. ~/.vimrc にキーマップを登録する4. 参考 1. 困った状況 Vim でファイルを編集した後に、sudo で開いていないことに気付いた場合の対処法です。 …

Linux

環境変数PATHにセットされたパスを1行毎に表示する

環境変数PATHにセットされたパスを1行毎に表示する方法について説明しています。

Let's Encrypt

Let’s Encrypt で ‘-0001’ がついた証明書データを削除する方法

目次1. 問題点2. 対応方法念のため、存在している証明書を全て表示します。いらない証明書データを削除する3. 間違えて生成した ‘-0001’ の方を Webサイトで使用して …

CentOS

CentOS 8 で Snap から certbot パッケージをインストールする

CentOS 8 で Snap から certbot パッケージをインストールする方法について説明します。