我正在设置一个新的 macbook(Monterey 12.2.1 芯片 Apple M1 Pro),并安装了 PHP 7.4 和 homebrew。我将 PHP 配置为作为 MacOS (Apache/2.4.51) 附带的 Apache2 服务器的模块运行。我立即遇到了麻烦,因为在我对它进行代码签名之前,看门人不允许我将 php 作为 apache 模块从 homebrew 运行。我确实对它进行了代码设计:
codesign --sign "Mike Andersen" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
之后 PHP 完美运行。然后我用 PECL 安装了 xdebug:arch -x86_64 sudo pecl install xdebug
当我从命令行检查它时,一切看起来都正确:
php -v
PHP 7.4.28 (cli) (built: Feb 28 2022 07:33:39) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies
with Xdebug v3.1.3, Copyright (c) 2002-2022, by Derick Rethans
php --ini
Configuration File (php.ini) Path: /opt/homebrew/etc/php/7.4
Loaded Configuration File: /opt/homebrew/etc/php/7.4/php.ini
Scan for additional .ini files in: /opt/homebrew/etc/php/7.4/conf.d
Additional .ini files parsed: /opt/homebrew/etc/php/7.4/conf.d/20-ext-opcache.ini,
/opt/homebrew/etc/php/7.4/conf.d/99-xdebug.ini
但从浏览器加载失败 - 浏览器列出了 99-xdebug.ini 文件:
Additional .ini files parsed /opt/homebrew/etc/php/7.4/conf.d/20-ext-opcache.ini, /opt/homebrew/etc/php/7.4/conf.d/99-xdebug.ini
但没有关于 xdebug 的其他内容。我检查了 apache 错误日志并看到:
Failed loading /opt/homebrew/lib/php/pecl/20190902/xdebug.so:
dlopen(/opt/homebrew/lib/php/pecl/20190902/xdebug.so, 0x0009):
tried: '/opt/homebrew/lib/php/pecl/20190902/xdebug.so'
(code signature in <8E9B311F-7332-3812-89A8-91BA8FB71682> '/opt/homebrew/lib/php/pecl/20190902/xdebug.so'
not valid for use in process: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?)),
'/usr/lib/xdebug.so' (no such file)
我也尝试签署 xdebug.so 文件:
codesign --sign "Mike Andersen" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/lib/php/pecl/20190902/xdebug.so
/opt/homebrew/lib/php/pecl/20190902/xdebug.so: replacing existing signature
并重新启动了 apache,但在 apache 日志中仍然出现相同的错误。我也试过重新签名 PHP,没有帮助。我也尝试过禁用网守:
sudo spctl --master-disable
那也没什么区别。
我整个早上都在谷歌上搜索,找不到任何关于如何解决这个问题的信息。现在一定有人已经看到了,所以我希望你们中的一个人是那个人,可以帮助兄弟。提前感谢您提供的任何帮助。