MacOS Catalina10.15へのXdebugのインストール

19
Guenter 2019-10-10 21:36.

XdebugをOSX 10.15にインストールしようとしましたが、次の問題が発生しました。

/private/tmp/pear/install/xdebug/xdebug.c:25:10:致命的なエラー:「php.h」ファイルが見つかりません

私はここで説明されているように問題を修正しようとしました: https://stackoverflow.com/questions/52623108/installing-xdebug-on-macos-mojave-php-h-file-not-found

残念ながら、ヘッダーファイルはこのディレクトリに見つかりません。 /Library/Developer/CommandLineTools/Packages

OS X 10.15の現在のヘッダーファイルを入手できるアイデアはありますか?

2 answers

47
Louis Charette 2019-10-15 11:41.

tl; dr

Appleは、ヘッダーファイル/usr/includemacOS_SDK_headers_for_macOS_10.14.pkgパッケージを削除することを決定しました。Xdebugをインストールするには、phpizeとの両方に正しい参照を指定してXdebugを手動でコンパイルする必要がありmakeます。

詳細については、ブログ記事を書きました。 https://bbqsoftwares.com/blog/xdebug-catalina-issue そして https://bbqsoftwares.com/blog/xdebug-catalina


2020年6月30日更新

xdebugのの新しいバージョンにアップグレードしようとしたときに、いくつかの新しい調査の後、私は今、信じてこの答えの指示のほとんどは必要ありませんPHPのビルドint型のバージョンで有効になってxdebugのへ。何かをする前に、がxdebug.soすでに存在するかどうかを確認する必要があります。これはデフォルトで存在する/usr/lib/php/extensions/no-debug-non-zts-20180731/思います(コメントで確認してください)。その場合は、この回答のPHPで有効なサポートにスキップできます。

ソースコードからxdebugをビルドし、実際にそのバージョンを組み込みxdebug.soPHPで使用しようとすると、「コード署名」エラーが発生することに注意してください。説明したようにhttps://stackoverflow.com/questions/53668236/how-to-compile-and-use-php-extensions-on-mac-os-mojave そして https://superuser.com/a/1536442/1100783、唯一の実際の解決策は、組み込みのインスタンスではなく、独自のPHPインスタンスをコンパイルして使用することです。


簡単に言うと、Apple/usr/includeはMacOS Catalinaで核兵器を使用することを決定しました。これは、UNIXシステムでこれまでCヘッダーファイルのデフォルトの場所でした。PEAR / PECLを介してインストールしようとすると、コンパイラがで必要なヘッダーファイルを検索するため、エラーが返され/usr/includeます。したがって、解決策は、Xdebugを手動でコンパイルし、ヘッダーファイルの実際の場所を手動で指定することです。ヘッダーファイルは、Xcodeによって提供され、別の場所にあります。

まず、コマンドラインツールを含め、Xcodeがインストールされていることを確認します。次のコマンドは、デフォルトのSDKの場所を表示します。

$ xcrun --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

必要なヘッダー(php.h)はになります/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/main

ソースの取得

gitからソースコードを取得して2.7.2をコンパイルしましょう。または、ソースをからダウンロードすることもできますhttps://xdebug.org/download.php#releases。

git clone https://github.com/xdebug/xdebug.git
cd xdebug
git checkout tags/2.7.2

phpize

次にphpize、インクルードパスを編集できるようにコピーを作成する必要があります。

cp /usr/bin/phpize .
nano ./phpize

この行を見つけてください:

includedir="`eval echo ${prefix}/include`/php"

...そしてそれをこの行に置き換えます:

includedir="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php"

実行phpize

./phpize

これで、次のようなものが表示されるはずです。

Configuring for:
PHP Api Version:         20180731
Zend Module Api No:      20180731
Zend Extension Api No:   320180731

構成とビルド

これで構成できます:

./configure --enable-xdebug

...そしてコンパイラフラグとして定義されたカスタムSDKの場所を使用してmakeを実行します:

make CPPFLAGS='-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/main -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/TSRM -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/Zend -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/ext -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php/ext/date/lib'

警告が表示される場合がありますが、今は無視してください。最後に、実行する必要があります:

インストールする

この場合も、拡張機能を適切な場所に移動できないため、このコマンドは失敗します。SIPはそれを防ぎます。しかし、心配はいりません。次のステップで手動で処理します。* .soファイルに署名するため、makeinstallは引き続き必要です。

