Debian 10-re való frissítéskor észrevehetjük, hogy a phpMyAdmin csomag obsolete lett, azaz hivatalos tárolóból már nem telepíthető. Nem nagy baj, többnyire eddig is kerültük az
apt install webescuccrengetegfüggőséggelésésdisztribúcióspecifikuskonfigurációval
típusú megoldásokat, de ha esetleg van még ilyenünk, akkor ideje eltakarítani és beüzemelni egy jobb megoldást.
Először tehát takarítunk
apt --purge remove phpmyadmin
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
dbconfig-common dbconfig-mysql libjs-sphinxdoc libjs-underscore php-bz2 php-curl php-gd php-mysql php-php-gettext php-phpseclib php7.3-bz2 php7.3-curl php7.3-gd php7.3-mysql
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
phpmyadmin*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 24.8 MB disk space will be freed.
Do you want to continue? [Y/n]y
(Reading database ... 55135 files and directories currently installed.)
Removing phpmyadmin (4:4.6.6-4+deb9u2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
A felmerülő kérdésekre igent mondunk, azaz:
Deconfigure database for phpmyadmin with dbconfig-common?
Yes.
Delete the database for phpmyadmin?
Yes.
dbconfig-common: dumping mysql database phpmyadmin to /var/tmp/phpmyadmin.phpmyadmin.2020-12-01-10.08.mysql.5w9c3U.
dbconfig-common: dropping mysql database phpmyadmin.
dropping database phpmyadmin: success.
verifying database phpmyadmin was dropped: success.
dbconfig-common: revoking privileges for user phpmyadmin on phpmyadmin.
revoking access to database phpmyadmin from phpmyadmin@localhost: success.
Processing triggers for man-db (2.8.5-2) ...
(Reading database ... 53470 files and directories currently installed.)
Purging configuration files for phpmyadmin (4:4.6.6-4+deb9u2) ...
Jobb megoldás 1 - Adminer
Egyetlen PHP fájlból álló MySQL adminisztrációs felület, amit bemásolhatunk bármely PHP projektünkbe.
https://www.adminer.org/
Jobb megoldás 2 - Docker
docker-compose.yml
version: '3'
services:
phpmyadmin:
image: phpmyadmin
container_name: phpmyadmin
network_mode: bridge
environment:
- PMA_HOSTS=172.17.0.1
restart: always
ports:
- 127.0.0.1:81:80
Megjegyzések
A
PMA_HOSTS
(vesszővel tagolt lista) környezeti változóval adhatjuk meg a MySQL szervek ip címeit, vagy hosztneveit.
Indítás az yml fájlt tartalmazó könyvtárból
docker-compose up -d
Nginx vhost
server {
listen 80;
server_name phpmyadmin.domain.hu;
location / {
proxy_pass http://127.0.0.1:81;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header X-Real-IP $remote_addr;
}
}
MySQL konfiguráció
/etc/mysql/mariadb.conf.d/50-server.cnf
A MySQL szerver figyeljen az összes interface-en.
[server]
bind-address = 0.0.0.0
És még
mysql -h localhost -u root -p
SHOW GRANTS FOR 'root'@'localhost';
+--------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+--------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA unix_socket USING '*...' WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
SHOW GRANTS FOR 'root'@'%';
ERROR 1141 (42000): There is no such grant defined for user 'root' on host '%'
UPDATE mysql.user SET Host='%' WHERE Host='localhost';
UPDATE mysql.user SET plugin='mysql_native_password';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'root'@'%';
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `root`@`%` IDENTIFIED BY PASSWORD '*...' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)
Működik