Установка phpmyadmin на web-приложение, работающее на nginx

mau.market count phpmyadmin

Установка phpmyadmin на web-приложение, работающее на nginx

Вариант 1 - более правильный

Настроил на 10.33.0.53

Пример тут:  https://maumarket.gkomega.ru/dbexplorer/

Файл настройки на БД:

/var/www/maumarket/app/.env

Ставим пакет phpmyadmin и на этапе выбора автоконфигурации БД, ничего не выбираем!

В файл виртуалхоста надо добавить дополнительный location

location /dbexplorer {

alias /usr/share/phpmyadmin/;

location ~ \.php$ {

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $request_filename;

include fastcgi_params;

fastcgi_ignore_client_abort off;

}

}

Подробнее здесь: https://eternalhost.net/base/vps-vds/nginx-ustanovka-phpmyadmin-debian

Вариант 2 - установка на параллельный web-сервер apache

Для начала ставим apache2, libapache2-mod-php на нестандартный порт - 81.

Чтобы заработало, надо в файле /etc/phpmyadmin/phpmyadmin.service заменить порт 80\-\>81

Ошибка в phpmyadmin: count(): Parameter must be an array or an object that implements Countable

Такая ошибка появилась после установки  phpMyAdmin на https://maumarket.gkomega.ru/

Ошибка

Warning in ./libraries/sql.lib.php#601

count(): Parameter must be an array or an object that implements Countable

Решение - смена версии на более новую 4.9.7 или 5.0.4

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.tar.gz

Затем, в приложении maumarket надо еще слинковать каталог.

ln -s /usr/share/phpmyadmin /var/www/catalog/web-build/dbexplorer

Раннее нашел такое решение - которое не помогло.

Исправление 1. 

Открываем: "/usr/share/phpmyadmin/libraries/sql.lib.php", находим 613 строку:

|| count\($analyzed\_sql\_results\['select\_expr'\] == 1

И меняем ее на:

|| \(count\($analyzed\_sql\_results\['select\_expr'\] == 1))

Исправление 2. 

в строке 551

"/usr/share/phpmyadmin/libraries/plugin_interface.lib.php"

Заменяем

if $options \!= null && count\($options > 0) {

на

if $options \!= null && count\(\(array $options) > 0) {

systemctl reload nginx apache2

Готово.