PHPでサポートを有効にする

次に、実行可能ファイルを安全な場所に移動します。私は使用します/usr/local/php/extensions

sudo mkdir -p /usr/local/php/extensions
sudo cp /usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so /usr/local/php/extensions

次に、PHP構成を編集してXdebugを有効にします。単に編集するphp.ini

sudo nano /etc/php.ini

そして、下部に以下を追加します:

[xdebug]
zend_extension=/usr/local/php/extensions/xdebug.so
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000

組み込みサーバーを再起動して、次のことを確認してください。

sudo apachectl restart

そして最後にすべてがうまくいったことをテストします:

php -i | grep "xdebug support"

上記のコマンドが何も返さない場合、Xdebugはインストールで使用できません。手順に戻って、不足しているものを見つけます。


編集

より完全な修正は、の結果を編集することです。php-config --include-dirこれは/usr/include/php。を返します。これにより、ファイルやコンパイラフラグを手動で編集しなくても、インストールで必要なヘッダーファイルを見つけることができます。

0
jamespsterling 2019-10-15 15:20.

brewを使用している場合は、phpを再インストールして再リンクすることでこれを解決します。

brew reinstall [email protected]
brew link --overwrite php

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

驚くほど素晴らしいDropMixミュージックミキシングカードゲームは30ドルで驚くべき取引です

驚くほど素晴らしいDropMixミュージックミキシングカードゲームは30ドルで驚くべき取引です

DropMixはNFC対応のカードゲームで、基本的にはリミックスアーティストになります。現在、Amazonでは$ 30まで下がっており、これまでで最高の価格に匹敵します。ロックバンドで有名なHarmonixによって開発されたDropMixは、おそらく少し野心的すぎるように思われます。結局のところ、ほとんどの人は素晴らしいリズムを持っていませんが、ゲームは驚くほどうまく実行されます。

メアリーJ.ブライジがついにハリウッドウォークオブフェイムスターを獲得

メアリーJ.ブライジがついにハリウッドウォークオブフェイムスターを獲得

写真:APメアリーJ.ブライジは、間もなくハリウッドウォークオブフェイムのスターを獲得します。これは、メアリーJよりもハリウッドウォークオブフェイムのほうが正直なところ恩恵です。

MeltdownとSpectreの脆弱性についてこれまでに知っていることはすべて、簡単な方法で説明されています

MeltdownとSpectreの脆弱性についてこれまでに知っていることはすべて、簡単な方法で説明されています

画像:グラズ工科大学/ NataschaEiblがデザインしたロゴ。MeltdownとSpectreは、攻撃者がシステムメモリに保存されているあらゆる種類の情報にアクセスできるようにする2つの脆弱性に付けられた名前です。

彼のニューヨークの家から追い出されようとしている97歳の第二次世界大戦の獣医。メリーエフィングクリスマス

彼のニューヨークの家から追い出されようとしている97歳の第二次世界大戦の獣医。メリーエフィングクリスマス

日本人に襲われたときに真珠湾にいた97歳の第二次世界大戦のベテランが、ニューヨークのブルックリンから追い出されています。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

投資ノート:Bioscout AU$300万シード

投資ノート:Bioscout AU$300万シード

Bioscoutは、農家を運転席に置くという使命を負っています。Artesian(GrainInnovate)やUniseedと並んで、最新のシードラウンドでチームを支援できることをうれしく思います。問題真菌症による重大な作物の損失は、農民にとって試練であることが証明されています。

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

遠隔医療は、パンデミック後の時代では新しいものではなく、時代遅れの分野でもありません。しかし、業界を詳しく見ると、需要と供給の強力な持続可能性と、米国で絶え間ない革命となる強力な潜在的成長曲線を示しています。

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

2021年は、世界的なベンチャーキャピタル(VC)の資金調達にとって記録的な年でした。DealStreetAsiaによると、東南アジアも例外ではなく、この地域では年間で記録的な25の新しいユニコーンが採掘されました。

ムーアの法則を超えて

ムーアの法則を超えて

計算に対する私たちの欲求とムーアの法則が提供できるものとの間には、指数関数的に増大するギャップがあります。私たちの文明は計算に基づいています—建築と想像力の現在の限界を超える技術を見つけなければなりません。

Language