2013-05-30 51 views
13

私はpcntl_fork()を使ってXAMPP PHPプロセスを実行するコマンドラインをforkしようとしています。私は、以下のコマンドを実行すると:pcntl_fork()を返す、致命的なエラー:未定義関数を呼び出す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() 

誰もがこの問題を解決する方法を提案することができますか?それがインストールされている場合は、参照を実行するには

+0

あなたのOSは何ですか? Windowsには基本的な '* fork()'システムコールがないことに注意してください。 –

+0

Macintosh - Lion –

+1

'php5-pcntl'を正常にインストールしましたか? –

答えて

7

php -i | grep pcntl

それが存在し、その後、PCNTL機能を有効にした場合は、インストールする新しいPHP 5.xでは、デフォルトであるように思われ、無効になりそうです。実行、チェックするには:

php -i | grep disable_functions

をあなたはpcntl_ *関数のリストが表示された場合、あなたは(XAMPPの内側)php.iniファイルを編集し、行をコメントアウトする必要がありますdisable_functions=

私は現在のバージョンを持っているOS XのためのPHPのthis distributionを使用することをお勧めし、私はpcntl拡張子を持っていることを確認することができます。

+0

"disabled_functions ="をコメントアウトすることは私にとっては役に立たなかった。 #ubuntu1404#php7.1 – Jacksonkr

23

PHPがApacheモジュール(XAMPPなど)として使用されている場合、 'pcntl_fork'関数を使用することはできません。 pcntl_forkは、CGIモードまたはコマンドラインでのみ使用できます。

になります。この機能を使用する: '致命的なエラー:未定義の関数の呼び出し:pcntl_forkを()'

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

関連する問題