php mamp pcntl

¿Cómo habilitar la extensión de control de proceso(PCNTL) en PHP MAMP?



(5)

Encontré algunas instrucciones ligeramente diferentes que funcionaron para Yosemite y Mamp usando php 5.6.2. Las instrucciones se encontraron aquí: 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


Tengo MAMP y necesito habilitar -pcntl en mi instalación actual de MAMP. ¿Como lo puedo hacer?

Gracias por tu ayuda.


Existe una forma de compilar PCNTL como una extensión y vincularlo a una compilación PHP existente, pero es un poco más profundo.

Estoy haciendo lo siguiente en Mac OSX Snow Leopard (64 bits), con MAMP y PHP versión 5.3.6. ¡Recuerde cambiar los números de versión de PHP en las siguientes líneas si la suya es diferente!

Tenga en cuenta que se requiere make , que no se instala de forma predeterminada en Mac OSX. Debe instalar esto a través de las herramientas de desarrollo de Mac, http://developer.apple.com/unix/

Primero, descargue un archivo tar del código fuente de PHP que coincida con la versión que está usando en MAMP (por ejemplo, el mío es 5.3.6), que puede hacer en http://www.php.net/releases/ . Untar y CD a php- [versión] / ext / pcntl , por ejemplo:

$ 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

Luego necesita ejecutar phpize en el directorio pcntl, que es un archivo binario que viene con MAMP:

pcntl$ /Applications/MAMP/bin/php/php5.3.6/bin/phpize

Esto crea un montón de archivos que son necesarios para preparar una extensión para compilar.

Ahora necesitamos agregar algunos indicadores para indicar que compile la biblioteca con una arquitectura dual de 32 bits y 64 bits, ya que MAMP PHP se ha creado de esta manera. Si no haces esto, los objetos compartidos compilados no funcionarán.

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

Luego podemos ejecutar ./configure y make para construir nuestro objeto compartido:

pcntl$ ./configure pcntl$ make

Esto coloca un archivo llamado pcntl.so en el directorio de módulos . Copie este archivo al directorio de extensiones PHP de su MAMP:

pcntl$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/

Finalmente, edite el archivo PHP INI para incluir la extensión:

$ echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.3.6/conf/php.ini

PCNTL debería estar ahora habilitado. Para verificar si se ha agregado, simplemente ejecute:

$ /Applications/MAMP/bin/php/php5.3.6/bin/php --ri pcntl pcntl pcntl support => enabled

Si ves eso, ha funcionado! Si algo pcntl.so mal, puede eliminar el archivo pcntl.so del directorio de extensiones PHP de MAMP y eliminar la configuración de INI e intentarlo de nuevo.


Resolví el problema utilizando MacPorts.

Ejecutó el comando:

sudo port install php5-pcntl


Si tiene ''brew'' instalado en su MAC, entonces debería poder hacer:

brew install php53-pcntl

Aunque no soy un experto en MAMP.

==== EDIT ==== (En respuesta a ser rechazado)

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!


Solo para hacer mi vida más fácil, hice un guión del otro post . Lo usé para agregar extensiones pcntl, sysvmsg, sysvshm, sysvsem y otros a MAMP. Para usar cd al directorio de extensión o pasar el directorio como un argumento al script. Ejemplo ./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}"