PHP 7.3.8. Extensión ZIP en MacOS Catalina 10.15

PHP 7.3.8. Extensión ZIP en MacOS Catalina 10.15

Estoy intentando utilizar PHP integrado en MacOS Catalina 10.15 compilando la extensión ZIP yo mismo.

En el nuevo MacOS Catalina, la phpizeherramienta ya no se puede utilizar porque contiene una ruta no válida a las bibliotecas PHP. El volumen /usrestá montado como de solo lectura, lo que invalida todos los métodos utilizados en el pasado.

lo instaléXcódigo 11desde la tienda de aplicaciones.

Luego creé otro phpizeque hace referencia a Xcode copiándolo en mi escritorio.

cp /usr/bin/phpize ~/Desktop/

luego lo abrió para editarlo convim

vim ~/Desktop/phpize

y modificó la línea 8 de la siguiente manera

includedir = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php"

Luego, descargadophp-7.3.8, la misma versión de PHP integrada en MacOS Catalina 10.15.

Después de descomprimir el archivo en la carpeta Descargas, abrí la Terminal en su carpeta.

cd ~/Downloads/php-7.3.8/ext/zip

Una vez dentro, inicié el phpize personalizado para preparar la extensión ZIP a configurar.

~/Desktop/phpize

La extensión ahora es configurable. Lancé configurar con una ruta adicional al requeridozlib

sudo ./configure --with-zlib-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/

El siguiente paso sería compilar e instalar, pero sigo recibiendo el error.php.h file not found

make && make install

Quizás todavía haya un camino equivocado en alguna parte...

Respuesta1

Puedes utilizar para CPPFLAGSseñalar makea la derecha /usr/include, que se encuentra dentro de Xcode.app:

INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

make CPPFLAGS="-I${INCLUDE_PATH}/php -I${INCLUDE_PATH}/php/main -I${INCLUDE_PATH}/php/TSRM -I${INCLUDE_PATH}/php/Zend -I${INCLUDE_PATH}/php/ext -I${INCLUDE_PATH}/php/ext/date/lib"

También tenga en cuenta que, al editar phpize, no debe haber espacios alrededor del signo legal ( =).

EDITAR

Para abordar el comentario de seguimiento, make installtambién fallará porque no puede mover la extensión al lugar correcto. Pero aún necesitas ejecutar el comando ya que firmará el *.soarchivo.

Una vez make installejecutado, mueva el ejecutable a un lugar seguro. Yo suelo /usr/local/php/extensions.

Por ejemplo con Xdebug(cambie el .sonombre por el nombre de su extensión):

sudo mkdir -p /usr/local/php/extensions
sudo cp $(php-config --extension-dir)/xdebug.so /usr/local/php/extensions

Luego edita la configuración de PHP para habilitar su extensión sudo nano /etc/php.iniagregando las líneas necesarias en la parte inferior (no sé la línea exacta para zip).

Una vez hecho esto, reinicie el servidor integrado para estar seguro:

sudo apachectl restart

información relacionada