2013-05-30 10 views
13

Ich versuche, eine Befehlszeile ausführen XAMPP PHP-Prozess mit pcntl_fork() ausführen. Wenn ich den folgenden Befehl ausführen:pcntl_fork() zurück, Fatal error: Aufruf zu undefinierter Funktion 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); 
} 

ich:

Fatal error: Call to undefined function pcntl_fork() 

Kann jemand empfehlen, wie dieses Problem beheben?

+0

Was ist Ihr Betriebssystem? Beachten Sie, dass Windows keine '* fork() 'syscalls hat. –

+0

Macintosh - Löwe –

+1

Haben Sie 'php5-pcntl' erfolgreich installiert? –

Antwort

7

Um zu sehen, wenn es installiert ist, führen:

php -i | grep pcntl

Wenn es vorhanden ist, und aktiviert dann die pcntl Funktion wahrscheinlich deaktiviert, was der Standard in neueren zu sein scheint installiert PHP 5.x. Um zu überprüfen, führen:

php -i | grep disable_functions

Wenn Sie eine Liste von pcntl_ * Funktionen zu sehen, müssen Sie die Datei php.ini bearbeiten (innerhalb von XAMPP) und kommentieren Sie die Zeile disable_functions=

Ich würde Ihnen empfehlen, this distribution von PHP für OS X zu verwenden, das gegenwärtige Versionen hat und ich kann bestätigen, dass die pcntl Erweiterung hat.

+0

Das Auskommentieren von "disabled_functions =" ​​war ein Nein für mich. # ubuntu1404 # php7.1 – Jacksonkr

23

Es ist nicht möglich, die Funktion 'pcntl_fork' zu verwenden, wenn PHP als Apache-Modul verwendet wird (zB XAMPP). Sie können pcntl_fork nur im CGI-Modus oder über die Befehlszeile verwenden.

Mit dieser Funktion in resultieren: 'Fatal error: Call to undefined function: pcntl_fork()'

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

Verwandte Themen