ババールのプログラミングの日々

会社を辞めて、1からプログラミングを学んでいます。

Vagrant上でXdebug使いたくてPeclコマンドでインストールしたけどうまくいかなかった話

どうもババールです。

 

 

僕は、vagrantとvirtualboxにてcentosを立ち上げていつもプログラミングに勤しんでるわけですが、そろそろデバッグ機能をatomにつけたいと思いまして、Xdebugをインストールしようかと考えました。

 

厳密に言うと、atomのプラグインであるPHP-debugにXdebugを紐付けることでデバッグを可能にしようというものです。

 

簡単にいくと思いきや、これが一週間悩みつづけることになるとは・・・・・

 

 

まずXdebugをターミナル上でインストールしようかと思い調べたところ、PearとdevelopmentToolをインストールしないといけないみたい・・・

 

ふむふむ・・・

 

ターミナルにて 

$ yum -y install php-pear 
$ yum -y install php-devel

でインストール・・・・・

あれ、develはもう入れてるみたい・・・いつ入れたんだろ・・・。

 

さてこれにてPeclコマンドが使えるようになったため、

$ pecl install xdebug

にてXdebugをインストール!!!!

 

が、しかし・・・


 

ターミナル上には、

Warning: Invalid argument supplied for foreach() in Command.php on line 259 

Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 259

Warning・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

・・・・・・・・・・・

XML Extension not found

 

という無数のわけのわからない羅列が。

 

たくさんたくさんババールはググりました。

しかし、同じような現象にあってる人がなかなか見つからず・・・・・。

 

やっと質問板にて同じような人が(Peclコマンドじゃないみたいだったけどね)いました。

 

もちろん外国人のため英語での質問→回答

なんとか訳し、原因は、peclのモジュールにあるとのこと・・・・・

 

なるほど・・・・・わからん。

 

モジュールに詳しい私の知り合いに聞いた所、

vi `which pecl` 

でpeclコマンドの内容を確認してみたら?と返ってきたので、

いざ確認したところ、

exec $PHP -C -n -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d safe_mode=0 -d register_argc_argv="On" $INCDIR/peclcmd.php "$@"

 

と表示され、これの何がおかしいかというとphp.iniに書かれている記述を無視してphpを実行するためにコンパイルの時点でxmlモジュールを読み込む設定にしていないとxmlを読み込まず、エラーとなってしまうことがあるとのこと

 

ここの -n 部分を消してあげたら問題解決なのだと・・・

 

全然納得できなかったですが、おかげでPeclコマンド使うことができました。

 

ほんとこれに一週間悩みました。

 

 

同じような人見つからないのも不思議

 

 

それではババールでした。