Warning: PHP Startup: Unable to load dynamic library ‘mcrypt.so’

#php -ini > test
#vi test
Warning: PHP Startup: Unable to load dynamic library ‘mcrypt.so’ (tried: /usr/local/lib/php/20230831/mcrypt.so (Cannot open “/usr/lo cal/lib/php/20230831/mcrypt.so”), /usr/local/lib/php/20230831/mcrypt.so.so (Cannot open “/usr/local/lib/php/20230831/mcrypt.so.so”)) in Unknown on line 0

#php -m
Warning: PHP Startup: Unable to load dynamic library ‘mcrypt.so’ (tried: /usr/local/lib/php/20230831/mcrypt.so (Cannot open “/usr/local/lib/php/20230831/mcrypt.so”), /usr/local/lib/php/20230831/mcrypt.so.so (Cannot open “/usr/local/lib/php/20230831/mcrypt.so.so”)) in Unknown on line 0

ダイナミックリンクが切れているようです。

#cd /usr/local/etc/php
-rw-r–r– 1 root wheel 22 Oct 3 20:23 ext-20-mbstring.ini.sample
-rw-r–r– 1 root wheel 20 Sep 7 19:09 ext-20-mcrypt.ini
-rw-r–r– 1 root wheel 20 Oct 3 17:43 ext-20-mysqli.ini
-rw-r–r– 1 root wheel 20 Oct 3 17:43 ext-20-mysqli.ini.sample
ext-20-mcrypt.iniだけがタイムスタンプが異なります。
以前インストールしていたのが残っていたのでしょうか。
mcrypt.soも/usr/local/lib/php/20230831/にはありません。

ext-20-mcrypt.iniの中身は
extension=mcrypt.so
有効化されているようです。コメントアウトしないで、ファイル名を変更し、php -iniの結果を見ると、Warningは消えたので良しとしましょう。php72?古いバージョンで拡張モジュールが非推奨となったようで、恐らくphp83では存在しない?のかもしれませんね。

今回の件、サイトヘルスを見るまでは気にしておりませんでしたが、curlやmcyptなど有効化されていないのかモジュールが無いとのエラーが。今日の作業中はphp -mで確認したつもりでしたが、何かのインストールで消えてしまったのか?

#pkg info -r php83-pecl-mcrypt-1.0.6 に依存しているパッケージ(を必要とする)
php83-pecl-mcrypt-1.0.依存しているパッケージ

#pkg info -d php83-pecl-mcrypt-1.0.6 が依存しているパッケージ
libmcrypt-2.5.8_3
php83-8.3.0.r3
libltdl-2.4.7

パッケージがインストールされ、iniファイルだけ名前を変えるとdaily security run outputにて通知されるようです。
daily security run output

結局
#pkg delete php83-pecl-mcrypt-1.0.6
#pkg install php83-pecl-mcrypt-1.0.6
消して様子見と思いましたが、再インストールしました。
私は何をやっているのでしょうね。再インストールで/usr/local/lib/php/20230831から消えていたmcrypt.soは復活し、php -mやphp -iniでもWarningは出力されません。

数分後
#pkg delete php83-pecl-mcrypt-1.0.6
サイトヘルスで確認。問題なし。消して様子を見ます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)