Work Life Fun

brew upgradeしたらPHP8.0が使えなくなったが、PHP8.3にして解決

PHP

※当サイトはリンクに広告ページが含まれている場合があります

まず、動作環境は以下のとおり。

  • 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

皆さんが色々な記事を書いてくれていて本当にありがたいことです。

この記事も誰かの役に立てばいいですね😉

社労士のための「ほどほど」お悩み相談室

あなたのご質問・ご相談に、月1回、無料・本音で回答します。

ご質問・ご相談は、登録後に届くメールから送っていただけます。費用は一切かかりません。「お悩み相談室」というクローズドな場だからこそ、踏み込んだ内容の質問にも回答できます。

これまでに、こんなご質問・ご相談に回答してきました。

  • コンサル(3号業務)を主力業務にするには、どうすれば良いか?
  • どのようにして顧問料を上げれば良いか?
  • 営業が苦手で、新規の顧客獲得ができない
  • 業務をどう絞り込めば良いか?
  • 一人社労士のままで良いのか、人を雇うべきか?
  • 苦手・相性の悪い顧問先と、どう付き合うか?
  • 生成AIの時代、社労士は今後どう生き残るか?

なぜ、無料で同業の社労士からの相談に乗るのか?

それは「本当に顧客のために活動できる社労士仲間を増やしたい」からです。

私自身、社労士という資格に誇りを持っています。企業からの社労士に対する不満をよく聞きますし、「社労士なんて役に立たない」と思われることは、正直悔しいです。

  • 信頼される・信頼できる社労士の仲間を増やしていきたい

そんな想いから、少しでも社労士業界全体のレベルアップに貢献できればと考えています。

    登録は無料・月1回配信・配信解除いつでも可能
    ※ 登録後、本人確認のメールをお送りします。届かない場合は迷惑メールフォルダもご確認ください。


    up_line