Я пытаюсь разблокировать процесс командной строки XAMPP, используя pcntl_fork (). Когда я запускаю команду ниже:
$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); }
Я получил:
Fatal error: Call to undefined function pcntl_fork()
Может ли кто-нибудь предложить, как это исправить?
Невозможно использовать функцию «pcntl_fork», когда PHP используется как модуль Apache (например, XAMPP). Вы можете использовать pcntl_fork только в режиме CGI или из командной строки.
Использование этой функции приведет к: «Неустранимая ошибка: вызов неопределенной функции: pcntl_fork ()»
Чтобы убедиться, что он установлен, запустите:
php -i | grep pcntl
Если он присутствует и включен, функция pcntl, скорее всего, отключена, которая по умолчанию используется в новых установках PHP 5.x. Чтобы проверить, запустите:
php -i | grep disable_functions
Если вы видите список функций pcntl_ *, вам необходимо отредактировать файл php.ini (внутри XAMPP) и закомментировать строку disable_functions=
Я бы рекомендовал использовать этот дистрибутив PHP для OS X, который имеет текущие версии, и я могу подтвердить, имеет pcntl
расширение pcntl
.