php が pcntl 拡張機能を追加します (Linux)
pcntl 拡張機能は、PHP のマルチスレッド操作をサポートできます (Linux のみ)
本来は、PHP を再コンパイルし、後の設定プロンプトに --enable-pcntl
私のphpはyumを使用してインストールされているため、上記の方法は使用できません
拡張機能を php に動的に追加する方法は次のとおりです: phpize
1. まず、phpize コマンドが配置されているディレクトリを確認します (ps: my directory/usr/bin/phpize)
見つからない場合は、インストールを実行します
yum install php53_devel (ps:请注意自己的版本)
インストールが完了した後。 phpize コマンドが生成されます
2. php.net に移動して、対応するバージョンの php ソース ファイルをダウンロードします
例として php-5.3.17 を取り上げます。解凍後、対応するモジュール
cd ext/pcntl #先执行phpize /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config (ps:请正确的指定php-config的目录) #编译、安装 make && make install
この時点でエラーが発生しました
./configure は正常にコンパイルされますが、エラーが発生します
エラー: 「PHP_FE_END」がここで宣言されていません (関数内ではありません)
解決策:
ソースコードにエラーがあります。php-5.3.17 ディレクトリに入ってください
sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./ext/**/*.c
次に、再作成してインストールします
3. コンパイルが完了すると、pcntl.so ファイルが生成されます。 phpのmodelディレクトリ内
/etc/php.ini を編集して
extension=pcntl.so
4. Apache を再起動します
service httpd restart
5. インストールが成功したかどうかをテストします
echo pcntl_fork();
出力: 23165