Mac OS Sierra 安裝PHP擴展 Operation not permitted
阿新 • • 發佈:2017-09-28
問題解決 targe local 菜單 -m ces 操作 phpredis lan
想看詳細解讀的可以 點這裏 只需要解決問題直接往下看就好
---------------------------------------------------分 割 線-------------------------------------------------------
Mac OS Sierra 安裝PHP擴展,在make install 的時候,出現類似
cp: /usr/lib/php/extensions/no-debug-non-zts-20131226/#[email protected]12567#: Operation not permitted make: *** [install-modules] Error 1
的錯誤,是因為是OSX 10.11 El Capitan開始,新添加了一個新的安全機制叫系統完整性保護System Integrity Protection (SIP),所以對於目錄
/System
/sbin
/usr
不包含(/usr/local/)
僅僅供系統使用,其它用戶或者程序無法直接使用,而我們的/usr/lib/php/extensions/剛好在受保護範圍內。
解決辦法是
禁掉SIP保護機制:
- 重啟系統
- 按住Command + R (重新亮屏之後就開始按,象征地按幾秒再松開,出現蘋果標誌,ok)
- 菜單“實用工具” ==>> “終端” ==>> 輸入csrutil disable
- 重啟系統
禁止掉SIP後,就可以順利的安裝了,當然裝完了以後記得重新打開SIP,方法同上,只是命令是csrutil enable。
另附Mac OS 給PHP安裝Redis擴展流程:
curl -O https://nodeload.github.com/nicolasff/phpredis/zip/master tar -zxf master cd phpredis-master/ phpize ./configure make sudo make install # 提示 /usr/lib/php/extensions/no-debug-non-zts-xxxxxxxxx/ 表示成功 vim /etc/php.ini (如果沒有,那就復制一份/etc/php.ini.default之類的並重命名) # 添加下面這句話,告訴PHP要啟用Redis擴展,保存文件 extension=redis.so #重啟apache sudo apachectl restart #查看擴展安裝情況,出現 redis 表示安裝成功。或者看phpinfo() php -m |grep redis
另外:我出現過一個比較蹩腳的問題:
php -m |grep redis 查看確實安裝了Redis擴展,但 phpinfo 中卻沒有,當然啟動項目也是不支持Redis的(tp3.2),以上流程檢查了好幾遍搞了好久都不行,後來
php -i 發現終端中查看的PHP安裝路徑和我修改的php.ini路徑根本就不同,所以說 Apache 啟用的根本就不是我安裝了擴展的 php ,而是我系統中安裝的另一個php。
說來這個問題也怪自己,系統自帶一個php,用homebrew安裝了兩個版本php,通過命令行直接有安裝了一個php,不亂套才怪,後來刪除了 homebrew安裝的PHP,使用了系統自帶的,
再次進行以上操作,問題解決。
推薦一個切換PHP版本的:macOS Sierra上安裝Apache和多個版本的PHP切換 講得很全面了。
Mac OS Sierra 安裝PHP擴展 Operation not permitted