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
公式サイト
Github
https://github.com/vrana/adminer
AdminNeo
公式サイト
Github
関連記事
-
-
MySQLで全国の市区町村のデータを入手し、抽出する方法
都道府県と市区町村が連携したセレクトメニューを作成したかった。具体的には大阪府を ...
-
-
MySQLにて指定したカラムがNULLもしくは空の場合、あらかじめ決めておいた内容で表示する方法
何らかのフォームとMySQLを組み合わせた際に任意入力の項目はそのカラムがNUL ...
-
-
MySQLでROW_NUMBER関数を使用してグループ毎に連番を設定する方法
以前にMySQLでオートインクリメントを使用せずにグループ毎に連番を設定する方法 ...
-
-
MySQLでテキスト(日本語、半角英数字)を暗号化・復号化する方法
MySQLでデータを登録する際に暗号化したいというケースがあった。対象のデータは ...
-
-
MySQLで「doesn't have a default value」エラーの対処
MySQLでINSERT時に「Field 'カラム名' doesn't have ...