[英]How to compile and use php extensions on Mac OS Mojave
我剛剛安裝了新的OSX Mojave,你知道它預裝了PHP 7.1.19,只有幾個擴展可用。
首先,我不是自制軟件或任何其他軟件包管理器的粉絲,也不是禁用安全工具,即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
有沒有辦法簽署新編譯的擴展,可能使用ad-hoc簽名方法或其他什么?
我知道有很多關於這個問題的其他主題但是所有這些都沒有得到答復,或者至多建議使用自制軟件來解決問題!
謝謝
之后,好多天試圖讓intl
與內置的PHP我結束了一個強大的解決方案而努力!
首先,我必須說這個答案與代碼簽名無關!
這是我所做的,我忽略了內置的包(php,apache)並從源代碼編譯了兩個,現在我已經安裝了最新版本的intl擴展,像魅力一樣運行,構建新的擴展是一塊蛋糕和PHP運行它們沒有嘮叨:)
我真的不明白為什么人們使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.