ZIP拡張機能を自分でコンパイルして、MacOS Catalina 10.15の組み込みPHPを使用しようとしています。
新しい MacOS Catalina では、phpize
ツール内に PHP ライブラリへの無効なパスが含まれているため、ツールは使用できなくなりました。ボリューム/usr
は読み取り専用でマウントされるため、これまで使用されていたすべてのメソッドが無効になります。
インストールしましたXcode 11AppStoreから。
次に、phpize
Xcodeをデスクトップにコピーして参照する別のものを作成しました。
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/include
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"
また、 を編集する際には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