ホームページ  >  記事  >  バックエンド開発  >  PHP 致命的エラー: 未定義関数 pcntl_fork() の呼び出し

PHP 致命的エラー: 未定義関数 pcntl_fork() の呼び出し

WBOY
WBOYオリジナル
2016-06-23 14:29:092551ブラウズ

問題の説明:

[root@localhost www]# /usr/local/php/bin/phpindex.php

PHP 致命的エラー: /home/www/theard/threadProcessManager 内の未定義関数 pcntl_fork() の呼び出し。 php 69 行目

解決策:


1. php

./configure --enable-pcntl `````````` を再コンパイルします。 PHP をインストールした ext/pcntl ディレクトリに直接コピーします。

Run

phpize

[root@localhost pcntl]# ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

生成されたファイルを置くデフォルトのディレクトリに置きます:

[root@localhost pcntl]# cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/pcntl.so /usr/lib/php/ modules/

次に、この拡張機能を php.ini に追加します

extension=pcntl.so

それを追加しない場合は、プログラムに直接ロードできます (dl() 関数を使用すると、関数はキャンセルされます)。特にphpの場合 cmdlineに加えて、ApacheでWeb作業を行う場合、Webサービスを提供するときにpnctlモジュールをロードするときに問題が発生することがよくあります。

テストメソッド

test_fork.php:


echo "これは fork コマンドを呼び出す前のエコーです";

$pid = pcntl_fork();
if ($pid == -1 ) {
die("フォークできませんでした");
} else if ($pid) {
echo "私は親です、pid = ". $pid ."n";
} else {
echo "私は親ですchild, pid = ". $pid ."n";
}
echo "これは fork コマンドを呼び出した後のエコーです";
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。