MacOS Sierra或者OS X EI Capitan安装PHP扩展出错

(10.11.x   10.12.x)      

【错误】

装不了php的扩展,make install失败

RudonMacBook:igbinary-master rudon$ make install
Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20131226/
cp: /usr/lib/php/extensions/no-debug-non-zts-20131226/#INST@12567#: Operation not permitted
make: *** [install-modules] Error 1

cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@17000#: Operation not permitted

【缘由】

原来是OSX 10.11 El Capitan(或更高)新添加了一个新的安全机制叫系统完整性保护System Integrity Protection (SIP),所以对于目录
/System
/sbin
/usr
不包含(/usr/local/)
仅仅供系统使用,其它用户或者程序无法直接使用,而我们的/usr/lib/php/extensions/刚好在受保护范围内

【解决】

所以解决方法就是禁掉SIP保护机制,步骤是:

  • 重启系统
  • 按住Command + R   (重新亮屏之后就开始按,象征地按几秒再松开,出现苹果标志,ok)
  • 菜单“实用工具” ==>> “终端” ==>> 输入csrutil disable;执行后会输出:Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
  • 再次重启系统

禁止掉SIP后,就可以顺利的安装了,当然装完了以后你可以重新打开SIP,方法同上,只是命令是csrutil enable

OK!

现在可以正常的编译/添加各种扩展了。

【实例】

mac下安装php-redis扩展

# 参考自http://blog.csdn.net/chong2230/article/details/25964965

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之类的并重命名)
# 添加下面这句话,保存文件
extension=redis.so
#重启apache
sudo apachectl restart
#查看扩展安装情况,出现 redis 表示安装成功。或者看phpinfo()
php -m |grep redis

【关联阅读】

http://www.cnblogs.com/yoainet/archive/2015/12/30/5088171.html

http://blog.csdn.net/chong2230/article/details/25964965

macOS Sierra或者OS X EI Capitan安装PHP扩展出错,Operation not permitted, no-debug-non-zts相关推荐

  1. OS X EI Capitan 安装mysql-5.7.9

    先去下载mysql-5.7.9-osx10.9-x86_64.dmg 安装(一直下一步,输入密码即可)mysql-5.7.9-osx10.9-x86_64.pkg好了,启动MySQL服务. Untit ...

  2. Mac OS X10.11(OS X EI Capitan)安装程序下载

    Mac OS X10.11(OS X EI Capitan)的安装程序(dmg文件)已经上传到百度网盘(直接安装即可).有需要者请加微信公众号:geekculture,并发送capitan或osx获取 ...

  3. Mac Pro 1,1 (2006旧款,A1186 EMC) 安装 OS X EI Capitan 图文教程.md

    1. 硬件准备 CPU 升级 不升级 CPU 也可以,原装双路双核志强(Xeon)5150 可以直接使用 该型号 Mac Pro 工作站可升级的兼容 CPU: X5365 X5355 E5345 E5 ...

  4. 不能验证这个“安装 OS X EI Capitan”应用程序副本解决方法(已修正)

    不能验证这个"安装 OS X EI Capitan"应用程序副本解决方法 最近黑苹果乐园制作的OS X EI Capitan 10.11.3自带Clover USB安装镜像,经过黑 ...

  5. android微信调试网页,Mac OS X EI Capitan 下调试 Android 微信内嵌网页

    做微信开发的朋友一定遇到过这样的问题,在电脑上测试正常的网页到微信里面就出错了,不知道原因只能使用排除法一点点的排除,因为微信客户端无法输出浏览器中抛出的异常信息,对我们开发带来了很大的问题. 在网络 ...

  6. OS X EI Capitan 10.11.1快速升级方法介绍

    公告:本文纯粹是给国内小水管用户而写的,如果你们家网络是100M光线那么就不需要看本文了! 一句话概要本文:在本地山寨从App store服务器上下载安装包的动作! 导读:OS X EI Capita ...

  7. 最详细的制作正式版10 11 OS X El Capitan 安装U盘的方法

    原帖地址: http://bbs.feng.com/read-htm-tid-10036487.html 一.准备工作: 1.准备一个 8GB 或以上容量的 U 盘,确保里面的数据已经妥善备份好(该过 ...

  8. 2014年12月2日更新完英雄联盟一直显示无法连接服务器,【致想玩韩服LOL的Mac用户】macOS Sierra[10.12.4可用]下安装英雄联盟新客户端并连接到韩服服务器...

    本帖子致那些想玩韩服LOL的Mac用户 首先,之前我写过一篇帖子是针对Mac用户用旧客户端玩韩服的,不过Riot Games于2017年4月24日废弃旧客户端,在这段时间到2017年5月6日内,均可以 ...

  9. 制作OS X El CAPITAN安装U盘

    1.无论是在app store下载的El Capitan,还是网上直接下载的dmg镜像(双击即可),将图标拖动到应用程序组中: 2.准备一个空白U盘,使用磁盘工具进行清除(格式化):MAC OS扩展模 ...

  10. Mac OS自带PHP安装redis扩展

    安装redis 在mac OS中可以使用brew命令进行安装redis:mac OS使用brew命令安装软件 安装命令:brew install redis 因为我已经安装过了,这里就不在赘述. 安装 ...

最新文章

  1. 运动桁架下压力信号采集与处理
  2. 如何给容器服务的Docker增加数据盘
  3. jdk与jre的区别 很形象,很清晰,通俗易懂
  4. html 数据钩子,22.钩子函数.html
  5. 【计算机图形学】实验:C#.net环境下的图形变换完整实验操作流程
  6. 打不开磁盘“D:\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。
  7. 一文搞懂IT基础知识,讲通HTTP、TCP、IP、以太网
  8. Windows 命令 netstat 查看网络端口、telnet 检测对方端口是否可用
  9. Ubuntu GitHub操作——使用仓库
  10. Django思维导图-模板
  11. 配置Becon frame中的Carplay的Interworking和Vendor Specific字段信息
  12. 主题: 逆向英语学习方法
  13. 【解读大佑 】〔文/马世芳 吴清圣〕
  14. excel绘制双坐标折线图
  15. 设计原则 - 单一职责原则
  16. MSP430如何使用energia(TI公司的arduino简易编译器)
  17. AI识别PS篡改图像
  18. LeetCode 玩筹码
  19. Python爬虫爬取单张图片
  20. Python练习题答案: 转换货币II【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战

热门文章

  1. js获取当前时间减一周减一个月时间
  2. python之获得文本语料和词汇资源(3)
  3. matlab 相机标定结果解析
  4. 行!20周年,这下我们玩大了!粉丝:太良心
  5. Arcgis栅格数据的像元大小的单位转化
  6. 开源众包的坑,真实记录
  7. 嫦娥四号使用了SPARC抗辐射处理器
  8. 无线上网卡引起的内网不同,添加静态路由
  9. 出栈c语言程序,C语言实现栈的操作,压栈出栈(代码详细讲解)
  10. banner设计技巧分享