> CentOS > CentOS故障 >

CentOS5 启动lighttpd后报couldn’t set ‘maxfiledescriptors’ Operation not permitted的解决方法

最近准备在esxi4中建一个centos虚拟机,目的是要将ASP.NET 和 PHP运行环境分隔开来,为squid反向代理打好基础。

在本机vm中测试发现安装完lighttpd后无法启动,报告couldn’t set ‘maxfiledescriptors’ Operation not permitted,大致意思就是无法设置最大的filedescriptors,操作不被允许。

GOOGLE了下,发现可能是selinux的问题,因为我是用root用户启动lighttpd,按常理不会出现这种没有权限的问题,为了验证是否是selinux的问题

在命令行下输入:
# setenforce 0
然后再运行
# service lighttpd restart
,不再报错,
再运行
# setenfoce 1
又报错了

现在确定了是selinux限制了程序设置最大文件描述符,解决方法如下:

1)关闭selinux :

# vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled后重启。

2)创建一个selinux模块允许lighttpd有权限设置filedescriptor限制

# /usr/sbin/semodule -DB
# service auditd restart
# service lighttpd restart
# grep lighttpd /var/log/audit/audit.log | audit2allow -M lighttpdmaxfds2
# semodule -i lighttpdmaxfds2.pp
# service lighttpd restart

参考:https://bugzilla.redhat.com/show_bug.cgi?id=571924

(责任编辑:IT)