Make sure you have a LAMP stack (Apache + MariaDB/MySQL + PHP):
sudo apt update
sudo apt install apache2 mariadb-server php php-mysql libapache2-mod-php php-mbstring php-zip php-gd php-json php-curl -y
Secure your database:
sudo mysql_secure_installation
sudo apt update
sudo apt install phpmyadmin -y
During install:
sudo phpenmod mbstring
sudo systemctl restart apache2
URL: http://your-server/phpmyadmin
Ubuntu 24.04 issue: root uses socket auth → password login fails.
sudo mysql
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'YourVeryStrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Login → Username: admin / your password
Change URL:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
# Change Alias /phpmyadmin → /secret-db
sudo systemctl restart apache2
Add basic auth:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd youruser
Add inside <Directory>:
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Enable HTTPS:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/ → restart/var/log/apache2/error.log