Mac OS Sierra 安装PHP扩展 Operation not permitted

Posted GetLastError

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS Sierra 安装PHP扩展 Operation not permitted相关的知识,希望对你有一定的参考价值。

想看详细解读的可以 点这里  只需要解决问题直接往下看就好

---------------------------------------------------分 割 线-------------------------------------------------------

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保护机制:

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

禁止掉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的主要内容,如果未能解决你的问题,请参考以下文章

安装 RODBC Mac OS Sierra 10.12.3

python 在Python 3.5上的Mac OS Sierra上安装OpenCV

如何在 MAC Sierra (MAMP) 上为 PHP7.1 启用 OPCache

如何在 Mac OS Sierra 10.12 上安装 Nokogiri

Mac OS Sierra 上的 Apache:非法指令:4 $HTTPD

在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient