當前位置:
首頁 > 最新 > Mac OS如何關閉內核保護?

Mac OS如何關閉內核保護?

我們在mac上做php開發時,需要自己去編譯一些php擴展,通常的步驟可能如下:

在make階段我們很有可能會碰到以下錯誤:

grep: /usr/include/php/main/php.h: No such file or directory

grep: /usr/include/php/Zend/zend_modules.h: No such file or directory

grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory

Configuring for:

PHP Api Version:

Zend Module Api No:

Zend Extension Api No:

出現上面錯誤的原因是因為,mac下編譯所用到的一些頭文件並不在/usr/include下,而是存在於路徑:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/php,這時我們處理此問題的方法有2種:

完成上面步驟後,再make,發現可以正常編譯。

然後make install,發現又有新的錯誤:

/usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@870#: Permi-sion denied

然後我們嘗試手動複製編譯好的擴展xxyy.so到/usr/lib/php/extensions/no-debug-non-zts-20121212目錄下,還是會提示許可權不足,即使sudo成root操作也沒有用。導致此問題的原因是新版本到MAC OS新添加了一個新的安全機制叫系統完整性保護,對於以下目錄安全性保護,僅能對系統使用。因此我們在這些目錄中就無法做創建、刪除、編輯等操作,這些目錄包含:

我們所要安裝的php擴展剛好包含在這些目錄下,因此就有了上面的「Permi-sion denied」錯誤,好在mac提供了關閉內核保護機制,方法如下:

完成以上步驟後再cp xxyy.so

擴展安裝完成後,我們恢復內核保護,還是之行上面步驟,把步驟4到命令換成「csrutil enable」即可


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

TAG:全球大搜羅 |