PHP7.3.8. Extensão ZIP no MacOS Catalina 10.15

PHP7.3.8. Extensão ZIP no MacOS Catalina 10.15

Estou tentando usar o PHP integrado no MacOS Catalina 10.15 compilando sozinho a extensão ZIP.

No novo MacOS Catalina, a phpizeferramenta não é mais utilizável, pois contém um caminho inválido para as bibliotecas PHP. O volume /usré montado somente leitura, tornando inválidos todos os métodos usados ​​no passado.

Eu instaleiXcode 11da AppStore.

Então criei outro phpizeque faz referência ao Xcode, copiando-o para minha área de trabalho

cp /usr/bin/phpize ~/Desktop/

em seguida, abri-o para edição comvim

vim ~/Desktop/phpize

e linha 8 modificada da seguinte forma

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

Então, baixeiphp-7.3.8, a mesma versão do PHP integrada no MacOS Catalina 10.15.

Depois de descompactar o arquivo na pasta Downloads, abri o Terminal em sua pasta

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

Uma vez lá dentro, lancei o phpize customizado para preparar a extensão ZIP para configurar

~/Desktop/phpize

A extensão agora é configurável. Eu lancei o configure com caminho adicional para o necessáriozlib

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

A próxima etapa seria compilar e instalar, mas ainda estou recebendo o errophp.h file not found

make && make install

Talvez ainda haja um caminho errado em algum lugar...

Responder1

Você pode usar para CPPFLAGSapontar makepara a direita /usr/include, que está localizada dentro 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"

Observe também que, ao editar phpize, não deve haver espaços ao redor do sinal legal ( =).

EDITAR

Responder ao comentário de acompanhamento make installtambém falhará porque não é possível mover a extensão para o lugar certo. Mas você ainda precisa executar o comando, pois ele assinará o *.soarquivo.

Depois de make installexecutado, mova o executável para algum lugar seguro. Eu uso /usr/local/php/extensions.

Por exemplo com Xdebug(altere o .sonome para o nome da sua extensão):

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

Então você edita a configuração do PHP para habilitar sua extensão sudo nano /etc/php.iniadicionando as linhas necessárias na parte inferior (não sei a linha exata do zip).

Feito isso, reinicie o servidor integrado para ter certeza:

sudo apachectl restart

informação relacionada