ホームページ > バックエンド開発 > PHP7 > macOS PHP7 に Xdebug を追加する方法

macOS PHP7 に Xdebug を追加する方法

藏色散人
リリース: 2023-02-18 09:42:02
転載
2023 人が閲覧しました

MacOS システム PHP7 で Xdebug が追加されました

Apple が macOS High Sierra をリリースした後、最終的にシステムに php v7.1 が搭載されました。 php7 を使用するには、追加の方法 (Homebrew または php-osx) を見つける必要がありますが、これは非常に便利です。

ただし、付属の PHP は基本的な構成しかありません。PHP を開発する場合は、やはり Xdebug が必要です。付属の PHP に Xdebug モジュールを追加する方法をまとめます。 macOS High Sierra のシステム。 [推奨: PHP7 チュートリアル ]

基本環境 (macOS および PHP 情報)

    ##macOS High Sierra: v10.13.3
  • PHP: v7.1.7

Xdebug のインストール

Xdebug 公式 Web サイトのインストール ドキュメントには、MAC 推奨の方法が記載されています。これは、システムには PHP が付属しているためです。 ##v7.1.7

であるため、選択する場合は、インストール パッケージ php71-xdebug を選択する必要があります。

macOS PHP7 に Xdebug を追加する方法また、brew の

php71-xdebug

php71 に依存するため、-- を追加することをお勧めします。 -homebrew-phpこのパラメータがないと、brew は php71 のインストールを無視します。

brew install php71-xdebug --without-homebrew-php
ログイン後にコピー
ログイン後にコピー
しかし、この時点で、次のエラーが発生する可能性があります:

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:
ログイン後にコピー

は、依存関係が欠落していることを示すプロンプトを表示し、

phpize

が正しく動作しません。phpize は、PHP 拡張ライブラリのコンパイル環境を準備するために使用されます。理論的には、システムに付属する PHP には phpize が必要ですが、/usr/include/php/ にはありません。 * 必要なモジュールは内部にありますが、/usr/include を検索すると、このディレクトリがまったく存在しないことがわかります。 グーグルで問題を解決するには、

/usr/include

にある関連コンテンツを完成させる必要があります。OSX v10.10 より前のシステムでは、へのソフト リンクを手動で作成する必要があります。問題を解決します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /usr/include</pre><div class="contentsignin">ログイン後にコピー</div></div> しかし、v10.11 以降のシステムではセキュリティ ポリシーが書き直されているため、権限の問題が発生します (

sudo

は機能しません): <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ln: /usr/include: Operation not permitted</pre><div class="contentsignin">ログイン後にコピー</div></div>しかし幸いなことに、Apple は開発者向けに Xcode を用意しています。これは非常に強力なツールですが、サイズも非常に大きいため (ダウンロードとインストールに少し時間がかかります)、一般的に必要なのは、Xcode が提供する

コマンド ライン ツール

だけです。 . 上記の問題は、実際には、コマンド ライン ツール:

xcode-select --install
ログイン後にコピー
をインストールする限り解決できます。次に、プロンプトに従ってインストールし、契約に同意します...


macOS PHP7 に Xdebug を追加する方法 インストールが完了したら、

brew

を使用して php71-xdebug:

brew install php71-xdebug --without-homebrew-php
ログイン後にコピー
ログイン後にコピー
をインストールします。すべてが完了したら、brewプロンプトが表示されます:

To finish installing xdebug for PHP 7.1:
  * /usr/local/etc/php/7.1/conf.d/ext-xdebug.ini was created,
    do not forget to remove it upon extension removal.
  * Validate installation via one of the following methods:
  *
  * Using PHP from a webserver:
  * - Restart your webserver.
  * - Write a PHP page that calls "phpinfo();"
  * - Load it in a browser and look for the info on the xdebug module.
  * - If you see it, you have been successful!
  *
  * Using PHP from the command line:
  * - Run `php -i "(command-line 'phpinfo()')"`
  * - Look for the info on the xdebug module.
  * - If you see it, you have been successful!
ログイン後にコピー

Enable Xdebug for PHP

上記の手順を実行すると、システムに Xdebug がありますが、

にない可能性があります。 php.ini

設定ファイルなので、Xdebug を手動で追加する必要があります 設定項目: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">[xdebug] zend_extension=&quot;/usr/local/opt/php71-xdebug/xdebug.so&quot; xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000 xdebug.scream = 0 xdebug.show_local_vars = 1</pre><div class="contentsignin">ログイン後にコピー</div></div>その後、

php-fpm

を再起動します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"># 关闭php-fpm sudo killall php-fpm # 启动php-fpm sudo php-fpm</pre><div class="contentsignin">ログイン後にコピー</div></div>#php を実行します-i "(command-line 'phpinfo()')" | grep xdebug

、Xdebug の構成内容を確認できます:

xdebug
...
xdebug.remote_autostart => On => On
xdebug.remote_connect_back => On => On
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => localhost => localhost
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
xdebug.remote_timeout => 200 => 200
xdebug.scream => Off => Off
...
ログイン後にコピー
Visual Studio Code - PHP Debug

VSCode は現在最も人気のある開発ツールの 1 つであり、軽量ではありますが、各種 IDE に劣らないマイクロソフトの良心的な作品であり、さまざまなプラグインをインストールすることで機能を拡張できます。 PHP Debug

プラグインです。Xdebug へのブリッジとして使用して、Xdebug を介して直接 PHP のデバッグを容易にすることができます。公式の説明は非常に適切です:

PHP Debug Adaptor for Visual Studioコード

公式Webサイトのガイダンスも非常に優れています:

XDebugのインストール
  1. を作成することを強くお勧めします。シンプルな
    test.php ファイルを作成し、そこに phpinfo(); ステートメントを追加し、出力をコピーして XDebug インストール ウィザードに貼り付けます。ウィザードはそれを分析して、カスタマイズされたインストールを提供します。 #要約: Windows の場合: PHP バージョン、アーキテクチャ (64/32 ビット)、スレッド セーフ ( TS/NTS) と Visual Studio コンパイラのバージョンを確認し、PHP 拡張機能フォルダーに配置します。

    Linux の場合: ソース コードを tarball としてダウンロードするか、git でクローンを作成してコンパイルします。
    • ##zend_extension=path/to/xdebug
    • を php.ini に追加して、XDebug を使用するように PHP を設定します。
    php.ini のパスは、
  2. phpinfo に表示されます。 ()
  3. 「ロードされた構成ファイル」の下の出力。
    php.ini でリモート デバッグを有効にする:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">[XDebug] xdebug.remote_enable = 1 xdebug.remote_autostart = 1</pre><div class="contentsignin">ログイン後にコピー</div></div> <p>There are other ways to tell XDebug to connect to a remote debugger than <code>remote_autostart, like cookies, query parameters or browser extensions. I recommend remote_autostart because it "just works". There are also a variety of other options, like the port (by default 9000), please see the XDebug documentation on remote debugging for more information.

  4. If you are doing web development, don't forget to restart your webserver to reload the settings
  5. Verify your installation by checking your phpinfo() output for an XDebug section.

这里需要注意的是它推荐开启Xdebug配置项中的remote_autostart这一项。

好了,经过上面的操作,你应该可以跟Demo里面一样在VSCode中调试PHP了。
macOS PHP7 に Xdebug を追加する方法

以上がmacOS PHP7 に Xdebug を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート