Replies: 1 comment
-
This is not a packaging issue, moving to discussions. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Frequently asked questions
Description
Navigating to phpmyadmin will result in a blank screen. I expect this to simply function when installed via apt.
To Reproduce
Steps to reproduce the behavior:
apache2, php7.4-fpm, mariadb, phpmyadmin
The result is a blank screen.
Your understanding of what is happening
There seems to be going something wrong with phpmyadmin and its dependencies. It seems to not follow the right code path and crash if installed without specifically using php version 8.2. If that's not installed I encounter crashes. More specifically, this applies to the
<Directory /usr/share/phpmyadmin>
, which I guess makes sense, theSetHandler
directive on the other two directories, templates and libraries, is likely ignored as these are not entry points for the application and only called in by scripts in the main directory.For example, when installing and using version 7.4, the following error crashes php:
It tries to use function
array_is_list()
. Checking the php documentation for this function at https://www.php.net/manual/en/function.array-is-list.php shows that this function is only available from php version >=8.1.0 onwards. As 7.4 < 8.1, the function is undefined. Version 7.3 results in the same bug.When using php version 8.1, the following error crashes php:
I haven't managed to look more deeply into this as trying to understand this in the phpmyadmin code base took me too much time. I suspect it's another compatibility issue, albeit a far more complicated one, as the crash is happening completely differently from where the problem first occurs. It's an initialization error of the most-used variable in the whole program, with thousands of references to it. Phpmyadmin's "$dbi" variable is a global variable., which is a bit of a programming snafu, as this makes it very difficult to locate exactly where it should be initialized, but isn't.
What steps did you take to resolve issue yourself before reporting it here
Installing php8.2, using php-fpm to point to that version even though the site itself uses a different php version resolves the issue.
It's kind of tricky to configure. In this example the site uses php7.4 and php8.2 as its phpmyadmin.
Then, set X,Y to the right values here in the site and phpmyadmin.
(When set to any version but the latest, things crash).
Expected behavior
The problem is: This shouldn't be necessary; phpmyadmin should be compatible with php versions 7.2 and up as reported on their site at https://www.phpmyadmin.net/news/2022/5/10/phpmyadmin-520-released/ . The version installed with the package manager is reported to be 5.2.1. As indicated by
dpkg -l | grep phpmyadmin
Distribution (please complete the following information):
Debian 12, amd64, packages.sury.org.
Package(s) infodump:
See steps to reproduce. The versions of the relevant packages;
See the attached file for the complete list of packages on the system.
dpkg.txt
Other information
I have no idea whose fault it really is. Is it sury, debian, a config error, or phpmyadmin's code, I can't really tell from the complexity. If it turns out to be an actual packaging issue, but needs to be solved somewhere else, please report it there.
What I can say is that as a user I find this unexpected; I should be able to install any version of php >= 7.2, then phpmyadmin, then have it 'just work', with phpmyadmin from debian's main repository, and php from yours, as sury.org makes it easier to install multiple versions of php for compatibility reasons (mostly php deprecating things and breaking stuff very often).
Beta Was this translation helpful? Give feedback.
All reactions