PHP 7.3.8。MacOS Catalina 10.15 の ZIP 拡張機能

PHP 7.3.8。MacOS Catalina 10.15 の ZIP 拡張機能

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

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

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

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

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

拡張機能は設定可能になりました。必要なパスを追加してconfigureを起動しました。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

どこかにまだ間違った道があるかも知れません...

答え1

を使用して、 内にある右側を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

関連情報