macos — Как скомпилировать и использовать расширения php в Mac OS Mojave

Я только что установил новый OSX Mojave, и, как вы знаете, он поставляется с предварительно установленной PHP 7.1.19 с несколькими доступными расширениями.

Прежде всего, я не фанат homebrew или любых других менеджеров пакетов, а также не отключаю утилиты безопасности, т.е. csrutil.

Я успешно скомпилировал расширение intl, но apache не загружает его из-за проблемы с подписью кода:

PHP Startup: Unable to load dynamic library 'intl.so' - dlopen(intl.so, 0x0009): code signature in (intl.so) not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed. in Unknown on line 0

Есть ли способ подписать вновь скомпилированные расширения, возможно, с помощью специального метода подписи или чего-то еще?

Я знаю, что есть много других тем по этой проблеме, но все они остаются без ответа или, по крайней мере, предлагают обходные пути для домашнего приготовления!

Спасибо

6

Решение

После нескольких дней, пытаясь получить intl Для работы со встроенным PHP я получил надежное решение!

Во-первых, я должен сказать, что этот ответ не имеет ничего общего с подписью кода!

Вот что я сделал, я проигнорировал встроенный пакет (php, apache) и скомпилировал оба из исходного кода, и теперь у меня установлена ​​последняя версия обоих, с расширением intl, работающим как чудо, создание новых расширений — это просто и php запускает их без ворчания 🙂

Я не очень понимаю, почему люди используют homebrew для такой вещи, в то время как вы можете легко скомпилировать библиотеки и расширения самостоятельно.

Я надеюсь, что этот ответ поможет кому-то там.

3

Другие решения

У меня тоже есть такая же проблема. Все решают проблему с домашним пивом …

codesign -vd /usr/lib/php/extensions/no-debug-non-zts-20160303/x.so
/usr/lib/php/extensions/no-debug-non-zts-20160303/x.so: code object is not signed at all


codesign -vd /usr/lib/php/extensions/no-debug-non-zts-20160303/opcache.so
Executable=/usr/lib/php/extensions/no-debug-non-zts-20160303/opcache.so
Identifier=com.apple.opcache
Format=Mach-O thin (x86_64)
CodeDirectory v=20100 size=2914 flags=0x0(none) hashes=87+2 location=embedded
Platform identifier=5
Signature size=4485
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=68


codesign -vd /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Executable=/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Identifier=com.apple.xdebug
Format=Mach-O thin (x86_64)
CodeDirectory v=20100 size=1985 flags=0x0(none) hashes=58+2 location=embedded
Platform identifier=5
Signature size=4485
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=64
0

По вопросам рекламы [email protected]