web-dev-qa-db-ja.com

PHP 7.3.8。MacOS Catalina 10.15のZip拡張

組み込みのPHPをMacOS Catalina 10.15で使用して、Zip拡張機能を自分でコンパイルしようとしています。

新しいMacOSカタリナでは、内部にPHPライブラリへの無効なパスが含まれているため、phpizeツールは使用できません。ボリューム/usrは読み取り専用でマウントされるため、これまでに使用されたすべてのメソッドが無効になります。

AppStoreから Xcode 11 をインストールしました。

次に、デスクトップにコピーしてXcodeを参照する別のphpizeを作成しました

cp /usr/bin/phpize ~/Desktop/

次に、vimで編集のために開きました

vim ~/Desktop/phpize

そして8行目を次のように修正しました

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

次に、ダウンロード php-7.3.8 、MacOS Catalina 10.15に組み込まれている同じPHPバージョン。

ダウンロードフォルダーにアーカイブファイルを解凍した後、ターミナルをそのフォルダーまで開きました

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

中に入ると、構成するZip拡張機能を準備するためにカスタマイズされたphpizeを起動します

~/Desktop/phpize

拡張機能が構成可能になりました。必要なzlibへの追加パスを使用して構成を起動しました

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

次のステップはコンパイルとインストールですが、それでもエラーが発生しますphp.h file not found

make && make install

たぶん、どこかにまだ間違った道があります...

2
Viames Marino

CPPFLAGSを使用してmakeを右に指すことができます/usr/includeXcode.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"

また、phpizeを編集するときは、法的記号(=)の前後にスペースを入れないでください。

編集

フォローアップコメントに対処するため、拡張機能を適切な場所に移動できないため、make installも失敗します。ただし、*.soファイルに署名するため、コマンドを実行する必要があります。

make installが実行されたら、実行可能ファイルを安全な場所に移動します。 /usr/local/php/extensionsを使用します。

たとえば、Xdebugの場合(.soの名前を拡張機能の名前に変更します):

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

次に、PHP構成を編集して、拡張機能Sudo nano /etc/php.iniを有効にするために、下部に必要な行を追加します(Zipの正確な行がわからない)。

これが完了したら、組み込みサーバーを再起動して確認します。

Sudo apachectl restart
0
Louis Charette