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 を選択する必要があります。
また、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
を検索すると、このディレクトリがまったく存在しないことがわかります。 グーグルで問題を解決するには、
にある関連コンテンツを完成させる必要があります。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 以降のシステムではセキュリティ ポリシーが書き直されているため、権限の問題が発生します (
は機能しません): <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
インストールが完了したら、
を使用して php71-xdebug:brew install php71-xdebug --without-homebrew-php
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="/usr/local/opt/php71-xdebug/xdebug.so"
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>
その後、
を再起動します: <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.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 DebugVSCode は現在最も人気のある開発ツールの 1 つであり、軽量ではありますが、各種 IDE に劣らないマイクロソフトの良心的な作品であり、さまざまなプラグインをインストールすることで機能を拡張できます。 PHP Debug
プラグインです。Xdebug へのブリッジとして使用して、Xdebug を介して直接 PHP のデバッグを容易にすることができます。公式の説明は非常に適切です:PHP Debug Adaptor for Visual Studioコード
公式Webサイトのガイダンスも非常に優れています:XDebugのインストール
- phpinfo に表示されます。 ()
を作成することを強くお勧めします。シンプルな
Linux の場合: ソース コードを tarball としてダウンロードするか、git でクローンを作成してコンパイルします。
test.php ファイルを作成し、そこに phpinfo();ステートメントを追加し、出力をコピーして XDebug インストール ウィザードに貼り付けます。ウィザードはそれを分析して、カスタマイズされたインストールを提供します。
#要約:
Windows の場合: PHP バージョン、アーキテクチャ (64/32 ビット)、スレッド セーフ ( TS/NTS) と Visual Studio コンパイラのバージョンを確認し、PHP 拡張機能フォルダーに配置します。
php.ini のパスは、
- ##zend_extension=path/to/xdebug
を php.ini に追加して、XDebug を使用するように PHP を設定します。- 「ロードされた構成ファイル」の下の出力。
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 recommendremote_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.- If you are doing web development, don't forget to restart your webserver to reload the settings
- Verify your installation by checking your
phpinfo()
output for an XDebug section.
这里需要注意的是它推荐开启Xdebug配置项中的remote_autostart
这一项。
好了,经过上面的操作,你应该可以跟Demo里面一样在VSCode中调试PHP了。