uncaught pcntl_fork error php fork command-line-interface pcntl undefined-function

pcntl_fork - php fork process



pcntl_fork() devolviendo, Error grave: llamar a una funciĆ³n no definida pcntl_fork() (3)

Estoy tratando de bifurcar una línea de comandos ejecutar el proceso php XAMPP usando pcntl_fork (). Cuando ejecuto el siguiente comando:

$pid = pcntl_fork(); if($pid == -1){ file_put_contents(''testlog.log'',"/r/nFork Test",FILE_APPEND); return 1; //error } else if($pid){ return 0; //success } else{ file_put_contents($log, ''Running...'', FILE_APPEND); }

Yo obtengo:

Fatal error: Call to undefined function pcntl_fork()

¿Alguien puede sugerir cómo solucionar esto?


No es posible usar la función ''pcntl_fork'' cuando PHP se usa como módulo de Apache (como XAMPP). Solo puede usar pcntl_fork en modo CGI o desde la línea de comandos.

El uso de esta función dará como resultado: ''Error grave: llamar a una función no definida: pcntl_fork ()''

Fuente: http://php.net/manual/en/function.pcntl-fork.php


Para ver si está instalado, ejecute:

php -i | grep pcntl

Si está presente y habilitada, es probable que la función pcntl esté deshabilitada, lo que parece ser el predeterminado en las nuevas instalaciones de PHP 5.x. Para comprobar, ejecute:

php -i | grep disable_functions

Si ve una lista de funciones pcntl_ *, deberá editar su archivo php.ini (dentro de XAMPP) y comentar la línea disable_functions=

Le recomiendo que use esta distribución de PHP para OS X, que tiene versiones actuales y puedo confirmar que tiene la extensión pcntl .


pcntl_* , el soporte de Control de procesos en PHP no está habilitado por defecto. Debe compilar la versión CGI o CLI (no se utiliza como módulo de Apache) de PHP con la opción de configuración --enable-pcntl cuando compile PHP para habilitar la compatibilidad con Process Control.

Actualmente, este módulo no funcionará en plataformas que no sean Unix (Windows).

ref