web-dev-qa-db-ja.com

PHP OS X 10.9 MavericksでのXdebug

OS X 10.9 Mavericksをインストールした後、OS XでのPHP開発環境の設定に問題があります。

これが、インストールに使用しているコマンドです。

Sudo pecl install xdebug

downloading xdebug-2.2.3.tgz ...
Starting to download xdebug-2.2.3.tgz (250,543 bytes)
.....................................................done: 250,543 bytes
66 source files, building
running: phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

ERROR: `phpize' failed

誰にも解決策や回避策がありますか?

47
greyfox

高速コピーアンドペースト方法

Sudo sh -c 'echo zend_extension=$(find /usr/lib/php/extensions -name "xdebug.so") >> $(php -qr "echo php_ini_loaded_file();") && apachectl restart'

このコマンドは次を実行します。

  • Xcodeに付属するネイティブXdebug拡張機能を検索します
  • どの設定ファイルがロードされているかをphpに尋ねます
  • 構成ファイルにXdebug拡張機能パスを追加します
  • Apacheを再起動します。

Sierra、El Capitan、およびYosemiteとは、バンドルされたApacheで互換性がありますが、MAMPおよびXAMPPではテストされていません。

コマンドを起動する前に、Xcodeコマンドラインツールがインストールされていることを確認してください:xcode-select --install

91
Creaforge

peclの使用について知らない。 OS Xのインストール後にXdebugを取得するのは、peclがなくても簡単です。次の2つの簡単なオプションがあります。

  1. すでに利用可能なバージョンを使用します。

    /usr/lib/php/extensions/no-debug-non-zts-2010052/xdebug.so
    
  2. あなた自身のものをつくる:

    1. Xcode CLIツールがあることを確認します。xcode-select --installは、CLIツールのインストールを要求します。 CLIツールをインストールすると、/usr/include/phpの中に何かがあるはずです。

    2. http://xdebug.org/download.php に移動し、必要なXdebugのバージョンのソースtarballをダウンロードします。例: http://xdebug.org/files/xdebug-2.2.3.tgz

    3. Tarballとcdを作成したディレクトリに抽出します。そのディレクトリ内にREADMEが表示されます。ここからです:

      $ phpize
      Configuring for:
      PHP Api Version:         20100412
      Zend Module Api No:      20100525
      Zend Extension Api No:   220100525
      $ ./configure --enable-xdebug
      checking for grep that handles long lines and -e... /usr/bin/grep
      checking for egrep... /usr/bin/grep -E
      checking for a sed that does not truncate output... /usr/bin/sed
      [... output ...]
      $ make
      [... output ...]
      

ビルドされたxdebug.somodules/xdebug.soになりました。 phpizeは、インストールされているXCode CLIツールで行うことが重要です。これは、phpizeがPHPのバージョンのビルドパラメーターを設定するためです。

上記の(1)または(2)からxdebug.soを手にすると、phpまたはphp.iniで使用されているphp-fpmにこのブロックを追加できます。

[Xdebug]
zend_extension=<full_path_to_xdebug.so>
xdebug.remote_enable=1
xdebug.remote_Host=<Host running PHP (e.g. localhost)>
xdebug.remote_port=<port Xdebug tries to connect to on the Host running PHP (default 9000)>
36

ここには2つの問題があります。 1つ目は、次のコマンドでXcodeコマンドラインツールをインストールする必要があることです。

xcode-select --install

これは、以前に/usr/include/php/で見つからなかったファイルが利用可能になることを意味します。

次のステップは、Aresが his answer で示しているのと同じ方法でautoconfをインストールすることです。

最初にcdをダウンロードフォルダに入れます

cd ~/Downloads/
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr/local
make
Sudo make install

これで、pecl installコマンドを実行できます

Sudo pecl install xdebug
16
wal5hy

Mac Yosemite 10.10を使用していて、上記の回答のいずれでも問題が解決しない場合。以下をせよ:

  1. ターミナルを開く

  2. 実行find /usr/lib/php/extensions -name "xdebug.so"デバッグライブラリへのパスを確認します。

  3. 実行Sudo nano /etc/php.ini php.iniファイルを開いて編集するには
  4. Php.iniで、最後に次の行を追加します

    [XDebug]
    zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_Host=127.0.0.1
    xdebug.remote_port=9000
    

(終了したら、control+o保存してcontrol+xファイルを閉じます)

(最初の端末コマンドから得たものはすべて、zend_extensionの値を置き換えることを忘れないでください)

  1. 実行Sudo apachectl restart新しい構成をロードする
  2. 座ってリラックス
16
oabarca

そうしなければならなかった brew install xdebugとPHPのバージョン)を選択し、機能しました!たとえば、

brew install homebrew/php/php56-xdebug

PHPバージョン5.6のバリアント。

2
tleo

問題phpizeエラーについては、これを試して問題を解決してください:Sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/usr /含める

2
ltzMaxwell

この問題に直面している人のために、ソースからautoconfをビルドしなければなりませんでした。 StackOverflowの別の質問からこの回答に従いました。

https://stackoverflow.com/a/12333230/2272004

2
greyfox