wake-up-neo.com

So kompilieren und verwenden Sie PHP-Erweiterungen unter Mac OS Mojave

Ich habe gerade den neuen OSX Mojave installiert, und wie Sie wissen, ist PHP 7.1.19 mit nur wenigen verfügbaren Erweiterungen vorinstalliert.

Zuallererst bin ich kein Fan von Homebrew oder anderen Paketmanagern sowie der Deaktivierung von Sicherheitsfunktionen, d. H. Csrutil.

Ich habe die Intl-Erweiterung erfolgreich kompiliert, aber Apache lädt sie aufgrund eines Codesignaturproblems nicht:

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

Gibt es eine Möglichkeit, die neu kompilierten Erweiterungen zu signieren, möglicherweise mithilfe einer Ad-hoc-Signaturmethode oder so etwas?

Ich weiß, dass es viele andere Themen zu diesem Thema gibt, aber alle sind unbeantwortet geblieben oder weisen meistens auf homebrew Art von Problemumgehungen hin!

Vielen Dank

6
Pooya Raki

Nach Tagen und Tagen versuchte ich intl mit dem eingebauten PHP zu arbeiten und bekam eine robuste Lösung!

Zuerst muss ich sagen, dass diese Antwort nichts mit Code Signing zu tun hat!

Hier ist, was ich getan habe, das eingebaute Paket (PHP, Apache) wurde ignoriert und sowohl vom Quelltext kompiliert als auch ich habe die neueste Version von beiden installiert, die mit der Intl-Erweiterung installiert wurde und wie ein Zauber läuft. Das Erstellen neuer Erweiterungen ist ein Kinderspiel und PHP führt sie ohne nörgeln :)

Ich verstehe nicht wirklich, warum Leute homebrew für so etwas verwenden, während Sie Bibliotheken und Erweiterungen leicht selbst kompilieren können.

Ich hoffe, diese Antwort hilft jemandem da draußen.

3
Pooya Raki

Ich habe auch das gleiche Problem. Jeder löst das Problem mit Homebrew ... 

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