mac操作系统升级到10.11.2(OS X EI Capitan)后,系统自带的php也被修改覆盖了;之前安装的php扩展全无法继续使用了;而mcrypt扩展急需使用,可是怎么安装都无法安装成功;困扰了好久。编译后执行安装时总是提示
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">[cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@17000#: Operation not permitted]</span> Copier après la connexion |
终于找到了问题所在
当你进入/usr/lib/php/extensions/目录时你会发现目录根本无法操作(手动拷贝、移动),使用root在终端也没有权限;可是不可能啊?我已经是root用户了,为什么还不允许;原来是OSX 10.11 El Capitan新添加了一个新的安全机制叫系统完整性保护System Integrity Protection (SIP),所以对于目录
仅仅供系统使用,其它用户或者程序无法直接使用,而我们的/usr/lib/php/extensions/刚好在受保护范围内
所以解决方法就是禁掉SIP保护机制,步骤是:
禁止掉SIP后,就可以顺利的安装了,当然装完了以后你可以重新打开SIP,方法同上,只是命令是csrutil enable
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">cd ~ ; mkdir mcrypt ; cd mcrypt</span> Copier après la connexion |
分别下载
libmcrypt2.5.8、你系统的php版本到mcrypt目录
解压
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">tar -zxvf libmcrypt-2.5.8.tar.gz tar -zxvf php-5.5.27.tar.gz rm *.gz</span> Copier après la connexion |
安装libmcrypt
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">cd libmcrypt-2.5.8 ./configure make sudo make install</span> Copier après la connexion |
安装autoconf
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">cd ~/mcrypt curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz tar xvfz autoconf-latest.tar.gz cd autoconf-2.69/ ./configure make sudo make install</span> Copier après la connexion |
编译mcrypt的php扩展
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">cd ../php-5.5.27/ext/mcrypt/ /usr/bin/phpize</span> Copier après la connexion |
上面会输出:
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">Configuring for: PHP Api Version: 20121113 Zend Module Api No: 20121212 Zend Extension Api No: 220121212</span> Copier après la connexion |
接着编译:
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">./configure make sudo make install</span> Copier après la connexion |
上面会输出:
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20121212/</span> Copier après la connexion |
如果出现错误(我遇到的):
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@17000#: Operation not permitted</span> Copier après la connexion |
就说明你需要先禁掉SIP(如何禁掉SIP见上面)
修改/etc/php.ini,增加扩展extension=mcrypt.so
再重启apache
<span class="line">1</span> Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion Copier après la connexion |
<span class="line">sudo apachectl restart</span> Copier après la connexion |
再看你的phpinfo();就会出现mcrypt信息了;
(我的博客原文:http://www.jmolboy.com/2015/12/01/mcrypt-extension-on-EI-Capitan/)