PHP 7.3.8. ZIP-Erweiterung unter MacOS Catalina 10.15

PHP 7.3.8. ZIP-Erweiterung unter MacOS Catalina 10.15

Ich versuche, das in MacOS Catalina 10.15 integrierte PHP zu verwenden, indem ich die ZIP-Erweiterung selbst kompiliere.

Im neuen MacOS Catalina phpizeist das Tool nicht mehr verwendbar, da es einen ungültigen Pfad zu den PHP-Bibliotheken enthält. Das Volume /usrwird schreibgeschützt gemountet, wodurch alle bisher verwendeten Methoden ungültig werden.

ich installierteXcode 11aus dem AppStore.

Dann habe ich ein weiteres erstellt phpize, das auf Xcode verweist, indem ich es auf meinen Desktop kopiert habe

cp /usr/bin/phpize ~/Desktop/

dann öffnete ich es zur Bearbeitung mitvim

vim ~/Desktop/phpize

und Zeile 8 wie folgt geändert

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

Dann heruntergeladenphp-7.3.8, dieselbe PHP-Version, die in MacOS Catalina 10.15 integriert ist.

Nachdem ich die Archivdatei im Downloads-Ordner entpackt hatte, öffnete ich das Terminal bis zu seinem Ordner

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

Sobald Sie drin sind, starten Sie das angepasste phpize, um die ZIP-Erweiterung für die Konfiguration vorzubereiten

~/Desktop/phpize

Die Erweiterung ist nun konfigurierbar. Ich habe configure mit zusätzlichem Pfad zum benötigtenzlib

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

Der nächste Schritt wäre kompilieren und installieren, aber ich bekomme immer noch den Fehlerphp.h file not found

make && make install

Vielleicht ist da noch irgendwo ein Irrweg...

Antwort1

CPPFLAGSSie können den Zeiger makenach rechts verwenden /usr/include, der sich im Inneren befindet 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"

Beachten Sie auch, dass beim Bearbeiten phpizekeine Leerzeichen um das Rechtszeichen ( =) stehen dürfen.

BEARBEITEN

Auch das Bearbeiten des Folgekommentars schlägt fehl, da die Erweiterung nicht an die richtige Stelle verschoben werden kann. Sie müssen den Befehl aber trotzdem ausführen, da er die Datei make installsigniert .*.so

Sobald make installes ausgeführt wird, verschieben Sie die ausführbare Datei an einen sicheren Ort. Ich verwende /usr/local/php/extensions.

Zum Beispiel mit Xdebug(ändern Sie den .soNamen in den Namen Ihrer Erweiterung):

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

Anschließend bearbeiten Sie die PHP-Konfiguration, um Ihre Erweiterung zu aktivieren sudo nano /etc/php.ini, indem Sie unten die erforderlichen Zeilen hinzufügen (ich kenne die genaue Zeile für „zip“ nicht).

Wenn dies erledigt ist, starten Sie zur Sicherheit den integrierten Server neu:

sudo apachectl restart

verwandte Informationen