2013-05-30 19 views
13

Próbuję rozwidlić linię poleceń XAMPP z wiersza poleceń, używając pcntl_fork(). Kiedy uruchomić komendę poniżej:pcntl_fork() powracający, Błąd krytyczny: wywołanie niezdefiniowanej funkcji 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); 
} 

uzyskać:

Fatal error: Call to undefined function pcntl_fork() 

Może ktoś sugerują, jak to naprawić?

+0

Jaki jest Twój system operacyjny? Należy pamiętać, że system Windows nie ma żadnych bazowych '* fork()' syscalls. –

+0

Macintosh - Lion –

+1

Czy zainstalowałeś 'php5-pcntl'? –

Odpowiedz

7

Aby sprawdzić, czy jest on zainstalowany, uruchom:

php -i | grep pcntl

Jeśli jest obecny, a następnie włączona funkcja PCNTL prawdopodobnie wyłączona, który wydaje się być domyślny w nowszej PHP 5.x instaluje. Aby sprawdzić, uruchom:

php -i | grep disable_functions

Jeśli widzisz listę pcntl_ * funkcji, musisz edytować plik php.ini (wewnątrz XAMPP) i skomentuj linię disable_functions=

Zalecam użycie wersji this distribution PHP dla OS X, która ma aktualne wersje i mogę potwierdzić, że ma rozszerzenie pcntl.

+0

Komentowanie "disabled_functions =" ​​nie miało dla mnie znaczenia. # ubuntu1404 # php7.1 – Jacksonkr

23

Nie można użyć funkcji "pcntl_fork", gdy PHP jest używane jako moduł Apache (np. XAMPP). Możesz używać pcntl_fork tylko w trybie CGI lub z wiersza poleceń.

Użycie tej funkcji spowoduje: 'Fatal error: Zadzwoń do niezdefiniowanej funkcji: pcntl_fork()'

Źródło: http://php.net/manual/en/function.pcntl-fork.php

Powiązane problemy