pcntl擴展可以支持php的多線程操作(僅限linux)
原本需要重新編譯PHP的後面configrue提示加上--enable-pcntl
由於我的php是采用yum安裝的,所以不能采用上面的方式
下面介紹一個php動態添加擴展的方式 phpize
1、首先看下 phpize命令 所在的目錄 (ps:我的目錄/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編譯正常,但make出錯
error: ‘PHP_FE_END' undeclared here (not in a function)
解決方法:
源代碼有錯誤,進入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
再重新make && make install
3、編譯完畢後會生成了一個 pcntl.so的文件。在php的model目錄裡
編輯/etc/php.ini,加入
extension=pcntl.so
4、重啟apache
service httpd restart
5、測試是否安裝成功
<?php echo pcntl_fork(); ?>
輸出:23165