mac 安装memcached.so扩展

本文介绍在MacOS环境下安装Memcached PHP扩展的具体步骤,包括下载源码、配置环境及解决因SIP保护机制导致的安装问题。提供了一种无需禁用SIP的替代方案。

一:下载源码包

http://pecl.php.net/package/memcached     (PHP5.6选择2.2.0版本,PHP7选择3.X版本)

 

二:解压下载的文件 

tar zxvf memcached-3.1.3.tar

 

三:执行命令

1:cd memcached-3.1.3

2:phpize        //执行phpize命令生成configure建立php外挂模块

3:./configure --prefix=/usr/local/Cellar/php\@7.1/7.1.19/bin/php-config      //根据自己的php-config地址

4:make && make install(mac会报错,除非你的mac OSX 系统版本低)

leyangjundeMacBook-Pro:memcached-3.1.3 leyangjun$ make install

Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20160303/

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

make: *** [install-modules] Error 1

leyangjundeMacBook-Pro:memcached-3.1.3 leyangjun$ make && make install

/bin/sh /Users/leyangjun/Downloads/memcached-3.1.3/libtool --mode=install cp ./memcached.la /Users/leyangjun/Downloads/memcached-3.1.3/modules

cp ./.libs/memcached.so /Users/leyangjun/Downloads/memcached-3.1.3/modules/memcached.so

cp ./.libs/memcached.lai /Users/leyangjun/Downloads/memcached-3.1.3/modules/memcached.la

----------------------------------------------------------------------

Libraries have been installed in:

   /Users/leyangjun/Downloads/memcached-3.1.3/modules

 

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

   - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable

     during execution

 

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

 

Build complete.

Don't forget to run 'make test'.

 

Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20160303/

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

make: *** [install-modules] Error 1

 

报错信息:

Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20160303/

cp: /usr/lib/php/extensions/no-debug-non-zts-20160303/#INST@49327#: Operation not permitted     即使sudo make && make install也一样会报错

 

错误原因:

因为是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。

 

以上解决方法可以不用,直接用该步骤也可以完成安装:

      源码文包文件里面的model已经有对应memcached.so文件(若没有,make && make install编译后在看下),仔细看编译过程会有这个命令:cp ./.libs/memcached.so /Users/leyangjun/Downloads/memcached-3.1.3/modules/memcached.so 相关的拷贝动作

      把memcached.so文件直接拷贝到你的扩展目录下面就行

leyangjundeMacBook-Pro:20160303 leyangjun$ cp /Users/leyangjun/Downloads/memcached-3.1.3/modules/memcached.so ./

 

leyangjundeMacBook-Pro:20160303 leyangjun$ pwd

/usr/local/Cellar/php@7.1/7.1.19/pecl/20160303

leyangjundeMacBook-Pro:20160303 leyangjun$ ll

total 1304

-rwxr-xr-x  1 leyangjun  admin   71332  8  9  2018 memcache.so

-rwxr-xr-x  1 leyangjun  admin  115416  3 29 13:46 memcached.so

-rwxr-xr-x  1 root       admin  471948  8  9  2018 redis.so

 

查看自己的扩展目录地址在php.ini文件中就可以查看 (vi php.ini)

extension_dir=/usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/   --这就是分区目录

extension=memcached.so   --在此增加对应扩展名

 

重启PHP:

sudo pkill -9 php-fpm

sudo /usr/local/Cellar/php\@7.1/7.1.19/sbin/php-fpm -D

 

增加完配置后,重启PHP即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值