php添加pcntl擴展 問題及解決方法


pcntl擴展可以支持php的多線程操作.
原本需要重新編譯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

  

 

二、測試是否安裝成功

<?php
echo pcntl_fork();
?>

  輸出

     23165

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM