puede para hay ficheros demasiados crear compartir caused carpeta archivos abiertos php phpunit

php - para - Error fatal-Demasiados archivos abiertos



jboss demasiados ficheros abiertos (5)

¿Cómo puedes subir el límite de apertura de archivos (Linux o Max OS)?

ulimit -n 10000

Resuelve el problema con phpunit y / y phpdbg y Warning: Uncaught ErrorException: require([..file]): failed to open stream: Too many open files in [...]

Intento ejecutar PHPUnit Tests en mi nueva máquina y recibo este error:

Error fatal de PHP: excepción no detectada ''UnexpectedValueException'' con mensaje ''RecursiveDirectoryIterator :: __ construct (/ usr / lib / php / pear / File / Iterator): no se pudo abrir dir: Hay demasiados archivos abiertos en / usr / lib / php / pear /File/Iterator/Factory.php:114

El mismo código en la vieja máquina funciona bien ...

Nuevo entorno de máquina: Versión de PHP: PHP 5.3.21 (cli) Anterior: PHP 5.3.14

PHPUnit salida cada vez:

................EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 65 / 66 ( 98%) E Time: 34 seconds, Memory: 438.50Mb There were 50 errors: 1) XXXXXXXXXXX PHP Fatal error: Uncaught exception ''UnexpectedValueException'' with message ''RecursiveDirectoryIterator::__construct(/usr/lib/php/pear/File/Iterator): failed to open dir: Too many open files'' in /usr/lib/php/pear/File/Iterator/Factory.php:114


Después de "despertar" mi computadora del modo de suspensión, encontré este problema.

Reiniciando php-fpm como lo ha arreglado. Clásico apagar y volver a encender la solución.

sudo /etc/init.d/php-fpm restart

Creo que esto puede estar relacionado con xdebug, que recientemente agregué a php.


En PHP, antes de la ejecución, prueba esto.

exec(''ulimit -S -n 2048'');


Esto puede ser una limitación en el servidor donde se ejecuta el código. Cada sistema operativo solo permite un cierto número de archivos / identificadores / sockets abiertos. Este límite generalmente se reduce aún más cuando el servidor está virtualizado. En un servidor Linux, puede verificar el límite actual con ulimit -n , si tiene acceso de root, puede aumentarlo con el mismo comando. Supongo que también hay un método para el servidor de Windows. De lo contrario, no hay mucho que pueda hacer al respecto (excepto pedirle a su proveedor o administrador que lo incremente).

Más limitaciones configurables:

In /etc/security/limits.conf soft nofile 1024 hard nofile 65535 Increase ulimit by "ulimit -n 65535" echo 65535 > /proc/sys/fs/file-max In /etc/sysctl.conf fs.file-max=65535


No almacene objetos DirectoryIterator para más adelante; recibirá un error que dice "demasiados archivos abiertos" cuando almacena más que el límite del sistema operativo (generalmente 256 o 1024).

Por ejemplo, esto producirá un error si el directorio tiene demasiados archivos:

<?php $files = array(); foreach (new DirectoryIterator(''myDir'') as $file) { $files[] = $file; } ?>

Presumiblemente, este enfoque también requiere mucha memoria.

fuente: http://php.net/manual/pt_BR/directoryiterator.construct.php#87425