Apache 无法在 Mac OS Mojave 上加载 PHP 未签名扩展

del*_*les 6 apache-http-server macos

升级到 MacOS Mojave 后,Apache 无法再加载 PHP 扩展。对于任何扩展,我都会在 Apache 日志中收到以下错误;Apple 似乎通过 Apache 在 MacOS Mojave 上实现了库验证。这使得使用 Apache 加载未签名的二进制文件显然是不可能的。

是否有任何不涉及禁用 MacOS 的 SIP 的解决方法?

Failed loading //usr/local/php/extensions/xdebug.so:  dlopen(//usr/local/php/extensions/xdebug.so, 9): no suitable image found.  Did find:
        //usr/local/php/extensions/xdebug.so: code signature in =(//usr/local/php/extensions/xdebug.so) 
not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? 
Run Code Online (Sandbox Code Playgroud)

代码必须至少经过临时签名。//usr/local/php/extensions/xdebug.so: stat() 失败,errno=22

har*_*ymc 3

在 Mojave 上安装线程 列出了几个独立的解决方法:

  1. 从计算机中卸载 apache 和 php 并清理所有残留物
  2. 从 homebrew 安装 apache 和 php (suneet64 回答)
  3. /etc/apache2/httpd.conf添加到行尾

    LoadModule php7_module libexec/apache2/libphp7.so
    
    Run Code Online (Sandbox Code Playgroud)
  4. 仍然在/etc/apache2/httpd.conf取消注释行 545 中说

    Include /private/etc/apache2/other/*.conf
    
    Run Code Online (Sandbox Code Playgroud)