Selepas Apple mengeluarkan macOS High Sierra, sistem akhirnya dilengkapi dengan php v7.1 Berbanding dengan sebelumnya, jika anda ingin menggunakan Untuk php7, anda perlu memikirkan cara tambahan (Homebrew atau php-osx), yang sangat mudah.
Walau bagaimanapun, PHP yang disertakan dengan sistem hanya mempunyai konfigurasi asas Jika anda ingin membangunkan PHP, Xdebug masih diperlukan. Berikut ialah ringkasan cara menambah modul Xdebug pada PHP yang disertakan sistem dalam macOS High Sierra. [Disyorkan: Tutorial PHP7]
Persekitaran asas (maklumat MacOS dan PHP)
- macOS High Sierra: v10.13.3
- PHP: v7.1.7
Memasang Xdebug
Dokumen pemasangan tapak web rasmi Xdebug mempunyai kaedah yang disyorkan untuk MAC, memandangkan sistem dilengkapi dengan PHP Ianya v7.1.7, jadi apabila memilih, anda perlu memilih pakej pemasangan php71-xdebug.
Selain itu, kerana php71-xdebug dalam brew bergantung pada php71, adalah disyorkan untuk menambah parameter --without-homebrew-php
. Dalam kes ini brew akan mengabaikan pemasangan php71.
brew install php71-xdebug --without-homebrew-php
Walau bagaimanapun, pada masa ini, anda mungkin menghadapi ralat berikut:
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:
menggesa bahawa kebergantungan tiada, menyebabkan phpize
tidak berfungsi dengan betul digunakan Untuk menyediakan persekitaran kompilasi pustaka sambungan PHP Secara teori, PHP yang disertakan dengan sistem sepatutnya mempunyai phpize
, tetapi modul yang diperlukan tidak ditemui dalam phpize
, dan apabila mencari /usr/include/php/*
, ia. didapati bahawa direktori ini tidak wujud sama sekali. /usr/include
Dalam sistem sebelum OSX v10.10, anda perlu membuat pautan lembut secara manual untuk menyelesaikan masalah: /usr/include
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /usr/includejuga tidak akan berfungsi):
sudo
ln: /usr/include: Operation not permittedAlat Talian Perintah
yang disediakannya masalah di atas, kita hanya perlu memasang Alat Baris Perintah boleh menyelesaikannya:
Seterusnya, ikut arahan, pasang, setuju dengan perjanjian...xcode-select --install
Tunggu pemasangan selesai, Kemudian gunakan
untuk memasang php71-xdebug:
Selepas semuanya selesai, brew akan memberikan gesaan: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!Dayakan PHP
Kemudian mulakan semula :
php.ini
Selepas menjalankan
[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
php-fpm
# 关闭php-fpm sudo killall php-fpm # 启动php-fpm sudo php-fpm
php -i "(command-line 'phpinfo()')" | grep xdebug
VSCode ialah salah satu alat pembangunan yang paling popular pada masa ini. Walaupun ia ringan, ia tidak kalah dengan pelbagai IDE Ia adalah kerja hati nurani Microsoft Dengan memasang Plug-in yang berbeza boleh memanjangkan keupayaannya Antaranya ialah pemalam
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 ..., yang boleh digunakan sebagai jambatan kepada Xdebug. untuk memudahkan penyahpepijatan PHP secara langsung melalui Xdebug Penerangan rasmi sangat sesuai:
Penyesuai Nyahpepijat PHP untuk Kod Visual Studio
Arahan di laman web rasmi juga agak bagus:
Pasang XDebugSaya amat mengesyorkan anda membuat fail
yang mudah, letakkan pernyataandi sana, kemudian salin output dan tampalkannya ke dalam wizard pemasangan XDebug. Ia akan menganalisisnya dan memberi anda arahan pemasangan yang disesuaikan untuk persekitaran anda.
- Dayakan penyahpepijatan jauh dalam php.ini anda:
Ringkasnya:test.php
Pada Windows: Muat turun DLL tersusun yang sesuai untuk anda Versi PHP, seni bina (64/32 Bit), keselamatan benang (TS/NTS) dan versi pengkompil Visual Studio dan letakkannya dalam folder sambungan PHP anda.phpinfo();
Di Linux: Sama ada muat turun kod sumber sebagai tarball atau klon dengan git, kemudian susun.Konfigurasikan PHP untuk menggunakan XDebug dengan menambahkan
- pada php.ini anda.
Laluan php.ini anda ditunjukkan dalam output- anda di bawah "Fail Konfigurasi Dimuatkan".
[XDebug] xdebug.remote_enable = 1 xdebug.remote_autostart = 1There are other ways to tell XDebug to connect to a remote debugger than
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了。