/usr/lib/libmemcached:Operation not permitted 报错

这个报错就导致我libmemcached安装不下去
多谢朋友的帮忙,具体解决方法如下:
“重启电脑,电脑黑屏的时候按住 ⌘+R 出现苹果那个图标之后打开终端 输入csrutil disable。之后在重启”
朋友的原话哈哈,原因是操作系统相关的,苹果的有些权限关闭了,使用csrutil disable 把她打开 就可以解决上面的报错
 
 
 
重启之后
继续安装就可以了
 
下面整理一下memcached和memcache在mac电脑上的安装过程
 
系统:mac os 10.11.5
php版本:PHP 5.6.30
 
1、安装服务器端

安装Libevent、memcached包:
安装memcached需要libevent的支持,所以首先需要安装libevent
 
1、去libevent官网下载最新的安装包,如:libevent-2.0.22-stable.tar.gz
2、去 memcached官网 下载最新的安装包。如:memcached-1.4.32.tar.gz。
3、解压libevent-2.0.22-stable.tar.gz并安装:
 
tar xzvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
sudo ./configure --prefix=/usr/local/libevent-2.0.22
sudo make
 
 
Ps: make的最后会提示一个错误,这个错误是因为缺少openssl。 (bufferevent_openssl.c:60:10: fatal error: 'openssl/bio.h' file not found)。 执行如下修改: (下面是软连接,前面的一个路径是openssl文件的目录,如果没有可以用homebrew安装openssl,默认安装目录就是/usr/local/Cellar目录,后面的是libevent目录底下的include文件夹下面的openssl目录地址) ln -s /usr/local/Cellar/openssl/1.0.2g/include/openssl/ ~/Downloads/libevent-2.0.22-stable/include/openssl sudo make sudo make install (安装完成会在/usr/local/目录下生成个libevent-2.0.22目录)
4、解压并安装memcached-1.4.32.tar.gz
 
tar xzvf memcached-1.4.32.tar.gz
cd memcached-1.4.32 (一定要加上--with-libevent的安装目录)
sudo ./configure --prefix=/usr/local/memcached-1.4.32 --with-libevent=/usr/local/libevent-2.0.22
sudo make
sudo make install
 
2、安装客户端

安装Libmemcached、php-memcached扩展
1、去Libmemcached官网下载最新安装包。如:libmemcached-1.0.18.tar.gz
2、去pecl官网下载最新php-memcached扩展包。如:memcached-2.2.0.tgz
3、解压并安装libmemcached-1.0.18.tar.gz
tar xzvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18 ./configure --prefix=/usr/lib/libmemcached --with-memcached
make
sudo make install
 
Ps:如果出现以下问题:
(1)、报错1:
libmemcached/byteorder.cc:66:10: error: use of undeclared identifier 'ntohll' return ntohll(value); libmemcached/byteorder.cc:75:10: error: use of undeclared identifier 'htonll' return htonll(value);
(2)、报错2:
clients/memflush.cc:42:19: error: comparison between pointer and integer ('char *' and 'int') if (opt_servers == false) ~~~~~~~~~~~ ^ ~~~~~ clients/memflush.cc:51:21: error: comparison between pointer and integer ('char *' and 'int') if (opt_servers == false) ~~~~~~~~~~~ ^ ~~~~~
解决如下:
(1)、 编辑libmemcached/byteorder.cc文件
sudo vi libmemcached/byteorder.cc 在 #include "libmemcached/byteorder.h" 下面增加, 以下内容: #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif
(2)、编辑clients/memflush.cc文件
sudo vi clients/memflush.cc 将两处 if (opt_servers == false) 替换成 if (opt_servers == NULL)
4、解压并安装memcached-2.2.0.tgz
 
tar xzvf memcached-2.2.0.tgz
cd memcached-2.2.0
phpize
./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disable-memcached-sasl
make
sudo make install
 
5、修改php.ini
在/Applications/XAMPP/xamppfiles/etc中找到php.ini 并添加扩展 extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/memcached.so
6、重启apache,完成。

Ps:如果安装的是memcache扩展
(1)下载memcache包: http://pecl.php.net/package/memcache
(2)tar -xzf memcache-3.0.8.tgz
(3)cd memcache-3.0.8
(4)phpize
(5)./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config(或:./configure --enable-memcache --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config --with-zlib-dir)
(6)make & make install(如果make install 时提示,没权限,则:sudo make install)
(7)在/Applications/XAMPP/xamppfiles/etc中找到php.ini 并添加:extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/memcache.so
 
 
如果memcached没有安装成功
在文件中测试
会报如下的错

就是说明memcached还说没有安装成功

安装上面的步骤再看看哪没有安装好

最后多谢大神的帮忙 第一个权限的问题对我来说实在太难 网上找半天也没有答案 继续加强学习

 
 
 
posted @ 2018-06-14 13:30  魏什么魏什么啊  阅读(630)  评论(0编辑  收藏  举报