Apacheが突然起動しなくなった

Apacheが突然起動しなくなった( icu4c のバージョン違い)→ その後

2024/8/25 更新
またなぜか icu4cが 74にアップデートされた。
PHPが動かない -> Apacheが起動しない。
ここで Homebrewをインストールし直してしまった。するとバージョンが 4.3.17 に上がり、それが原因か明らかではないは、以前調べた方法(下記)では icu4をダウングレードすることができなくなった。
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula 
が存在しないので、古いバージョンのソースをチェックアウトできなくなってしまった。ということで、icu4をダウングレードできない。よって PHP8.2をインストールできないとなってしまった。現在、PHPは 7.3.11を動かしている。
事象から見ると古いOSと 最新の Homebrewのバージョンの組み合わせの不一致と考えられる。OSを Mojava(10.14)から Catalina(10.15)にアップデートしたがやはり OSが古いと言われて同じ事象。BigSurへのアップデートはディスク容量が足りず断念。Catalinaで動かすことにしたのだが、こうなるとこの OSでは、PHP8を使えないことになるのだが? どうにも腑に落ちない。
2023/2/4 更新
ある日突然、部屋のローカルネットワークが繋がらなくなった。 なぜか知らんが Apacheが起動していないようだ。インターネットの記事だけを頼りに何とか対応した結果、動くようになった。ネットの集合知は素晴らしい。原因は、icu4cライブラリが知らないうちに最新版にアップデートされていたからである。以下はそのときの作業メモ。
まず system.logを調べてみる。確かに apacheの起動に失敗してるようだ。当然 apacheの error_lognには何も出ない。
apacheを自動起動するコマンド見つける。
apacheを自動起動するコマンド httpd-wrapperを実行したところ、次のメッセージを吐いた。
PHPが問題らしい。エラーの原因は PHPが必要とするダイナミックライブラリ libphp.soがロードできないから。さらにその原因は libicuio.69.dylibがロードできないかららしい。
そして、phpコマンドを実行しても同じエラーになる。
ネットでは同じような状況に陥った方が何人かいて、わかったことは、PHPを使うには icu4cライブラリのバージョン69以下が必要であること。それより上のバージョンでは PHPは動かないことであった。確かに、現状 PCにインストールされている icu4cライブラリのバージョンは確かに 71になっている。
何らかのきっかけで、icu4cライブラリが最新のバージョンにアップデートされてしまったらしい。前日は Node.jsのインストールのために brewを使用していたので、その過程で何かあったことは確かだ。ちなみに brewの upgradeコマンドを実行すると全てのインストール済みパッケージが最新に更新されてしまうそうだが、それをした覚えはない(自信はない)。
対処としては、icu4cライブラリをバージョン71から69へダウングレードする。ダウングレードの手順は次の通り。gitコマンド バージョン 69.1のソースをチェックアウトする。
icu4c を再インストールする。
エラーメッセージ "ERROR: icu4c v69.1 is too old, v71.x or later is required." というのが出ているのだが、インストールは出来ているいるようだ。(ちょっと気持ち悪いが。古いOSを使っていると色々なところで分が悪いものだ)
パケージの情報を確認
Homebrewの中身は gitによるライブラリ管理そのもののようなので、パッケージは全てこの方法により指定したバージョンに戻すことが可能と思われる。
PHPの再インストールを行う。めでたく PHPが動くようになった。なお PHPのバージョンは、確か 8.0くらいから(記録してなかった)、最新の 8.2.0にアップデートされている。
brew upgradeは怖いということはわかった。しかし、突然 Apacheが動かなくなってしまうのはあまりに理不尽ではないか? と私は憤っている。そもそもこの理屈だと、icu4cライブラリが最新の環境では PHPのインストールすらできないことになるのだが本当か? PHPとの連携はどうなっているのか? 誰が悪いのか? まだ、私の知らないことがあるのだろうか?

brew doctor

brew doctorはパッケージの中身を検証し、問題があればその原因と対処法(コピペでこのコマンドを実行すれば良いというほど具体的なもの)を教えてくれる。何かトラブルがあったら真っ先に確認すべきだ。今さら言うのも恥ずかしいがとても役に立つ。
どんなパッケージのインストールでも必ず出るのがこれ。そうは言っても大概はインストールできているので無視しているのだが、ものによっては本当にうまくいかないものがあるかもしれないと危惧はしている。こちらを参照。
実は、brewにる PHPの再インストールで、 makeにあまりに時間がかかっていたので、上記の理由によるものかと思って、途中で一度強制終了した。そのあと再びインストールしようとしても次のようなエラーになってしまい、どうにもこうにもいかなくなった。中断してはいけなっかたらしい。
そこで brew doctorに診てもらったら次のような警告があった。
指示通りに linkコマンド実行し、PHPの再インストールを行ったところ、おかげさまでできた。
--overwriteオプションが必要なことが分からず、ネットで調べて解決したのだが、エラーメッセージをよく見直したら、ちゃんとその通り指示されていた。メッセージはちゃんと読め。
最後に httpd.confを次のように修正する。Apacheを再起動し、めでたくローカルネットワークが使えるようになった。

brew doctor補足

icu4cのダウングレード作業の結果と考えられるが、次のような警告が出た。gitは詳しくないが、doctorが勧めるので一応指定のコマンドを実行しておいた。実行したらメッセージは消えた。
このメモをまとめるのも含め2日間の作業であった。結論は、早くOSをアップデートしろということ。