php pcntl fork失败的解决办法:1、检查php.ini是否加载了pcntl扩展;2、查看composer是否安装了ext-pcntl;3、在CGI模式或命令行中使用pcntl_fork即可。

本教程操作环境:windows10系统、PHP8.1版、DELL G3电脑

php pcntl fork失败怎么办?

pcntl_fork()返回致命错误:调用未定义函数pcntl_fork()

我在mac上用mamp集成环境跑的一个项目上要使用到pcntl_fork()函数,但奇怪的是我检查过php.ini已经加载了pcntl扩展,composer也安装了ext-pcntl,但是调用的时候就是会报undefined function pcntl_fork(),找了很多方向都没有解决,要注意的一个点是PCNTL在 Windows 平台上不可用。

$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);
}

后来在stackoverflow上找到答案:

当使用Apache作为php服务器时,无法使用功能'pcntl_fork'模块(例如XAMPP)。您只能在CGI模式或命令行中使用pcntl_fork。

所以。。。把服务器换成nginx即可解决。


php pcntl fork失败怎么办