-pcntl
MAMP があり、現在の MAMP インストールで
有効にする必要があります。どうすればそうできますか?
ご協力いただきありがとうございます。
PCNTL を拡張機能としてコンパイルし、それを既存の PHP ビルドにリンクする方法がありますが、それは少し詳細です。
MAMPとPHPバージョン5.3.6を使用して、Mac OSX Snow Leopard(64ビット)で次のことを行っています。お使いのバージョンが異なる場合は、次の行で PHP のバージョン番号を忘れずに変更してください。
make
必須であり、Mac OSX ではデフォルトでインストールされないことに注意してください。これは、Mac 開発者ツール ( http://developer.apple.com/unix/ ) からインストールする必要があります。
まず、MAMP で使用しているバージョン (たとえば、私のバージョンは 5.3.6) に一致する PHP ソース コードの tar をhttp://www.php.net/releases/でダウンロードします。untar してphp-[version]/ext/pcntlにCD します。例:
$ 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
phpize
次に、MAMP に付属するバイナリ ファイルである pcntl ディレクトリで実行する必要があります。
pcntl$ /Applications/MAMP/bin/php/php5.3.6/bin/phpize
これにより、コンパイル用の拡張機能を準備するために必要な一連のファイルが作成されます。
MAMP PHP はこのように構築されているため、ライブラリを 32 ビットと 64 ビットのデュアル アーキテクチャでコンパイルするように指示するフラグを追加する必要があります。これを行わないと、コンパイルされた共有オブジェクトは機能しません。
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
これにより、modulesディレクトリに呼び出されるファイルが配置されます。このファイルを MAMP の PHP 拡張機能ディレクトリにコピーします。
pcntl$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/
最後に、PHP INI ファイルを編集して拡張子を含めます。
$ 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
それが見えたら成功です!何か問題が発生した場合はpcntl.so
、MAMP PHP 拡張機能ディレクトリからファイルを削除し、INI 設定を削除して、もう一度やり直してください。
MACに「brew」がインストールされている場合は、次のことができるはずです。
醸造インストールphp53-pcntl
私はMAMPの専門家ではありません。
====編集====(反対票を投じられたことに応じて)
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!
生活を楽にするために、他の投稿からスクリプトを作成しました。これを使用して、pcntl、sysvmsg、sysvshm、sysvsem などの拡張機能を MAMP に追加しました。cd を使用して拡張ディレクトリに移動するか、ディレクトリを引数としてスクリプトに渡します。例 ./addExtension.sh php-5.3.6/ext/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}"
MacPorts を使用して問題を解決しました。
次のコマンドを実行しました。
sudo port install php5-pcntl
PHP 5.6.2 を使用して、Yosemite と Mamp で機能するわずかに異なる手順をいくつか見つけました。手順はこちらにあります: 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