Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';增加PHP中打开的最大文件数_Php_Linux_Sockets_Nginx - Fatal编程技术网

Can';增加PHP中打开的最大文件数

Can';增加PHP中打开的最大文件数,php,linux,sockets,nginx,Php,Linux,Sockets,Nginx,我有一个网站在ubuntu的socket系统上运行php fpm和nginx,当该网站达到大约1000个用户时,我的socket抛出一个错误并关闭 我不确定是系统问题还是PHP Symfony\Component\Debug\Exception\ContextErrorException]警告:stream_select():必须使用更大的FD_SETSIZE值重新编译PHP。它设置为1024,但描述符的编号至少高达1024--建议启用fd setsize=2048,但您可能希望将其设置为系统支

我有一个网站在ubuntu的socket系统上运行php fpm和nginx,当该网站达到大约1000个用户时,我的socket抛出一个错误并关闭 我不确定是系统问题还是PHP

Symfony\Component\Debug\Exception\ContextErrorException]警告:stream_select():必须使用更大的FD_SETSIZE值重新编译PHP。它设置为1024,但描述符的编号至少高达1024--建议启用fd setsize=2048,但您可能希望将其设置为系统支持的最大打开文件数,以避免以后再次看到此错误

我已使用以下配置重新编译PHP-

/配置\ --启用fpm\ --启用pdo\ --使用pdo mysql\ --启用套接字\ --启用exif\ --启用soap\ --启用ftp\ --启用wddx\ --启用pcntl\ --启用soap\ --启用bcmath\ --启用mbstring\ --启用dba\ --启用gd本机ttf\ --启用压缩\ --启用日历\ --使用mysql\ --用mysqli\ --使用pdo sqlite\ --与iconv\ --与zlib\ --带-bz2\ --用gettext\ --使用xmlrpc\ --使用openssl\ --用mhash\ --和mcrypt\ --使用xsl\ --卷曲\ --使用pcre正则表达式\ --用gd\ --使用freetype dir=/usr\ --使用jpeg dir=/usr\ --使用png dir=/usr\ --使用ldap\ --加梨\ --使用fpm用户=www数据\ --使用fpm组=www数据\ --配置文件路径为/etc/php/\ --使用配置文件scan dir=/etc/php/conf.d/\ --使用libdir=lib/x86_64-linux-gnu\ --启用fd setsize=131072

并在bits/typesize.h、linux/posix_types.h中设置相同的限制

ulimit-Sn返回128000

我还使用以下内容编辑了/etc/security/limits.conf-

www数据软文件128000

www数据硬文件128000

  • 软nproc 128000

  • 硬nproc 128000

  • 软文件128000

  • 硬文件128000

**编辑1:*

刚刚发现了一种新方法,可以在运行时检查特定进程的限制 cat/proc/1719/限制(1719是nginx流程之一) 我得到了最大打开文件数的软限制1024,硬限制4096,我相信这就是问题的原因,尽管我找不到如何提高它

**编辑2:**


通过将ulimit-n 512000添加到运行脚本(将其添加到nginx和php fpm),修复了该软限制,但仍然出现相同的错误。

问题出在一个已知的php错误中,打开文件的限制来自linux系统,因此如果它的1024在重新编译时将忽略--enable fd setsize=131072。您必须在更改linux系统设置后进行编译。祝你好运:)

/proc/sys/fs/file max是打开的最大文件数。这是电话号码的限制吗?