PHP8へのupgrade失敗

serverのportsをupgrade

長いことWordPressのダッシュボードに

このサイトは古いバージョンの PHP (7.4.33) を実行しており、セキュリティアップデートを受け取れません。更新する必要があります。

PHP とは何ですか ? サイトにどう影響しますか ?

PHP は、WordPress の構築に使用されるプログラミング言語の1つです。PHP の新しいバージョンは、定期的にセキュリティ更新を受け取り、サイトのパフォーマンスを向上する可能性があります。 PHP の推奨バージョンは 8.3 以上です。

と出ていた。
なので最新のphp8.4に入れ替えることにした。
序でにMacPortsのselfupdateとupgrade outdatedをしたら、WordPressが動かなくなった。
理由は簡単MySQL8がコンパイルに失敗し、mysqliが動かなくなってしまったから……
(中身はMariaDBなんだけどな、使っている側は関係ないよな)

コンパイルエラーのメッセージはこうだった。

TIME_UTCが定義されていないと言う。
TIME_UTCってなんだ?と調べたら、C11以降に実装されたらしく(意味解っていない)、一部のプラットフォームで定義されているらしい。
因みにMacOSでは定義されていないそうだ。(どうすんだよコレ)

該当箇所は
/opt/local/var/macports/build/mysql8-2312cd8d/work/mysql-8.4.6/storage/ndb/src/common/portlib/
だったので、其処のCMakeLists.txtに
SET(TIME_UTC 1)
を一行追加したりする。
って言うか、もう/opt/local/var/macports/build/mysql8-2312cd8d/work/build/
まで行って、makeしているんですがね……
できませんねぇ。(まぁ、理解しない儘書き込んだだけですからねぇ)

githubから古いのをインストールする方法が『39 MacPorts で古い port をインストールする』に書いてありました。
やってみましょう。
/opt/local/var/macports/build/内にmysql81ディレクトリを作りその中での作業にしました。(場所はvarなら良いかなと)
ここに書かれていた「git clone –single-branch https://github.com/macports/macports-ports.git」が無茶でかいファイルを落とします。結構な時間が掛かります。

次に出来上がったmacports-portsに入りmysql81を入れることにします。(理由は特にない)
sudo git checkout 2d10ee81d776b71e12c114f7cfb54263667e5765
checkoutの後ろの文字列は
https://github.com/macports/macports-ports/commits/master/databases/mysql8
ここで探した最新(version 8.4.1)以外の一番新しいもの『mysql8, mysql81: migrate to OpenSSL 3』と言うのがたまたま見つかったから。
其処のURLの最終部分です。
それから、database/mysql81へと移動。
sudo port install
したら出来上がり?

ダメでしたあぁ。

とllvm-16が必要。でもinstallできない。
port select llvm
すると

と出てきたので、
sudo port seelect llvm mp-llvm-16
で解決。

次に
port select clang
すると

clang-16はなかったので、インストールすることに。
そうしたら、またllvm-16をインストールしようとしてコケる。
なんでや?

結局、TimeMachineから/opt/local以下を復元することにした。
取り敢えずmysqliは動くようになった。
しかし、PHPは古くなっちゃってインストールのし直しだ(涙)

php8は無事に動くようになった?

上記をport upgrade outdatedするとmysql8のインストールでエラーが出て、5.7に戻せなくなる。(この為、何度となくTimeMachineにお世話になった)
最終的に残ったのは、

となった。
clang-17はerrorを吐いて終わる。
p5.34-authen-saslは“p5.34-crypt-urandom: Image error”で終わる。
他も似た様なもの……仕方がないので放っておく。

う〜ん、phpのversionが上げられない。(涙)

Browscapライブラリをインストールしてください。

Browscapライブラリをインストールしてください。

Slimstat Analyticsのリアルタイムを開いたら、このようなメッセージが出ていた。
「訪問者のブラウザとオペレーティングシステムを識別するために、 Browscapライブラリをインストールしてください。」
何時だか忘れたが、入れた気がするんだが……
“Browscapライブラリをインストールしてください。” の続きを読む