PHPスクリプト実行時に「Class ‘ZipArchive’ not found」となった時の対応(macOS)

この記事は約3分で読めます。

GAEでWordPressを構築する時、上記エラーが出て多少ハマったので対応した内容を書いてみました。

環境情報
  • macOS:Catalina(10.15.4)
  • shell:zsh
発生したエラーと原因

PHPスクリプトを実行すると「Fatal error: Uncaught Error: Class ‘ZipArchive’ not found」というエラーが発生。

調べてみたところ、

  • 必要なPHP拡張機能が入っていない
  • PHPが最新ではない可能性がある

という事だったので、不足ツールのインストール並びPHPを最新化しました。

スポンサーリンク

Command Line Toolsの最新化

通常はターミナルで下記コマンドの実行だけでいいようです。

xcode-select --install

ただ、私の環境では次のエラーが表示されました。

xcode-select: error: command line tools are already installed, use “Software Update” to install updates

手動でアップデートするしかないようです。

こちらの手順を参考にさせて頂きました。

Command Line Toolsを手動でインストールする - Qiita
Command Line Toolsは入っているみたいだが怪しい$ xcode-select --installxcode-select: error: command line tools a…

※最新リリース版のCommand_Line_Tools_for_XcodeでOKです。

※私はCommand_Line_Tools_for_Xcode_11.4.1.dmgをダウンロードしインストールしました。

スポンサーリンク

/usr/local/sbinの対応(mac OS固有)

恐らくmac OS HighSierraあたりからだと思いますが、セキュリティ上の理由で/usr/local/sbinディレクトリが存在しなくなっています

phpのインストール前に、/usr/local/sbinの対応をしておく必要があります。

sudo  mkdir -p /usr/local/sbin
sudo chown -R $(whoami):admin /usr/local/sbin
スポンサーリンク

最新のPHPをインストール

最新のPHPをインストールするとZipArchiveも一緒に自動インストールしてくれるようです。

Homebrewでインストールしました。

ターミナルでの実行コマンドは下記の通りです。

brew update
brew install php@7.3
brew link php@7.3 --force

次にパスを通します。
zshでは次の通りになります。
※シェルによってパスの通し方は若干異なりますので、お使いのシェルに応じて適宜内容を変更して下さい。

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc

ターミナルを閉じ再度起動後、

php -v

を実行し、phpが最新バージョンとなっている事を確認します。

以上で作業は終わりです。

スポンサーリンク

参考情報

mac(HighSierra) + Laravel + Valet でつまずいたこと。。