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

本文介绍了解决MacOS Sierra或OSX El Capitan系统中安装PHP扩展遇到的问题。由于系统完整性保护(SIP)机制,导致无法安装扩展。通过禁用SIP,可以成功安装如php-redis等扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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.youkuaiyun.com/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.youkuaiyun.com/chong2230/article/details/25964965





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rudon滨海渔村

花的越多,赚得越多...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值