php添加pcntl擴展(Linux)

pcntl擴展能夠支持php的多線程操做(僅限linux)
本來須要從新編譯PHP的後面configrue提示加上--enable-pcntl php

因爲個人php是採用yum安裝的,因此不能採用上面的方式
下面介紹一個php動態添加擴展的方式 phpize

一、首先看下 phpize命令 所在的目錄  (ps:個人目錄/usr/bin/phpize)
若是沒有找到的話 執行安裝
yum install php53_devel   (ps:請注意本身的版本)
安裝完畢後。會生成phpize命令   

二、去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

三、編譯完畢後會生成了一個  pcntl.so的文件。在php的model目錄裏

編輯/etc/php.ini,加入
extension=pcntl.so

四、重啓apache

service httpd restart

五、測試是否安裝成功

<?php
    echo pcntl_fork();
?>

輸出:23165 linux

另附: apache

pcntl擴展能夠支持php的多線程操做.
本來須要從新編譯PHP的後面configrue提示加上--enable-pcntl
爲了省事直接編譯算鳥.
# cd /usr/local/src/php-5.2.6/ext/pcntl
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
pcntl.so  加到php.ini中OK 多線程

相關文章
相關標籤/搜索