由于开启SELinux导致memcached能启动但无法用php连接的问题

本文记录了一次Memcached配置过程中遇到的问题及解决过程。作者在迁移博客网站至CentOS5.2后,发现Memcached服务在系统重启后无法正常工作。尽管能通过telnet连接,但监控脚本无法获取有效数据。最终通过禁用SELinux解决了该问题。
摘要由CSDN通过智能技术生成

今天给我的博客托管网站搬家,搬到国外的一个VPS提供商处,系统为CentOS 5.2,在配置memcached的时候,出问题了,具体的表现是

  1. 刚开始编译、安装memcached并运行,和wordpress mu能够很好的进行配合,通过监控的php程序能够连接并显示memcached运行状态。编译的选项为

    ./configure --enable-64bit --enable-threads

  2. 但是由于什么原因,系统资源被耗尽了,于是系统被我暴力关闭并重新启动了。
  3. 系统被暴力重新启动后,memcached无法正常工作,具体表现为监控memcached的php程序无法连接到memcached,使用memcached主页标准的测试程序也显示无法连接。
  4. 但是可以通过 telnet localhost 11211或者telnet 127.0.0.1 11211来连接到memcached的服务器,并且可以使用version和stats命令获得memcached的状态,但是得到的结果是get set, hits, misses全部为0。

查阅了很多网上的文章,绝大部分的都是连接被拒绝,memcached无法启动这类错误,与我的表现均不相同,没办法,只能摸着石头解决问题了,做了如下尝试均无果(无果指memcached主页提供的php测试程序无法连接到memcached服务器)

  1. 考虑到可能是暴力关闭系统损坏了文件系统,尝试重新编译libenv和memcached并重新安装,重新启动,无效。
  2. 考虑到可能刚刚release的版本引入新的bug,故卸载了最新的memcached 1.2.8并编译安装1.2.7,重新启动,无效。
  3. 考虑到可能是因为防火墙禁止了11211端口,于是运行system-config-securitylevel-tui 程序,将11211端口的tcp连接启用,重新应用防火墙规则,重新启动,无效。
  4. 使用  netstat -ntlp | grep memcached 结果如下,在memcached的启动脚本中增加了 -l 127.0.0.1 的选项,重新启动,无效。

    tcp        0      0 0.0.0.0:11211            0.0.0.0:*                LISTEN      4959/memcached    
    tcp        0      0 :::11211                    :::*                        LISTEN      4959/memcached   

  5. 百思不得其解,最后想到会不会是因为开启了SELinux ,导致无法建立TCP连接呢,于是通过system-config-securitylevel-tui关闭了SELinux,重启,居然可以了!

 

说明

  1. 监控其运行的程序为memcache.php,来自http://livebookmark.net/journal/
  2. 启动和停止脚本来自 http://idcnews.net/html/edu/20080424/300253.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值