php新增pcntl擴充套件(Linux)

bluetooth發表於2021-09-09

pcntl擴充套件可以支援php的多執行緒操作(僅限linux系統)

載入 pcntl 有兩種方式

一種重新編譯安裝,在編譯時加,configrue提示加上--enable-pcntl

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-pcntl


另一種格外掛載

由於我的php是採用yum安裝的,所以不能採用第一種方式
下面介紹一個php動態新增擴充套件的方式 phpize


1、首先看下phpize命令所在的目錄  (我的目錄/usr/bin/phpize)
如果沒有找到的話 執行安裝
yum install php53_devel   (請注意自己的版本)
安裝完畢後。會生成phpize命令


2、去php.net下載相應版本的php原始檔


我們們以php-5.3.17 為例吧,解壓後,進入相應的模組下
cd /php-5.3.17/ext/pcntl
#先執行phpize
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config   (請正確的指定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目錄裡

cd /root/php-5.3.17/ext/pcntl/modules

ls -l pcntl.so
-rwxr-xr-x 1 root root 82375 4月   1 11:38 pcntl.so


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


4、重啟apache和php
service httpd restart

/etc/init.d/php-fpm restart


5.進行測試是不是安裝成功

在網頁目錄寫一個php首頁檔案如下

    echo pcntl_fork();
?>

輸出:23165 證明安裝成功

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3402/viewspace-2809338/,如需轉載,請註明出處,否則將追究法律責任。

相關文章