Mac Catalina 安装 Xdebug
Mac Catalina Install Xdebug
我整天都在努力让 xdebug 工作。我已经尝试完全重新安装自制软件,清除 php 并安装最新版本,重新安装 apache(以下:https://getgrav.org/blog/macos-catalina-apache-multiple-php-versions),现在尝试使用 pecl 以及源代码 xdebug 和我进行安装继续得到错误。尝试通过 pecl 安装:
sudo pecl install xdebug
Password:
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in Validator.php on line 1933
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/local/pear/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user
robshpiel1@iPutz47 ~ % pecl config-get php_dir
/usr/lib/php/
robshpiel1@iPutz47 ~ % sudo chown robshpiel1 /usr/lib/php
chown: /usr/lib/php: Read-only file system
robshpiel1@iPutz47 ~ % pecl config-set php_dir /usr/local/opt/php@7.2/
config-set succeeded
robshpiel1@iPutz47 ~ % sudo pecl install xdebug
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in Validator.php on line 1933
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/local/pear/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading xdebug-2.9.0.tgz ...
Starting to download xdebug-2.9.0.tgz (242,853 bytes)
..................................................done: 242,853 bytes
Fatal error: Cannot use result of built-in function in write context in /usr/local/pear/share/pear/Archive/Tar.php on line 639
或者当从实际来源制作时,我在 make install 上得到以下信息:
robshpiel1@iPutz47 xdebug % sudo make install
Password:
Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20180731/
cp: /usr/lib/php/extensions/no-debug-non-zts-20180731/#INST@4741#: Read-only file system
make: *** [install-modules] Error 1
robshpiel1@iPutz47 xdebug %
Catalina 中的权限和只读文件系统一定有问题,我似乎无法理解它。我什至尝试关闭 SIP。
有什么线索吗?
PHP、Apache、Homebrew、Eclipse 都已安装并正常工作..只是无法让 xdebug 工作。
每个错误都有不同的原因。
首先,您的 sudo pecl install
通常是安装 Xdebug 的正确方法,因为正如您所发现的,您可以使用 pecl config-set
.
设置安装目录
但是,您 运行 正在使用的 pecl/pear 版本可能是 PHP 的 旧 版本。因为 PHP 确实会偶尔更改,所以 pecl 工具也需要更新。对于 PHP 7.2,我 运行 pecl 版本 1.10.9(你可以用 pecl -V
检查)。我认为你 运行ning 的年龄要大一些。通常您可以使用 pear upgrade pear
更新 pear/pecl,但您可能会再次 运行 进入不可写目录问题。
其次,sudo make install
失败,因为它试图写入不可写的目录 (/usr/lib/php/extensions/no-debug-non-zts-20180731/
)。如果您知道正确的目录是什么(检查 php -i | grep extensions
),您可以自己将其复制到该目录中。在 make
阶段之后,Xdebug 源代码树中的 modules
目录中应该有一个 xdebug.so
。
解决后一个问题的"official"方法是使用Xdebug的./configure
行的--with-php-config
选项,您可以在其中指定要用于Xdebug的选项类似于:./configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config
(但请检查路径,因为我没有在此处设置 Mac)。然后这应该选择正确的扩展目录,并且 sudo make install
应该工作。
好的,感谢 Derek 的帮助,我成功了。这是我为完整 Mac PHP 开发设置所做的:
0) 如果还没有安装先决条件软件(自制软件、xcode 等)
Xcode 命令行工具:
$ xcode-select --install
自制软件:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Catalina Required Libraries:
Catalina 所需的库:
$ brew install openldap libiconv
1) 完全卸载 php、httpd (apache),并删除 xdebug 文件(如果您已经安装了它们):
$ brew update
$ brew upgrade
$ brew cleanup
$ brew list | grep php
根据brew list命令找到你安装的php的任何版本然后卸载它们,例如:
brew uninstall --force php72
清除任何旧的 php 配置
rm -Rf /usr/local/etc/php/*
2) 安装 Apache
如果您已经安装了内置的 Apache 运行ning,则需要先将其关闭,并删除所有自动加载脚本:
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
安装阿帕奇:
$ brew install httpd
将 Apache 设置为自动启动:
$ sudo brew services start httpd
您现在应该可以转到 http://localhost:8080 并查看 "It Works" 消息。
3) 配置 Apache
使用您最喜欢的文本编辑器,打开 /usr/local/etc/httpd/httpd.conf
找到 Listen 8080
行并将其更改为 Listen 80
如果需要,请更改为提供网站服务的默认目录。搜索术语 DocumentRoot
并将值更改为您想要的位置。我用过:
/Library/WebServer/Documents
但你可以把它放在任何你喜欢的地方(例如/Users/your_user/Sites
)
您还需要更改 DocumentRoot 行正下方的标记引用。这也应该更改为指向您的新文档根目录:
/Library/WebServer/Documents
在同一块中,您会发现一个 AllowOverride 设置,应将其更改为:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
此外,我们现在应该启用默认情况下被注释掉的 mod_rewrite。搜索 mod_rewrite.so 并通过删除前导 #:
取消注释该行
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
更改用户和组以匹配您当前登录的用户:
User your_user
Group staff
将服务器名称更改为 localhost
保存文件。
重新启动 Apache 以确保您的更改生效:
$ sudo apachectl -k restart
3) 安装PHP
我安装了 php 7.2,尽管它不是最新的,只是因为我的托管站点和 wordpress 使用 php 7.2,我想将我的 php 应用程序与我的 wordpress 集成地点。
$ brew install php@7.2
安装 php 后,返回您的 httpd.conf 文件并添加以下行:
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
在之前未注释的 LoadModule 下方重写上一步的 _module。
您还必须明确设置 PHP 的目录索引,因此搜索此块:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
复制并替换为:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
保存文件并再次重启apache服务器:
$ sudo apachectl -k restart
4) 验证 php 安装
只需在您之前使用此一行创建的 Sites/ 文件夹中创建一个名为 info.php 的文件即可。
echo "<?php phpinfo();" > ~/Sites/info.php
将浏览器指向 http://localhost/info.php,您应该会看到 PHP 信息页面。
Homebrew 应该在安装过程中将其首选 /usr/local/bin 和 /usr/local/sbin 添加到您的路径中。通过键入快速测试:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Apple/bin
如果您没有看到它,您可能需要手动将它们添加到您的路径中。根据您使用的 shell,您可能需要将此行添加到 ~/.profile、~/.bash_profile 或 ~/.zshrc:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5) 安装 Xdebug。
如果命令:
$ pecl install xdebug
失败,因为 phpize 没有返回正确的信息,或者它试图写入它不能写入的文件夹,或者它找不到 php.h,等等,就像它对我所做的那样等等启动此 post,尝试以下操作:
首先,您需要确保Xcode和命令行工具已安装。打开终端 window 和 运行 以下命令显示 SDK 路径:
$ xcrun --show-sdk-path
此命令应输出如下内容:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
如果没有,请使用步骤 0 中列出的命令安装它们。
现在在您的主文件夹中为 phpize 创建一个新文件夹:
$ mkdir ~/php-private/
并将以下文件复制到其中:
$ cp /usr/bin/phpize ~/php-private/
打开文本编辑器,创建一个包含以下补丁代码的文件:
--- /usr/bin/phpize 2019-09-11 02:46:18.000000000 +0200
+++ ./phpize 2019-12-26 23:10:32.000000000 +0100
@@ -1,11 +1,12 @@
#!/bin/sh
# Variable declaration
+XCODE_SDK_ROOT=$(/usr/bin/xcrun --show-sdk-path)
prefix='/usr'
datarootdir='/usr/php'
exec_prefix="`eval echo ${prefix}`"
phpdir="`eval echo ${exec_prefix}/lib/php`/build"
-includedir="`eval echo ${prefix}/include`/php"
+includedir="`eval echo ${XCODE_SDK_ROOT}${prefix}/include`/php"
builddir="`pwd`"
SED="/usr/bin/sed"
将该文件另存为 phpize-catalina.patch 在您的新 php-private 文件夹中(一定要 cd 到该文件夹)。
接下来修补你的新副本 phpize:
$ patch ~/php-private/phpize < phpize-catalina.patch
接下来,下载最新的xdebug源文件,我是2.9.0
$ git clone git://github.com/xdebug/xdebug.git
那应该已经将所有源文件下载到~/xdebug 路径。将目录更改为此路径。
$ cd ~/xdebug
现在 运行 我们修补的 phpize 文件:
$ ~/php-private/phpize
您应该看到以下输出:
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
如果您收到错误:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
说明你没有安装autoconf。尝试:
$ brew install autoconf
收到 phpize 的上述输出后,配置并安装 xdebug:
./configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config
这应该使用您在第 3 步中通过自制软件安装的 php 配置。
现在构建扩展:
$ make
现在安装它:
$ make install
您应该会看到如下内容:
Installing shared extensions: /usr/local/Cellar/php@7.2/7.2.26/pecl/20170718/
+----------------------------------------------------------------------+
| |
| INSTALLATION INSTRUCTIONS |
| ========================= |
| |
| See https://xdebug.org/install.php#configure-php for instructions |
| on how to enable Xdebug for PHP. |
| |
| Documentation is available online as well: |
| - A list of all settings: https://xdebug.org/docs-settings.php |
| - A list of all functions: https://xdebug.org/docs-functions.php |
| - Profiling instructions: https://xdebug.org/docs-profiling2.php |
| - Remote debugging: https://xdebug.org/docs-debugger.php |
| |
| |
| NOTE: Please disregard the message |
| You should add "extension=xdebug.so" to php.ini |
| that is emitted by the PECL installer. This does not work for |
| Xdebug. |
| |
+----------------------------------------------------------------------+
现在您需要将扩展名添加到您的 php.ini 文件中。使用您喜欢的编辑器修改 /usr/local/etc/php/7.2/php.ini
(打开文本编辑器时不要忘记 sudo)并将其添加到最底部:
[xdebug]
zend_extension=/usr/local/Cellar/php@7.2/7.2.26/pecl/20170718/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
请注意,您真正需要添加的只是 zend_extension 行,但为了让它与 Eclipse 一起使用,我使用了远程启用标志以及此处列出的其他设置。
最后,重启apache:
$ sudo apachectl -k restart
然后当您刷新之前创建的 info.php 页面时,您应该会在配置中看到 xdebug 行。类似于:
succesful xdebug validation
6) 最后,为了完成 PHP mac 开发设置,我为 php(来自他们的网站)和 [=229= 安装了最新版本的 eclipse ] 服务器(使用自制软件)。您可以 google 如何安装它们,因为它们非常简单。
或者,如果您是 MAC 用户,则可以安装 MAMP。它带有 xdebug 扩展,可以在 MAMP 内置的所有 php 版本中使用。
安装MAMP后,只需在php.ini文件对应PHPPHP
文件中添加这几行即可
对于php8:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php8.0.0/lib/php/extensions/no-debug-non-zts-20200930/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.client_host=localhost
xdebug.remote_port=9003
xdebug.idekey="netbeans-xdebug" // only for netbeans
对于 php 7.4 及更早版本:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.client_port=localhost
xdebug.remote_port=9003
xdebug.idekey="netbeans-xdebug" // only for netbeans
我整天都在努力让 xdebug 工作。我已经尝试完全重新安装自制软件,清除 php 并安装最新版本,重新安装 apache(以下:https://getgrav.org/blog/macos-catalina-apache-multiple-php-versions),现在尝试使用 pecl 以及源代码 xdebug 和我进行安装继续得到错误。尝试通过 pecl 安装:
sudo pecl install xdebug
Password:
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in Validator.php on line 1933
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/local/pear/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user
robshpiel1@iPutz47 ~ % pecl config-get php_dir
/usr/lib/php/
robshpiel1@iPutz47 ~ % sudo chown robshpiel1 /usr/lib/php
chown: /usr/lib/php: Read-only file system
robshpiel1@iPutz47 ~ % pecl config-set php_dir /usr/local/opt/php@7.2/
config-set succeeded
robshpiel1@iPutz47 ~ % sudo pecl install xdebug
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in Validator.php on line 1933
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/local/pear/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading xdebug-2.9.0.tgz ...
Starting to download xdebug-2.9.0.tgz (242,853 bytes)
..................................................done: 242,853 bytes
Fatal error: Cannot use result of built-in function in write context in /usr/local/pear/share/pear/Archive/Tar.php on line 639
或者当从实际来源制作时,我在 make install 上得到以下信息:
robshpiel1@iPutz47 xdebug % sudo make install
Password:
Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20180731/
cp: /usr/lib/php/extensions/no-debug-non-zts-20180731/#INST@4741#: Read-only file system
make: *** [install-modules] Error 1
robshpiel1@iPutz47 xdebug %
Catalina 中的权限和只读文件系统一定有问题,我似乎无法理解它。我什至尝试关闭 SIP。
有什么线索吗?
PHP、Apache、Homebrew、Eclipse 都已安装并正常工作..只是无法让 xdebug 工作。
每个错误都有不同的原因。
首先,您的 sudo pecl install
通常是安装 Xdebug 的正确方法,因为正如您所发现的,您可以使用 pecl config-set
.
但是,您 运行 正在使用的 pecl/pear 版本可能是 PHP 的 旧 版本。因为 PHP 确实会偶尔更改,所以 pecl 工具也需要更新。对于 PHP 7.2,我 运行 pecl 版本 1.10.9(你可以用 pecl -V
检查)。我认为你 运行ning 的年龄要大一些。通常您可以使用 pear upgrade pear
更新 pear/pecl,但您可能会再次 运行 进入不可写目录问题。
其次,sudo make install
失败,因为它试图写入不可写的目录 (/usr/lib/php/extensions/no-debug-non-zts-20180731/
)。如果您知道正确的目录是什么(检查 php -i | grep extensions
),您可以自己将其复制到该目录中。在 make
阶段之后,Xdebug 源代码树中的 modules
目录中应该有一个 xdebug.so
。
解决后一个问题的"official"方法是使用Xdebug的./configure
行的--with-php-config
选项,您可以在其中指定要用于Xdebug的选项类似于:./configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config
(但请检查路径,因为我没有在此处设置 Mac)。然后这应该选择正确的扩展目录,并且 sudo make install
应该工作。
好的,感谢 Derek 的帮助,我成功了。这是我为完整 Mac PHP 开发设置所做的:
0) 如果还没有安装先决条件软件(自制软件、xcode 等)
Xcode 命令行工具:
$ xcode-select --install
自制软件:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Catalina Required Libraries:
Catalina 所需的库:
$ brew install openldap libiconv
1) 完全卸载 php、httpd (apache),并删除 xdebug 文件(如果您已经安装了它们):
$ brew update
$ brew upgrade
$ brew cleanup
$ brew list | grep php
根据brew list命令找到你安装的php的任何版本然后卸载它们,例如:
brew uninstall --force php72
清除任何旧的 php 配置
rm -Rf /usr/local/etc/php/*
2) 安装 Apache
如果您已经安装了内置的 Apache 运行ning,则需要先将其关闭,并删除所有自动加载脚本:
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
安装阿帕奇:
$ brew install httpd
将 Apache 设置为自动启动:
$ sudo brew services start httpd
您现在应该可以转到 http://localhost:8080 并查看 "It Works" 消息。
3) 配置 Apache
使用您最喜欢的文本编辑器,打开 /usr/local/etc/httpd/httpd.conf
找到 Listen 8080
行并将其更改为 Listen 80
如果需要,请更改为提供网站服务的默认目录。搜索术语 DocumentRoot
并将值更改为您想要的位置。我用过:
/Library/WebServer/Documents
但你可以把它放在任何你喜欢的地方(例如/Users/your_user/Sites
)
您还需要更改 DocumentRoot 行正下方的标记引用。这也应该更改为指向您的新文档根目录:
/Library/WebServer/Documents
在同一块中,您会发现一个 AllowOverride 设置,应将其更改为:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
此外,我们现在应该启用默认情况下被注释掉的 mod_rewrite。搜索 mod_rewrite.so 并通过删除前导 #:
取消注释该行LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
更改用户和组以匹配您当前登录的用户:
User your_user
Group staff
将服务器名称更改为 localhost
保存文件。
重新启动 Apache 以确保您的更改生效:
$ sudo apachectl -k restart
3) 安装PHP
我安装了 php 7.2,尽管它不是最新的,只是因为我的托管站点和 wordpress 使用 php 7.2,我想将我的 php 应用程序与我的 wordpress 集成地点。
$ brew install php@7.2
安装 php 后,返回您的 httpd.conf 文件并添加以下行:
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
在之前未注释的 LoadModule 下方重写上一步的 _module。
您还必须明确设置 PHP 的目录索引,因此搜索此块:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
复制并替换为:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
保存文件并再次重启apache服务器:
$ sudo apachectl -k restart
4) 验证 php 安装
只需在您之前使用此一行创建的 Sites/ 文件夹中创建一个名为 info.php 的文件即可。
echo "<?php phpinfo();" > ~/Sites/info.php
将浏览器指向 http://localhost/info.php,您应该会看到 PHP 信息页面。
Homebrew 应该在安装过程中将其首选 /usr/local/bin 和 /usr/local/sbin 添加到您的路径中。通过键入快速测试:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Apple/bin
如果您没有看到它,您可能需要手动将它们添加到您的路径中。根据您使用的 shell,您可能需要将此行添加到 ~/.profile、~/.bash_profile 或 ~/.zshrc:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5) 安装 Xdebug。
如果命令:
$ pecl install xdebug
失败,因为 phpize 没有返回正确的信息,或者它试图写入它不能写入的文件夹,或者它找不到 php.h,等等,就像它对我所做的那样等等启动此 post,尝试以下操作:
首先,您需要确保Xcode和命令行工具已安装。打开终端 window 和 运行 以下命令显示 SDK 路径:
$ xcrun --show-sdk-path
此命令应输出如下内容:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
如果没有,请使用步骤 0 中列出的命令安装它们。
现在在您的主文件夹中为 phpize 创建一个新文件夹:
$ mkdir ~/php-private/
并将以下文件复制到其中:
$ cp /usr/bin/phpize ~/php-private/
打开文本编辑器,创建一个包含以下补丁代码的文件:
--- /usr/bin/phpize 2019-09-11 02:46:18.000000000 +0200
+++ ./phpize 2019-12-26 23:10:32.000000000 +0100
@@ -1,11 +1,12 @@
#!/bin/sh
# Variable declaration
+XCODE_SDK_ROOT=$(/usr/bin/xcrun --show-sdk-path)
prefix='/usr'
datarootdir='/usr/php'
exec_prefix="`eval echo ${prefix}`"
phpdir="`eval echo ${exec_prefix}/lib/php`/build"
-includedir="`eval echo ${prefix}/include`/php"
+includedir="`eval echo ${XCODE_SDK_ROOT}${prefix}/include`/php"
builddir="`pwd`"
SED="/usr/bin/sed"
将该文件另存为 phpize-catalina.patch 在您的新 php-private 文件夹中(一定要 cd 到该文件夹)。
接下来修补你的新副本 phpize:
$ patch ~/php-private/phpize < phpize-catalina.patch
接下来,下载最新的xdebug源文件,我是2.9.0
$ git clone git://github.com/xdebug/xdebug.git
那应该已经将所有源文件下载到~/xdebug 路径。将目录更改为此路径。
$ cd ~/xdebug
现在 运行 我们修补的 phpize 文件:
$ ~/php-private/phpize
您应该看到以下输出:
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
如果您收到错误:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
说明你没有安装autoconf。尝试:
$ brew install autoconf
收到 phpize 的上述输出后,配置并安装 xdebug:
./configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config
这应该使用您在第 3 步中通过自制软件安装的 php 配置。
现在构建扩展:
$ make
现在安装它:
$ make install
您应该会看到如下内容:
Installing shared extensions: /usr/local/Cellar/php@7.2/7.2.26/pecl/20170718/
+----------------------------------------------------------------------+
| |
| INSTALLATION INSTRUCTIONS |
| ========================= |
| |
| See https://xdebug.org/install.php#configure-php for instructions |
| on how to enable Xdebug for PHP. |
| |
| Documentation is available online as well: |
| - A list of all settings: https://xdebug.org/docs-settings.php |
| - A list of all functions: https://xdebug.org/docs-functions.php |
| - Profiling instructions: https://xdebug.org/docs-profiling2.php |
| - Remote debugging: https://xdebug.org/docs-debugger.php |
| |
| |
| NOTE: Please disregard the message |
| You should add "extension=xdebug.so" to php.ini |
| that is emitted by the PECL installer. This does not work for |
| Xdebug. |
| |
+----------------------------------------------------------------------+
现在您需要将扩展名添加到您的 php.ini 文件中。使用您喜欢的编辑器修改 /usr/local/etc/php/7.2/php.ini
(打开文本编辑器时不要忘记 sudo)并将其添加到最底部:
[xdebug]
zend_extension=/usr/local/Cellar/php@7.2/7.2.26/pecl/20170718/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
请注意,您真正需要添加的只是 zend_extension 行,但为了让它与 Eclipse 一起使用,我使用了远程启用标志以及此处列出的其他设置。
最后,重启apache:
$ sudo apachectl -k restart
然后当您刷新之前创建的 info.php 页面时,您应该会在配置中看到 xdebug 行。类似于:
succesful xdebug validation
6) 最后,为了完成 PHP mac 开发设置,我为 php(来自他们的网站)和 [=229= 安装了最新版本的 eclipse ] 服务器(使用自制软件)。您可以 google 如何安装它们,因为它们非常简单。
或者,如果您是 MAC 用户,则可以安装 MAMP。它带有 xdebug 扩展,可以在 MAMP 内置的所有 php 版本中使用。
安装MAMP后,只需在php.ini文件对应PHPPHP
文件中添加这几行即可对于php8:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php8.0.0/lib/php/extensions/no-debug-non-zts-20200930/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.client_host=localhost
xdebug.remote_port=9003
xdebug.idekey="netbeans-xdebug" // only for netbeans
对于 php 7.4 及更早版本:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.client_port=localhost
xdebug.remote_port=9003
xdebug.idekey="netbeans-xdebug" // only for netbeans