zoukankan      html  css  js  c++  java
  • centos 安装memcache服务后memcahce本机连接Permission

    自己手动在虚拟机下装了下memcache,整个过程真是充满波折,本身用php5.3安装memcache扩展就麻烦很多,无法通过yum直接安装,安装方法详见http://chenwei.me/blog/server/69.html,接下来安装memcache服务,安装成功后,telnet可以成功,不过好像不是立即成功生效,过一会用stats才会有详细显示。

    本机用

    <?php

    $mem = new Memcache; 

    $mem->connect(‘192.168.124.129′,11211) or die("连接失败"); 

    $mem->getVersion(); 

    ?> 

    不管怎么调试始终都无法成功,后来用母机连接却连接成功了。

    所以怀疑是服务器memcache扩展的问题,但是phpinfo()里面确实有了这个扩展,采用

    ini_set(‘display_errors’, true);

    error_reporting(E_ALL);

    之后,可以显示详细错误。

    "Memcache::get() [function.Memcache-get]: Server 127.0.0.1 (tcp 11211) failed with: Permission denied (13) in /var/www/.."

    百度上找不到相关信息,不过google强大很多,得知这是selinuxd的问题,

    selinux是一套linux的安全系统,它指定了应用程序可以访问的磁盘文件、网络端口等等。

    如果装有selinux,那么默认的selinux会阻止memcache程序访问11211端口,所以必须对selinux进行配置才行。

    方法1: 临时降低selinux运行级别,以便我们进行测试

    命令:setenforce [Enforcing | Permissive]

    Enforcing表示不允许违反策略的操作

    Permissive表示允许违反策略的操作,但会记录下来

    我们使用 setenforce Permissive

    方法2: 修改selinux配置文件,关闭selinux

    编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled

    方法3: 修改selinux的http策略,使得httpd进程可以访问网络,这样也就可以使用memcache了

    命令:setsebool -P httpd_can_network_connect true

    参数P的意思是保持设置的有效性,这样在重启之后这个设置依然有效,不会改变

    我采用的是改/etc/selinux/config  SELINUX=0 重启后成功。

    附:centos 安装memcache服务的方法

    1.编译安装Libevent

    cd ~

    curl -O http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz

    tar -zxvf libevent-2.0.13-stable.tar.gz

    cd libevent-2.0.13-stable-tar.gz

    ./configure –prefix=/usr

    make && make install

    检测一下查看是否安装:

    ls -al /usr/lib | grep libevent

    #显示

    libevent.so -> libevent-2.0.so.5.1.2

    2.安装Memcache

    cd ~

    curl -O http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz

    tar -zxvf memcached-1.4.0.tar.gz

    cd memcached-1.4.0.tar.gz

    ./configure –with-libevent=/usr/

    make && make install

    检测是否成功安装

    ls -al /usr/local/bin/mem*

    #显示

    /usr/local/bin/memcached

    开启Memcached守护进程

    memcached -d -u root

    完整命令

    /usr/local/bin/memcached -d -m 200 -u root -c 256 -p 11211 -P /tmp/memcache.pid

    #无提证明开启成功

    #连接参数

    -p 监听端口

    -l 连接的IP地址,默认是本机

    -d start启动memecache服务

    -d restart重启

    -d stop|shutdown关闭服务

    -d install 安装

    -d uninstall 卸载

    -u 以身份运行仅在root下有效

    -m 最大内存使用,单位MB,默认64MB,最大2G

    -M 内存耗尽时返回错误

    -c 最大同时连接数量,默认是1024

    -f 块大小增长因为,默认是1.25

    -n 最小分配空间,key+value+flags默认48

    -h 显示帮助

    #使用telnet连接

    telnet localhost 11211

    #直接按回车会出现客户端错误.

    #查看当前状态命令

    stats

    stats参数参考

    STAT pid 22459                             进程ID

    STAT uptime 1027046                        服务器运行秒数

    STAT time 1273043062                       服务器当前unix时间戳

    STAT version 1.4.4                         服务器版本

    STAT pointer_size 64                       操作系统字大小(这台服务器是64位的)

    STAT rusage_user 0.040000                  进程累计用户时间

    STAT rusage_system 0.260000                进程累计系统时间

    STAT curr_connections 10                   当前打开连接数

    STAT total_connections 82                  曾打开的连接总数

    STAT connection_structures 13              服务器分配的连接结构数

    STAT cmd_get 54                            执行get命令总数

    STAT cmd_set 34                            执行set命令总数

    STAT cmd_flush 3                           指向flush_all命令总数

    STAT get_hits 9                            get命中次数

    STAT get_misses 45                         get未命中次数

    STAT delete_misses 5                       delete未命中次数

    STAT delete_hits 1                         delete命中次数

    STAT incr_misses 0                         incr未命中次数

    STAT incr_hits 0                           incr命中次数

    STAT decr_misses 0                         decr未命中次数

    STAT decr_hits 0                           decr命中次数

    STAT cas_misses 0                          cas未命中次数

    STAT cas_hits 0                            cas命中次数

    STAT cas_badval 0                          使用擦拭次数

    STAT auth_cmds 0

    STAT auth_errors 0

    STAT bytes_read 15785                      读取字节总数

    STAT bytes_written 15222                   写入字节总数

    STAT limit_maxbytes 1048576                分配的内存数(字节)

    STAT accepting_conns 1                     目前接受的链接数

    STAT listen_disabled_num 0                 

    STAT threads 4                             线程数

    STAT conn_yields 0

    STAT bytes 0                               存储item字节数

    STAT curr_items 0                          item个数

    STAT total_items 34                        item总数

    STAT evictions 0                           为获取空间删除item的总数

  • 相关阅读:
    ubuntu如何设置Python的版本
    PHP队列之理论篇
    ubuntu系統如何啟動root用戶登陸?
    如何绑定腾讯企业邮箱?
    VMware虚拟机安装Ubuntu并设置root登陆
    毕业生,如何选择高薪资与学习机会?
    如何改变memcached默认的缓存时间?
    PHP常用函数之数组篇
    如何安装并使用bower包依赖工具
    z-score
  • 原文地址:https://www.cnblogs.com/Yongzhouunknown/p/4907724.html
Copyright © 2011-2022 走看看