回答
有一種編譯PCNTL作爲擴展並將其鏈接到現有PHP構建中的方法,但它有點深入。
我在Mac OSX Snow Leopard(64位)上使用MAMP和PHP 5.3.6版進行以下操作。如果您的版本不同,請記住更改以下行中的PHP版本號!
請注意,make
是必需的,它在Mac OSX上默認不安裝。你需要通過蘋果開發工具安裝此,http://developer.apple.com/unix/
首先,下載您所使用的MAMP版本相匹配的PHP源代碼的焦油(如我的是5.3.6),你可以在http://www.php.net/releases/做。解壓和CD到PHP的[版本]/ext /中了pcntl,如:
$ wget http://museum.php.net/php5/php-5.3.6.tar.gz
$ tar xvf php-5.3.6.tar.gz
$ cd php-5.3.6/ext/pcntl
然後,您需要在了pcntl目錄,這是帶有甲基苯丙胺的二進制文件運行phpize
:
pcntl$ /Applications/MAMP/bin/php/php5.3.6/bin/phpize
這會創建一堆準備編譯擴展所需的文件。
我們現在需要添加一些標誌來告訴它用雙32位和64位體系結構編譯庫,因爲MAMP PHP是以這種方式構建的。如果你不這樣做,編譯的共享對象將不起作用。
pcntl$ MACOSX_DEPLOYMENT_TARGET=10.6
pcntl$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
pcntl$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
pcntl$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
pcntl$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
pcntl$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET
我們可以運行./configure
和make
打造我們共同的目標:
pcntl$ ./configure
pcntl$ make
這使得一個名爲pcntl.so
文件中的模塊目錄。最後
pcntl$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/
,編輯PHP INI文件,包括擴展名::這個文件複製到你的MAMP的PHP擴展目錄
$ echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.3.6/conf/php.ini
PCNTL應已啓用。要檢查是否已添加,請執行以下操作:
$ /Applications/MAMP/bin/php/php5.3.6/bin/php --ri pcntl
pcntl
pcntl support => enabled
如果您看到這一點,如果出現任何問題,您可以從MAMP PHP擴展目錄中刪除pcntl.so
文件並刪除INI設置,然後重試。
爲了讓我的生活更輕鬆我做了一個腳本from the other post。我用它來擴展pcntl,sysvmsg,sysvshm,sysvsem和其他的MAMP。將cd用於擴展目錄或將該目錄作爲參數傳遞給腳本。例子./addExtension.sh php-5.3。6 /轉/ PCNTL
#!/bin/bash
DIR=$1
MAMP_PHP=$2
if [ -z "$DIR" ]
then
DIR=`pwd`
fi
if [ -z "$MAMP_PHP" ]
then
MAMP_PHP='/Applications/MAMP/bin/php/php5.3.6'
fi
EXTENSION=${DIR##*/}
echo Extension: $EXTENSION
cd $DIR
eval "${MAMP_PHP}/bin/phpize"
MACOSX_DEPLOYMENT_TARGET=10.6
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
./configure
make
cp modules/${EXTENSION}.so "${MAMP_PHP}/lib/php/extensions/no-debug-non-zts-20090626/"
PHP_INI_PATH="${MAMP_PHP}/conf/php.ini"
sed -e "/extension=${EXTENSION}.so/ d" $PHP_INI_PATH > TMP
mv TMP $PHP_INI_PATH
echo "extension=${EXTENSION}.so" >> $PHP_INI_PATH
eval "${MAMP_PHP}/bin/php --ri ${EXTENSION}"
如果您已經安裝在你的MAC「釀造」,那麼你應該能夠做到:
brew install php53-pcntl
我對甲基苯丙胺不是專家,但。
==== EDIT ==== (響應於被向下投票)
Ian-Lewiss-MacBook-Pro:~ ianlewis$ brew install php53-pcntl
Warning: php53-pcntl-5.3.25 already installed
Ian-Lewiss-MacBook-Pro:~ ianlewis$ brew info php53-pcntl
php53-pcntl: stable 5.3.25
http://php.net/manual/en/book.pcntl.php
/usr/local/Cellar/php53-pcntl/5.3.23 (3 files, 32K)
Built from source
/usr/local/Cellar/php53-pcntl/5.3.25 (3 files, 32K) *
Built from source
https://github.com/josegonzalez/homebrew-php/commits/master/Formula/php53-pcntl.rb
==> Dependencies
Build: autoconf
Required: php53
==> Options
--without-config-file
Do not add ext-pcntl.ini to /usr/local/etc/php/5.3/conf.d
--without-homebrew-php
Ignore homebrew PHP and use default instead
==> Caveats
To finish installing pcntl for PHP 5.3:
* /usr/local/etc/php/5.3/conf.d/ext-pcntl.ini was created,
do not forget to remove it upon extension removal.
* Restart your webserver.
* Write a PHP page that calls "phpinfo();"
* Load it in a browser and look for the info on the pcntl module.
* If you see it, you have been successful!
不存在這樣的沖泡配方 – 2013-06-19 20:55:23
是的,你需要在投票前做更好的研究。 – 2013-06-20 08:33:28
這取決於正在安裝的PHP的BREW版本 - 它似乎不能很好地與MAMP搭配使用 - 這是原始問題 – 2013-07-05 18:08:54
我使用的MacPorts解決了這個問題。
運行命令:
sudo port install php5-pcntl
給出更多解釋給你的答案。 – 2014-05-14 12:31:41
我發現了一些使用PHP 5.6.2工作了Yosemite和甲基苯丙胺的說明略有不同。 說明在這裏找到: https://www.flynsarmy.com/2015/01/get-artisan-tinker-working-osx-10-mamp/
wget http://museum.php.net/php5/php-5.6.2.tar.gz
tar -xzvf php-5.6.2.tar.gz
mv php-5.6.2 php
mkdir -p /Applications/MAMP/bin/php/php5.6.2/include
mv php /Applications/MAMP/bin/php/php5.6.2/include
cd /Applications/MAMP/bin/php/php5.6.2/include/php
./configure
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
cd ext/pcntl
phpize
./configure
make
cp modules/pcntl.so /Applications/MAMP/bin/php/php5.6.2/lib/php/extensions/no-debug-non-zts-20131226
- 1. 使已安裝的PCNTL擴展可用於MAMP中的命令行PHP
- 2. MAMP:如何添加AMF PHP擴展?
- 3. PHP的xmlrpc擴展和MAMP
- 4. PHP PCNTL - 維護終端中的控制
- 5. 用於php5.4.4的MAMP的PCNTL。和OSX 10.8
- 6. 在Silverlight中擴展二進制控件
- 7. 檢查安裝在PHP中的PCNTL擴展
- 8. 如何在MAMP上安裝gearman擴展
- 9. 控制擴展器控制擴展量
- 10. 如何在ZF2中擴展控制器?
- 11. 如何使用`phpize`啓用php擴展?
- 12. php擴展名「PCNTL」適用於網絡蜘蛛嗎?
- 13. 如何啓用PHP捲曲擴展
- 14. 如何安裝/啓用PHP phar擴展?
- 15. 如何在ubuntu 15上安裝pcntl擴展
- 16. 在Web服務器環境中啓用PHP中的過程控制(PCNTL)的副作用是什麼?
- 17. MAMP 3.4上的PHP擴展memcached
- 18. 如何在CakePHP中啓用intl擴展?
- 19. 如何在Bluemix中的PHP Buildpack中強制使用PHP擴展?
- 20. 如何在Zend擴展訪問控制
- 21. 如何讓RedirectToAction在控制器擴展
- 22. 無法在MAMP中加載mongo擴展
- 23. 啓用擴展
- 24. 如何啓動控制檯進程
- 25. 如何在PHP中對PCNTL forker類進行單元測試?
- 26. 如何在PHP 7中啓用MySQLi擴展?
- 27. 如何在Ubuntu中啓用PHP的LDAP擴展
- 28. 如何在Linux中啓用核心PHP擴展?
- 29. 如何在PHP中啓用SimpleXML擴展(Gentoo OS)
- 30. Magento擴展不加載MAMP
該解決方案還適用於自帶的雪豹標準的PHP^_^ – zundr 2011-12-16 17:13:19
如果遇到'錯誤:「PHP_FE_END」運行未申報這裏(不是在一個函數)'後'make',用'{NULL,NULL,NULL}'替換pcntl.c中所有出現的'PHP_FE_END'。 – 2012-03-22 02:35:13
任何線索,我得到Zend/zend_signal.h doe不存在。當我檢查它確實存在。 – doNotCheckMyBlog 2012-09-25 06:20:30