`

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

阅读更多

今天给我的博客托管网站搬家,搬到国外的一个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
分享到:
评论

相关推荐

    操作系统安全:selinux自启动.docx

    为了使SELinux在系统启动时自动启动,确保`/etc/selinux/config`中的`SELINUX`设置为`enforcing`或`permissive`,同时确保内核引导参数没有禁用SELinux。在CentOS这样的发行版中,SELinux通常是默认启用的,但根据...

    万恶的selinux导致dns slave服务器无法正常获取master上的信息

    ### SELinux导致DNS Slave服务器无法正常获取Master信息 在Linux环境下搭建DNS服务时,经常会遇到配置好Slave服务器后,却无法从Master服务器上正确获取DNS信息的问题。这种情况往往与SELinux(Security-Enhanced ...

    SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法

    这个错误通常表示PHP无法与MySQL服务器建立连接,但原因并非PHP代码、MySQL配置或网络问题,而是SELinux策略阻止了HTTPD(Apache)进程的网络连接。 首先,我们需要理解`getsebool -a`命令的作用。这个命令用来查询...

    linux让防火墙(selinux)开启端口

    linux让防火墙(selinux)开启端口,开启80 3306 等端口

    APK启动bin相关selinux权限基于mtkandroid6.0平台.rar

    否则,即使APK代码本身没有问题,也可能因为Selinux策略的限制导致应用无法正常启动。 此外,对于开发人员来说,调试Selinux相关的权限问题是一项挑战。他们需要使用工具如`adb shell`和`getenforce`来查看当前的...

    memcached分布式缓存数据库部署.doc

    4. **使用telnet进行功能测试**:通过`telnet`工具连接到memcached服务器,进行增、删、改、查等基本操作。例如,使用`set`命令设置键值对,`get`命令获取键值,`add`、`replace`和`append`命令分别用于新增、替换和...

    selinux-example_SELinux_

    还有其他策略如“strict”提供更全面的保护,但可能导致更多的误报。 3. **审计日志**:SELinux的审计子系统记录所有违反策略的尝试,方便分析和调试。 4. **工具集**:包括`semanage`用于管理策略,`audit2why`和...

    SELinux手册 电子书 pdf 英文

    SELinux 手册 SELinux(Security-Enhanced Linux)是一种基于 Linux 操作系统的访问控制机制,旨在提高系统的安全性和稳定性。它通过 Mandatory Access Control(强制访问控制)机制来控制进程和文件之间的交互,以...

    设置selinux出现进入系统异常解决

    这表明可能是由于SELinux配置不当导致的系统启动失败。 #### 四、解决方案步骤详解 为了解决这一问题,用户采取了一系列措施: 1. **进入救援模式**: - 首先,通过BIOS设置光驱为优先启动设备,并使用Red Hat ...

    如何关闭linux下selinux服务 txt

    然而,在某些情况下,由于SELinux的安全策略限制了特定应用程序的正常运行,可能导致这些程序无法按照预期工作。例如,一些第三方软件可能会因为与SELinux策略不兼容而出现问题。因此,在特定场景下,用户可能需要...

    APK启动bin相关selinux权限

    2. 定制策略:由于Android 6.0引入了SELinux的强制执行,对于MTK平台,开发者或设备制造商需要确保所有涉及的bin文件都有正确的策略规则,否则可能导致应用无法正常启动或功能受限。 四、配置与调试 1. 配置文件:...

    selinux中文手册和详细解说

    **SELinux(Security-Enhanced Linux)** 是一种强制访问控制机制,由美国国家安全局(NSA)开发,用于提高Linux操作系统的安全性。它通过精细的权限管理,为系统中的每个进程、文件和其他资源分配安全上下文,实现...

    SELinux详解-中文版.pdf

    《SELinux详解》是一本深度解析安全增强的Linux(SELinux)操作系统的书籍,旨在帮助读者理解、编写、修改和管理SELinux策略,提升Linux系统的安全性。书中详细介绍了SELinux的作用、生效机制以及策略模块的编写,...

    selinux开启后shadow文件策略修改限制

    SELinux 开启后 Shadow 文件策略修改限制 SELinux(Security-Enhanced Linux)是一种基于 Linux 内核的强制访问控制(Mandatory Access Control,MAC)机制,它可以限制进程对文件和资源的访问权限。在 SELinux 中...

    Lock SELinux forced mode.zip

    3. **service.sh** - 这可能是一个启动服务的脚本,可能用于启动或停止与SELinux强制模式相关的服务,或者定期检查其状态。 4. **META-INF** - 这通常在Java存档(JAR)文件中用于存储元数据,但在这种情况下,它...

    selinux初始化流程

    在Linux系统启动时,SELinux的初始化流程扮演着至关重要的角色,确保系统的安全策略得以正确执行。下面将详细介绍SELinux的初始化流程。 一、内核加载阶段 当Linux内核开始加载时,它会读取配置文件中的SELinux选项...

    selinux问题

    SELinux 权限问题案例分析 SELinux 是 Security-Enhanced Linux 的缩写,表示安全强化型 Linux。它是一个基于 Linux 的操作系统的安全子系统,旨在提供一种更高级的访问控制机制,以保护 Linux 系统免受未经授权的...

Global site tag (gtag.js) - Google Analytics