fpm_unix_init_child() setrlimit(RLIMIT_NOFILE) failed: Invalid argument

错误信息:
[ERROR] fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)  

根据错误信息可以判定,原因在于rlimit_nofile参数那里。首先要看一下系统中ulimit -n
我做了以下三步:
1.  vim /etc/init.d/nginx  在 start 部分添加
ulimit -SHn 51200 如:
start() {
        echo -n $"Starting $prog: "
        ulimit -SHn 51200
        daemon $NGINX_SBIN -c $NGINX_CONF
        RETVAL=$?
        echo
        return $RETVAL
}

2. vim /usr/local/php/sbin/php-fpm  也在start 部分添加
ulimit -SHn 51200 如:
start)
                echo -n "Starting php_fpm "
                ulimit -SHn 51200
                $php_fpm_BIN --fpm $php_opts

                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi

3. vim /usr/local/php/etc/php-fpm.conf
修改 rlimit_files 参数为 51200
<value name="rlimit_files">51200</value>

分别重启 nginx 和 php-fpm

说明:其实只要保持nginx,php-fpm启动时 ulimit 数值一致就0k了。

添加新评论 »