勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHP8系で「AdminNeo」「Adminer」が正常に動作しない場合の対応方法

  データベース

PHP8.3と8.4系でAdminer6.0.1はログインページで表示崩れが発生、AdminNeo5.6.0は500エラーとなり正常に動作しなかった。サーバによっては問題無かったりもするので、恐らくPHP側の設定状況やモジュールの導入状況っぽいが原因は特定できず。とりあえず回避策としての対応方法をメモ。

 

症状

PHP8.3.3 / 8.4.24の環境でAdminer6.0.1はログインページ上で以下エラーメッセージが表示された。

Warning:  Uninitialized string offset 13288 in /path/to/adminer-6.0.1.php on line 165
Warning:  gzinflate(): data error in /path/to/adminer-6.0.1.php on line 167

また、ブラウザのソースコードを確認すると展開後と思われるCSS / JSでエラーになっているようで、表示が崩れているっぽい。

尚、AdminNeo5.6.0は500エラーとなる状況。

 

対応方法

古めのバージョンを使用する

同じサーバでもAdminer / AdminNeoともに5.5.0までは正常に動作した。

そのためAdminerはこちらから、AdminNeoはこちらから古めのバージョンを入手し、アップロードするとよい。

この方法だと今まで通り1枚のファイルで動作する。

未圧縮のものを使用する

公式ページだと複数のファイルが圧縮された1枚のファイルのバージョンが配布されているが、Githubだと未圧縮のバージョンが入手できるのでこちらを使用する。

未圧縮のバージョンをサーバにアップロード後、ブラウザからはAdminerの場合「adminer/index.php」に、AdminNeoの場合「admin/index.php」にアクセスすると表示される筈。

この方法だと複数のファイルをアップロードすることになるが、最新版を利用可能。

 

Adminer

公式サイト

https://www.adminer.org/

Github

https://github.com/vrana/adminer

 

AdminNeo

公式サイト

https://www.adminneo.org/

Github

https://github.com/adminneo-org/adminneo

 - データベース

  関連記事

MySQLで特定のテーブルにパーティショニング設定し高速化を図る方法
MySQLで特定のテーブルにパーティショニング設定し高速化を図る方法

以前に他社が設計されたログ系のテーブルを拝見した際にパーティショニング設定が行わ ...

データベース管理ツール「Adminer」のプラグイン及びテーマの導入方法
データベース管理ツール「Adminer」のプラグイン及びテーマの導入方法

ブラウザからデータベースを触る際はAdminer.phpを利用しているが、デフォ ...

MySQLでSELECT時に数値を3桁ずつのカンマ区切りに変換する方法
MySQLでSELECT時に数値を3桁ずつのカンマ区切りに変換する方法

MySQLで商品価格のような数値の値を3桁ずつのカンマ区切りで取り出したいという ...

データベース管理ツール「AdminNeo」にプラグインを導入してセキュリティ対策する方法
データベース管理ツール「AdminNeo」にプラグインを導入してセキュリティ対策する方法

以前データベース管理ツール「AdminNeo」を導入する方法をメモしたが、こちら ...

MySQLでLIKE検索時に大文字・小文字・半角・全角全て区別したい
MySQLでLIKE検索時に大文字・小文字・半角・全角全て区別したい

以前にMySQLであいまい検索時に大文字小文字は区別しないが、それ以外は全て区別 ...