Heim  >  Artikel  >  Backend-Entwicklung  >  So fügen Sie Xdebug zu macOS PHP7 hinzu

So fügen Sie Xdebug zu macOS PHP7 hinzu

藏色散人
藏色散人nach vorne
2021-12-21 16:53:001827Durchsuche

MacOS-System PHP7 fügt php-osx

hinzu) ist wirklich praktisch.

Das mit dem System gelieferte PHP verfügt jedoch nur über grundlegende Konfigurationen. Wenn Sie PHP entwickeln möchten, ist Xdebug dennoch erforderlich. Hier finden Sie eine Zusammenfassung, wie Sie das mit dem System gelieferte PHP in macOS hinzufügen Hohe Sierra. [Empfohlen: PHP7-Tutorial]

Grundlegende Umgebung (macOS- und PHP-Informationen)

macOS High Sierra: v10.13.3

PHP: v7.1.7

  • Installieren Sie Xdebug
  • Xdebug offizielle Website-Installation Dokumentation Es gibt eine von MAC empfohlene Methode. Da das System mit PHP
v7.1.7

geliefert wird, müssen Sie bei der Auswahl das Installationspaket php71-xdebug auswählen.

Da außerdem php71-xdebug

in brew von

php71So fügen Sie Xdebug zu macOS PHP7 hinzu abhängt, wird empfohlen, den Parameter --without-homebrew-php hinzuzufügen, damit brew das ignoriert Installation

php71

.

