php - oci8.so 中的代码签名在 Macos Mojave 中启用 SIP 时无效
问题描述
我在 Macos Mojave 上通过 PECL 安装了 oci8,用于 PHP 并且一切正常,直到我再次启用 SIP。现在,当我尝试使用 oci8 时出现以下错误:
PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/extensions/no-debug-non-zts-20160303/oci8.so' - dlopen(/usr/lib/php/extensions/no-debug -non-zts-20160303/oci8.so,0x0009):(/usr/lib/php/extensions/no-debug-non-zts-20160303/oci8.so)中的代码签名在进程中使用无效:映射文件没有cdhash,完全没有签名?代码必须至少是临时签名的。在第 0 行的未知中
我用谷歌搜索了我的眼睛,但我能找到的唯一“提示”是禁用 Apache 和 PHP 并通过 brew 再次安装它们。好吧,这不是一个选择。我还发现其他人只是用 codesign 签署了 dylib。但这是一个.so,我不知道它是否可以被代码签名。此外,我没有 Apple Developer 帐户,因此codesign -s MyID
无法使用,AFAIK。
所以我的问题是:有人对我的问题有一个优雅的解决方案吗?
我正在运行 Macos 10.14.6、PHP 7.1,并重新安装了 PEAR 和 PECL 版本、Xcode、/usr/include 中的 Xcode 标头(用于 PECL)、/opt/oracle/instantclient_19_3/ 中的 Oracle。
提前致谢!
解决方案
将 Instant Client 库放入~/lib
或/usr/local/lib
. 你可能需要做后者。请参阅https://oracle.github.io/node-oracledb/INSTALL.html#instosx中的 3.5.4
推荐阅读
- python - Python 虚拟环境使用与安装不同的模块
- php - 如何在结帐期间获取用户角色并将其存储为用户元?
- ada - 如何保存判别记录的访问类型以供以后使用
- express - 我们如何在使用 express 的自定义服务器中使用 buefy 配置 nuxtjs
- css - ::ng-deep 的范围是什么?
- sql - String_Split 分隔符 '.' SQL 服务器
- kotlin - 使用 Firebase 向地图添加标记
- ruby - 在我的 ruby 控制台上自动加载 Dotenv
- c++ - 如何通过 CMakeLists.txt 在 C++ 项目中使用 Caffe 库
- windows - 如何在 Docker Windows 容器中设置屏幕分辨率?