動作環境
osxはcatalinaで検証していますがmojaveでも同様に動作すると思います。
概要
Macには標準でphp7.1が導入されています。
しかし、このPHPはbrewでインストールしたものではないためバージョンの切り替えが面倒です。
そこで、Brewコマンドでphpの7.1、7.2、7.3をインストールし、switch-phpコマンドでいつでも簡単にPhpのバージョンを変更できるようにします。
PhpのVersionごとに違うxdebugもVersionごとに適切に切り替わるようにします。
準備
switch-phpはvaletを自動的に再起動してくれるようです。Valetを使っているひとは更に便利です。
手順
まずはPHPの7.1〜7.3をインストールします。
% brew install php@7.1
% brew install php@7.2
% brew install php@7.3
次にswitch-phpをインストールします。
% npm install --global switch-php
switch-phpはメモリ使用量を設定できるようになっていたりコマンドで設定できます。※開発では便利ですね。👌
操作例)
% switch-php 7.1 -m 512M # php@7.1 with 512MB of memory
% switch-php 7.3 -m 2G -v # php@7.3 with 2GB of memory; verbose output
% switch-php 7.2 --memory=1G # php@7.2 with 1GB of memory
ここまででPHPの切り替えはできるようになっていますので、ここからxdebugの設定を行っています。
では最初にphp7.1に切り替えます
% switch-php 7.1
この状態でxdebugをインストールします。
% pecl install xdebug
pecl installはコンパイルを行います。
この時点でエラーが出るようでしたらxcodeのインストールに問題がある可能性がありますのでxcodeのインストールを確認してみてください。
続けてphp7.2に切りかえxcodeのインストールを行います。
% switch-php 7.2
% pecl install xdebug
さらに続けてphp7.3に切りかえxcodeのインストールを行います。
% switch-php 7.3
% pecl install xdebug
すべてのVersionでインストールが終了すると
usr/local/lib/php/pecl/ 以下にフォルダーが作成されているはずです。
% ls usr/local/lib/php/pecl/
0160303/ 20170718/ 20180731/
おそらくこんな感じのフォルダーが作られます。
20160303/ ←php7.1用
20170718/ ←php7.2用
20180731/ ←php7.3用
それぞれのディレクト以内にVersion毎のxdebug.soファイルが作成されます。
今度はそれぞれの環境用にxdebugの設定を記述します。
php7.1の設定
% vi /usr/local/etc/php/7.1/php.ini
;zend_extension="xdebug.so" // この行は不要なのでコメントアウトします
[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
xdebug.iniファイルを作ります
% vi /usr/local/etc/php/7.1/conf.d/ext-xdebug.ini
内容は以下の通り
[xdebug]
zend_extension="/usr/local/lib/php/pecl/20160303/xdebug.so"
xdebug.remote_autostart=1
xdebug.default_enable=1
xdebug.remote_port=9001
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
php7.2の設定
% vi /usr/local/etc/php/7.2/php.ini
;zend_extension="xdebug.so" // この行は不要なのでコメントアウトします
[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
ext-xdebug.iniを作成します
% vi /usr/local/etc/php/7.2/conf.d/ext-xdebug.ini
内容はこちら
[xdebug]
zend_extension="/usr/local/lib/php/pecl/20170718/xdebug.so"
xdebug.remote_autostart=1
xdebug.default_enable=1
xdebug.remote_port=9001
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
php7.3の設定
% vi /usr/local/etc/php/7.3/php.ini
;zend_extension="xdebug.so" // この行は不要なのでコメントアウトします
[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
ext-xdebug.iniファイルを作成します
% vi /usr/local/etc/php/7.3/conf.d/ext-xdebug.ini
内容はこちら
[xdebug]
zend_extension="/usr/local/opt/php@7.3/pecl/20180731/xdebug.so"
xdebug.remote_autostart=1
xdebug.default_enable=1
xdebug.remote_port=9001
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
以上で完了です
正しくVerrsionが変更され、xdebugが動作しているかチェックします。
% switch-php 7.1
Valet stopped ✔
PHP switched ✔
Valet started ✔
You are now using PHP 7.1.32
% php -v
PHP 7.1.32 (cli) (built: Oct 6 2019 20:44:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.32, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
% switch-php 7.2
Valet stopped ✔
PHP switched ✔
Valet started ✔
You are now using PHP 7.2.23
% php -v
PHP 7.2.23 (cli) (built: Oct 3 2019 19:50:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
% switch-php 7.3
Valet stopped ✔
PHP switched ✔
Valet started ✔
You are now using PHP 7.3.9
% php -v
PHP 7.3.9 (cli) (built: Sep 8 2019 14:56:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.9, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
すべてXdebugが有効になっているのを異確認したら終了です。
お疲れさまでした。
コメント