Подпись кода в oci8.so недействительна при включенном SIP в Macos Mojave - PullRequest
0 голосов
/ 23 марта 2020

Я установил oci8 через PECL на Macos Mojave для использования с PHP, и у меня все это работало, пока я снова не включил SIP. Теперь я получаю следующую ошибку при попытке использовать oci8:

PHP Предупреждение: PHP Запуск: не удается загрузить Dynami c library '/ 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) недопустимо для использования в процессе: в отображаемом файле нет cdha sh, полностью без знака? Код должен быть подписан как минимум ad-ho c. в поле «Неизвестно» в строке 0

Я погуглил глаза, но единственные «подсказки», которые я смог найти, - это отключить Apache и PHP и установить все заново через brew. Ну, это не вариант. Также я нашел других, которые просто подписывали dylibs с кодом. Но это .so, и я не знаю, можно ли его кодировать. Кроме того, у меня нет учетной записи Apple Developer, поэтому codesign -s MyID не будет работать, AFAIK.

Поэтому мой вопрос: есть ли у кого-нибудь элегантное решение моей проблемы?

I ' m работает на Macos 10.14.6, PHP 7.1 с переустановленными версиями PEAR & PECL, Xcode, заголовков Xcode в / usr / include (для PECL), Oracle в /opt/oracle/instantclient_19_3/.

Заранее спасибо!

1 Ответ

0 голосов
/ 24 марта 2020

Поместите библиотеки Instant Client в ~/lib или /usr/local/lib. Вам, вероятно, нужно сделать последнее. См. 3.5.4 в https://oracle.github.io/node-oracledb/INSTALL.html#instosx

...