※当サイトはリンクに広告ページが含まれている場合があります
まず、動作環境は以下のとおり。
- MacBook Air M1 2020
- Sonoma 14.4.1
- Homebrew 4.2.2
PHPは事務処理に便利
見積書や請求書の作成など品目が増えると、計算が必要になるため、PHPを使っています。
3桁ごとのカンマ処理を施してPDF化できるのも地味に便利ですし。
月末に請求書処理をしようと、PHPのローカルサーバーを立ち上げようとしたときに、事件が起こりました・・・
以下のようなエラーが発生。
$ php -v
dyld[5002]: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicuio.70.dylib
Referenced from: <A6D155AA-AC11-32AD-ADDE-5CD17CC3D936> /opt/homebrew/Cellar/php@8.0/8.0.19/bin/php
Reason: tried: '/opt/homebrew/opt/icu4c/lib/libicuio.70.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/icu4c/lib/libicuio.70.dylib' (no such file), '/opt/homebrew/opt/icu4c/lib/libicuio.70.dylib' (no such file), '/usr/local/lib/libicuio.70.dylib' (no such file), '/usr/lib/libicuio.70.dylib' (no such file, not in dyld cache), '/opt/homebrew/Cellar/icu4c/73.2/lib/libicuio.70.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/icu4c/73.2/lib/libicuio.70.dylib' (no such file), '/opt/homebrew/Cellar/icu4c/73.2/lib/libicuio.70.dylib' (no such file), '/usr/local/lib/libicuio.70.dylib' (no such file), '/usr/lib/libicuio.70.dylib' (no such file, not in dyld cache)
zsh: abort php -v
こういうときは慌てず、騒がず、エラー原因を1つずつ読んでいきましょう!
って、本当はかなり慌ててしまったのですが・・・😅
原因はHomebrewのアップグレード
最近、何かシステム関係でいじったかな、と記憶を辿っていくと、Homebrewのアップグレードをしていました。
なぜアップグレードをしたのかは記憶していません・・・🤣
ともかく、以下の記事を見つけ、エラーの理由がはっきりしました。
参考:【Homebrew】brew upgradeしたらPHP8.0が使えなくなった
$ ls /opt/homebrew/opt/icu4c/lib/
icu libicuio.73.2.dylib libicutu.73.dylib
libicudata.73.2.dylib libicuio.73.dylib libicutu.a
libicudata.73.dylib libicuio.a libicutu.dylib
libicudata.a libicuio.dylib libicuuc.73.2.dylib
libicudata.dylib libicutest.73.2.dylib libicuuc.73.dylib
libicui18n.73.2.dylib libicutest.73.dylib libicuuc.a
libicui18n.73.dylib libicutest.a libicuuc.dylib
libicui18n.a libicutest.dylib pkgconfig
libicui18n.dylib libicutu.73.2.dylib
つまり、エラーの原因は、
- brew upgradeした結果、icu4cのバージョンが73に更新されてしまっていた
- PHPは、icu4cのバージョン70を参照しようとしたが、バージョン70がないと怒っている
ということだったわけです。
PHP8.3にして解決
上の記事では、icu4cのダウングレード方法が解説されているのですが、ここで、私はある1つの事実に気づきました。
あれ、PHP8.0って、まだ使っていて大丈夫だっけ???
調べてみると、PHP8.0のセキュリティサポート期限は2023年11月26日・・・😅
ということで、以下の記事を参考にPHPを8.3にアップグレード。ついでに、icu4cの問題も自動的に解決されないかな、という期待を込めて✌
参考:【Homebrew】PHP7.4からPHP8.2へアップグレードする
php -vでバージョンを確認したところ、無事解決✌✌✌
$ php -v
PHP 8.3.11 (cli) (built: Aug 30 2024 16:34:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.11, Copyright (c) Zend Technologies
with Zend OPcache v8.3.11, Copyright (c), by Zend Technologies
皆さんが色々な記事を書いてくれていて本当にありがたいことです。
この記事も誰かの役に立てばいいですね😉
- 毎年のように改正される労働法令への対応に頭を悩ませている
- 総務や経理などの他の業務を兼務しているので、人事労務業務だけに時間を割けない
といった悩みを抱える企業の経営者・人事労務担当者向けに、公開型のブログでは書けない、本音を交えた人事労務に関する情報・ノウハウ、時期的なトピックに関するメールマガジンを「無料」で配信しています。
過去の配信分は公開しません。
情報が必要な方は、いますぐ以下のフォームから購読の登録をしてください。購読して不要と思ったら簡単に解除できますのでご安心ください。