Introduction
This guide shows you how to manually upgrade phpMyAdmin on most major Linux distributions (e.g., Ubuntu, Debian, CentOS, Fedora). While tested on Ubuntu 24.04 running PHP 8, the steps are similar on other distros—just be sure to adjust file paths and package-manager commands if needed. If you have any issues, let me know in the comments.
Alternative Upgrade Methods (Package Managers, Control Panels, Docker)
While this guide focuses on manually upgrading phpMyAdmin by downloading the source files, you may not need these steps if:
- Package Managers (e.g., apt, yum, dnf, brew): If you installed phpMyAdmin with
apt-get
(Debian/Ubuntu) oryum
/dnf
(CentOS/Fedora), simply run:sudo apt-get update && sudo apt-get upgrade phpmyadmin
or
sudo yum update phpMyAdmin
(CentOS/Fedora).
Note that some distributions may lag behind the latest release. - Hosting Control Panels (e.g., cPanel, Plesk): In many shared hosting environments, phpMyAdmin is updated automatically through the control panel, so manual upgrades might break existing integrations.
- Docker/Container Environments: If you are running phpMyAdmin as a container, you can pull the latest Docker image (
docker pull phpmyadmin
) and recreate your container instead of manually downloading tarballs.
If you still prefer or need the latest release straight from source (for instance, your package repositories are outdated), then the steps below are the correct way to manually upgrade your phpMyAdmin installation.
1. Back Up phpMyAdmin
If you followed this guide before, make sure to delete any previous backup directory you created.
sudo rm -rf /usr/share/phpmyadmin.bak
Next, back up your current phpMyAdmin folder by renaming it:
sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak
Create a new phpMyAdmin folder (adjust this path if your distro or setup uses a different location, such as /var/www/html/phpmyadmin
):
sudo mkdir /usr/share/phpmyadmin/
Then change directory:
cd /usr/share/phpmyadmin/
2. Download and Extract phpMyAdmin
phpMyAdmin 5.2.2 (released Jan 2025) requires PHP 7.2 or newer and MySQL/MariaDB 5.5 or newer. To find your PHP version via the command line, run php -v
. If you need to upgrade PHP, check out this guide: How to Upgrade from PHP 7.x to PHP 8 on Ubuntu.
- For PHP 7.2 or newer, download phpMyAdmin 5.2.2.
- For PHP 7.1, download phpMyAdmin 5.1.4.
- For PHP 5.5 to PHP 7.4, download phpMyAdmin-4.9.11.
Visit the phpMyAdmin download page and locate the .tar.gz URL. In this guide, we’re using version 5.2.2 (released Jan 2025). If a later version is available, be sure to change the commands accordingly (and let me know in the comments so I can update the guide!).
Download phpMyAdmin (Note: you can also verify checksums from the official site or use GPG signatures to ensure file integrity):
sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-all-languages.tar.gz
Extract the archive:
sudo tar xzf phpMyAdmin-5.2.2-all-languages.tar.gz
Once extracted, list the folder contents:
ls
You should see a folder named phpMyAdmin-5.2.2-all-languages
. Move its contents to /usr/share/phpmyadmin
(or /var/www/html/phpmyadmin
, if that’s where your existing install is):
sudo mv phpMyAdmin-5.2.2-all-languages/* /usr/share/phpmyadmin
Log into phpMyAdmin to confirm the upgrade. You may see two errors:

3. Fixing Common phpMyAdmin Errors
3.1. “The configuration file needs a valid key for cookie encryption” error
You may see the error The configuration file needs a valid key for cookie encryption. A temporary key was automatically generated for you. Please refer to the documentation.
This means you should create a unique key for your phpMyAdmin install. phpMyAdmin first loads /usr/share/phpmyadmin/libraries/config.default.php
and then overrides those values with anything found in /usr/share/phpmyadmin/config.inc.php
.
Create config.inc.php
(again, adjust directory paths if you placed phpMyAdmin elsewhere):
sudo nano /usr/share/phpmyadmin/config.inc.php
Generate your own 32-character blowfish secret (e.g., using this generator) and paste it into config.inc.php
:
<?php
// Use here a value of your choice 32 chars long
$cfg['blowfish_secret'] = 'PASTE__32__CHAR__BLOWFISH_SECRET';
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
Save and exit (press CTRL
+ X
, press Y
, then press ENTER
)
Log out and back in to phpMyAdmin to confirm the error is gone.
3.2. “$cfg[‘TempDir’] (/usr/share/phpmyadmin/tmp/) is not accessible” error
If you see The $cfg[‘TempDir’] (/usr/share/phpmyadmin/tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.
You need to create this directory and make it writable:
sudo mkdir /usr/share/phpmyadmin/tmp
sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp
sudo chmod 750 /usr/share/phpmyadmin/tmp
Again, log out and log back in to confirm the error is resolved.
4. Clean Up
You can now delete the tar.gz file and the empty folder:
sudo rm /usr/share/phpmyadmin/phpMyAdmin-5.2.2-all-languages.tar.gz
sudo rm -rf /usr/share/phpmyadmin/phpMyAdmin-5.2.2-all-languages
If you’re certain your new phpMyAdmin install is working correctly, you can delete the backup folder as well:
sudo rm -rf /usr/share/phpmyadmin.bak
That’s all! Enjoy your updated phpMyAdmin installation.
Let me know if this helped. Follow me on Twitter, Facebook and YouTube, or 🍊 buy me a smoothie.
I’ve upgraded and within phpmyadmin it’s showing as 5.2 however when running dpkg -l phpmyadmin is says:
ii phpmyadmin 4:4.6.6-5ubuntu0.5 all MySQL web administration tool
any ideas?
Well, this is why this article exists. The repositories often do not have the latest versions of packages such as phpMyAdmin, so instead we install it manually. In doing this, we bypass
apt
anddpkg
is “dumb” to any version changes. Hope that makes sense?Just came here to say thank you 🙂
Great job!
Hi, Bro
Thanks for your great post! You are the tech God. 😀
And hope you can keep going for sharing more great posts in future.
I am your Fans.
Best
Hi,
I am very grateful for this description. Everything works fine.
Probably, I cannot count up to 32, because I always got the message ” The secret passphrase in configuration (blowfish_secret) is not the correct length. It should be 32 bytes long.”
Found this entry after I had to realize that php 8.1.7 requires phpmyadmin version 5.2 and higher.
Regards,
Dietmar
Thank you, I was in php8 and phpmyadmin 4.9 with errors, this helped.
wow, Thanks so much. That tutorial not only walked me through the process of installing phpmyadmin but also anticipated error. Thanks so much.
Working perfectly! Thank you very much!
Thank you for dong this HowTo Saves me a lot of Research today 🙂 <3
👍
This webpage for upgrading phpmyadmin is great!! Thank you.
I also encountered the same issue when installing v.5.2.0.
“The configuration file now needs a secret Passphrase (blowfish_secret).
CONFIG_DIR no longer exists in the vendor_config.php file.
I have not tried what was documented here as mention below by Chris.
https://docs.phpmyadmin.net/en/latest/setup.html#quick-install-1
Also have this new warning: The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why.
Or alternately go to ‘Operations’ tab of any database to set it up there.
Otherwise, it seems to be working fine.
Any updated suggestions would be great….and thanks again.
Thanks for the link, Marty. I have updated the guide on the recommendations from phpMyAdmin.
As for your storage error, I have never seen that before and cannot test for it. There’s plenty of comments about it over on Stackoverflow if your search. Good luck.
Thanks for the quick response on this issue. Worked great.
I’ll check into the other issue on Stackoverflow. Best regards.
Hello! Just tried to install phpMyAdmin 5.2.0 and I have ‘The configuration file now needs a secret passphrase (blowfish_secret)’ error. There is no ‘CONFIG_DIR’ variable in vendor_config.php. What should I do?
Guide has been updated!
I don’t have any mention of CONFIG_DIR in the vendor_config.php file
I’m using php 8.1.5 and phpMyAdmin 5.2.0
Can someone tell me what the new procedure is?
Guide has been updated!
For 5.2.0 CONFIG_DIR is not used so amend the configFile line instead, eg:
‘configFile’ => ‘/etc/phpmyadmin/config.inc.php’,
Taken from phpmyadmin/doc/html/setup.html#quick-install
You may like to add this to your documentation.
Aparently you have to create config.inc.php in directory that contain index.php:-
<?php
// use here a value of your choice at least 32 chars long
$cfg['blowfish_secret'] = '1{dd0`<Q),5XP_:R9UK%%8\"EEcyH#{o';
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
// if you insist on "root" having no password:
// $cfg['Servers'][$i]['AllowNoPassword'] = true;
Blowfish no longer works in 5.2.0
Any ideas?
Fixed now.
Very usefull and working perfectly fine with all above steps.
Thank you! The best guide!
Change to Raspberry Pi OS 64-Bit with:
Apache2 –> PHP8.1 –> MariaDB –> phpMyAdmin5.1.3
aca te dejo mis dieses
Thank you, you saved my bacon
Thank you! This is the best guide ever.
Thanks it’s all good now ! Good Job
Working very well. Thank you so much.
Thanks!! Very good!
Best guide out there, painless upgrade when following your description!
As requested, I let you know that phpmyadmin is at version 5.1.3 now. Thanks for updating your guide!
And thanks for providing these instructions, much appreciated!
Thanks 🙂
Thank you! God bless you!