1. 程式人生 > >MAMP 環境下為 php 添加 pcntl 擴展

MAMP 環境下為 php 添加 pcntl 擴展

deb export 文件中 lib ati https iyu -c php.ini

pcntl 介紹

pcntl 擴展可以支持 PHP 的多線程操作。(非Unix類系統不支持此模塊)

phpize 介紹

phpize 可以用來給 PHP 動態的添加擴展。比如編譯 PHP 時忘記添加某擴展,後來想添加該擴展,即可以使用 phpize 動態的添加該擴展。

本文將介紹如何使用 phpize 給 Mac下的集成環境 MAMP 添加 PHP 的 pcntl 擴展。類 Unix 的環境都可以使用本方法安裝,註意靈活變通。

安裝:

下面演示的是給 MAMP的PHP 5.6.10版本添加 pcntl擴展。

下載和本地 PHP 版本對應的源碼包,地址為:

http://www.php.net/releases/
然後按照如下步驟進行編譯:

# 解壓源碼包並初始化目錄
$ tar -xzvf php-5.6.10.tar.gz
$ mv php-5.6.10 php
$ mkdir -p /Applications/MAMP/bin/php/php5.6.10/include
$ mv php /Applications/MAMP/bin/php/php5.6.10/include

# 檢測系統配置
$ cd /Applications/MAMP/bin/php/php5.6.10/include/php
$ ./configure

# 添加一些標誌來告訴系統怎樣編譯。MAMP PHP已經建成這樣,如果不這樣做,編譯的共享對象將無法工作。
$ MACOSX_DEPLOYMENT_TARGET=10.10
$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET

# 編譯 pcntl.so 文件
$ cd ext/pcntl
$ phpize
$ ./configure
$ make

# 將編譯出來的擴展文件pcntl.so 移動到php的擴展目錄
$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/

# 向php.ini 文件中添加該擴展
$ echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.6.10/conf/php.ini

# pcntl現在應該已經啟用,要檢查是否安裝成功,只需運行:
$ /Applications/MAMP/bin/php/php5.6.10/bin/php --ri pcntl
pcntl
pcntl support => enabled

如出現以上信息,則說明該擴展已安裝成功。

MAMP 環境下為 php 添加 pcntl 擴展