brew install php71-xdebug --without-homebrew-php
Aber zu diesem Zeitpunkt kann ein Fehler wie der folgende auftreten:
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:
Es weist auf eine fehlende Abhängigkeit hin, die dazu führt, dass phpize nicht ordnungsgemäß verwendet wird zur Vorbereitung In Bezug auf die Kompilierungsumgebung der PHP-Erweiterungsbibliothek sollte das mit dem System gelieferte PHP theoretisch phpize haben, aber es ist nicht in /usr/include/php/* zu finden code>. Bei der Suche nach <code>/usr/include wurde festgestellt, dass dieses Verzeichnis überhaupt nicht existiert. --without-homebrew-php这个参数,这样的话brew就会忽略安装php71

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /usr/include

不过这个时候,或许你会碰到下面这样的报错:

ln: /usr/include: Operation not permitted

提示缺失依赖,从而导致phpize无法正常工作,phpize是用来准备 PHP 扩展库的编译环境的,理论上系统自带的PHP应该是有phpize的,但是没有在/usr/include/php/*里面找到它需要的模块,并且检索/usr/include时发现这个目录根本不存在。

Google了一圈,解决问题,就需要在/usr/include中补全相关的内容,在OSX v10.10以前系统,需要手动做软链来解决:

xcode-select --install

但是v10.11以后的系统重写了安全策略,所以会遇到权限问题(sudo也不行):

brew install php71-xdebug --without-homebrew-php

不过好在Apple为开发人员准备了Xcode,这是一个很强大的工具,但是体积也很大(下载安装有点慢),而一般我们只需要它提供的Command Line Tools就够了,上面的问题,其实只要安装Command Line Tools就可以解决:

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!

接下来,跟着提示做,安装、同意协议...
So fügen Sie Xdebug zu macOS PHP7 hinzu

等待安装结束以后,再用 brew 来安装 php71-xdebug:

[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

一切结束以后,brew会给出提示:

# 关闭php-fpm
sudo killall php-fpm

# 启动php-fpm
sudo php-fpm

开启PHP的Xdebug

经过上面步骤,系统里面是有Xdebug了,但是在php.ini配置文件中不一定有,因此需要手动添加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
...

然后就是重启php-fpm

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

运行php -i "(command-line 'phpinfo()')" | grep xdebug后,你就可以看到关于Xdebug的配置内容了:

rrreee

Visual Studio Code - PHP Debug

VSCode是目前最流行的开发工具之一,虽然轻量,但是对标各类IDE毫不逊色,微软良心之作,通过安装不同的插件可以扩展它的能力,其中有一款 PHP Debug 的插件,可以作为Xdebug的桥梁,方便直接通过Xdebug调试PHP,官方的描述十分贴切:

PHP Debug Adapter for Visual Studio Code

官网的指导也写的相当不错:

  1. Install XDebug
    I highly recommend you make a simple test.php file, put a phpinfo(); statement in there, then copy the output and paste it into the XDebug installation wizard. It will analyze it and give you tailored installation instructions for your environment.
    In short:

    • On Windows: Download the appropiate precompiled DLL for your PHP version, architecture (64/32 Bit), thread safety (TS/NTS) and Visual Studio compiler version and place it in your PHP extension folder.
    • On Linux: Either download the source code as a tarball or clone it with git, then compile it.
  2. Configure PHP to use XDebug by adding zend_extension=path/to/xdebug to your php.ini.
    The path of your php.ini is shown in your phpinfo()
  3. Um das Problem zu lösen, müssen Sie nach der Suche bei Google den relevanten Inhalt in /usr/include vervollständigen. In Systemen vor OSX v10.10 müssen Sie manuell einen Softlink erstellen, um das Problem zu lösen Problem:
  4. rrreee

    Allerdings hat das System nach v10.11 die Sicherheitsrichtlinie neu geschrieben, sodass Sie auf Berechtigungsprobleme stoßen werden (sudo funktioniert nicht):

    rrreee🎜Aber glücklicherweise hat Apple Xcode dafür vorbereitet Entwickler, das ist ein sehr leistungsfähiges Tool, aber es ist auch sehr umfangreich (Download und Installation sind etwas langsam), und im Allgemeinen benötigen wir nur die 🎜Befehlszeilentools🎜, die es bereitstellt. Tatsächlich kann das oben genannte Problem dadurch gelöst werden Ich installiere gerade die 🎜Befehlszeilentools🎜: 🎜 rrreee🎜Folgen Sie als Nächstes den Anweisungen, installieren Sie und stimmen Sie der Vereinbarung zu ...
    So fügen Sie Xdebug zu macOS PHP7 hinzu🎜🎜Warten Sie, bis die Installation abgeschlossen ist, und verwenden Sie dann 🎜brew🎜 zur Installation 🎜php71-xdebug🎜:🎜rrreee🎜 Nachdem alles abgeschlossen ist, wird brew ein Tipp gegeben: 🎜rrreee 🎜🎜Xdebug in PHP aktivieren🎜🎜🎜Nach den obigen Schritten ist Xdebug im System vorhanden, aber möglicherweise nicht in der php.ini Konfigurationsdatei, daher müssen Sie das Xdebug-Konfigurationselement manuell hinzufügen: 🎜rrreee 🎜Dann starten Sie php-fpm neu: 🎜rrreee🎜Nach dem Ausführen von php -i "(Befehlszeile 'phpinfo() ')" | grep xdebug, Sie können sehen, dass es jetzt an der Zeit ist, Xdebug zu konfigurieren: 🎜rrreee🎜🎜Visual Studio Code - PHP Debug🎜🎜🎜VSCode ist derzeit eines der beliebtesten Entwicklungstools. Obwohl es leichtgewichtig ist Es ist allen Arten von IDEs nicht unterlegen, seine Fähigkeiten können durch die Installation verschiedener Plug-Ins erweitert werden. Darunter ist das 🎜PHP Debug🎜 Plug-in, das als Brücke zu Xdebug verwendet werden kann um das Debuggen von PHP direkt über Xdebug zu erleichtern. Die offizielle Beschreibung ist sehr passend: 🎜
    PHP Debug Adapter for Visual Studio Code
    🎜Die Anweisungen auf der offiziellen Website sind auch recht gut: 🎜
      🎜 🎜Installieren Sie XDebug
      🎜Ich empfehle Ihnen dringend, eine einfache test.php code>-Datei zu erstellen, dort eine <code>phpinfo();-Anweisung einzufügen und diese dann zu kopieren Geben Sie es aus und fügen Sie es in den XDebug-Installationsassistenten ein. Dieser analysiert es und gibt Ihnen maßgeschneiderte Installationsanweisungen für Ihre Umgebung. em>🎜
      Kurz gesagt:🎜🎜🎜Unter Windows: Laden Sie die entsprechende vorkompilierte DLL herunter Geben Sie Ihre PHP-Version, Architektur (64/32 Bit), Thread-Sicherheit (TS/NTS) und Visual Studio-Compiler-Version ein und legen Sie sie in Ihrem PHP-Erweiterungsordner ab.🎜🎜Unter Linux: Laden Sie den Quellcode entweder als Tarball herunter oder klonen Sie ihn mit git, dann kompilieren Sie es.🎜🎜🎜🎜Konfigurieren Sie PHP für die Verwendung von XDebug, indem Sie zend_extension=path/to/xdebug zu Ihrer php.ini hinzufügen.<br>Der Pfad Ihrer php.ini wird angezeigt in Ihrer <code>phpinfo()-Ausgabe unter „Geladene Konfigurationsdatei“.🎜🎜🎜Aktivieren Sie Remote-Debugging in Ihrer php.ini:🎜
      [XDebug]
      xdebug.remote_enable = 1
      xdebug.remote_autostart = 1

      There are other ways to tell XDebug to connect to a remote debugger than 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.

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

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

好了,经过上面的操作,你应该可以跟Demo里面一样在VSCode中调试PHP了。
So fügen Sie Xdebug zu macOS PHP7 hinzu

Das obige ist der detaillierte Inhalt vonSo fügen Sie Xdebug zu macOS PHP7 hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen