Minimal illustration with a stylized sailboat (phpMyAdmin logo) on a soft yellow background and the text โ€˜Manually Upgrade phpMyAdmin.

How to Manually Upgrade phpMyAdmin on Linux

Last updated on | 566 replies

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) or yum/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

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:

/usr/share/phpmyadmin/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.

566 replies

Leave a reply

Your email address will not be published. Required fields are marked *

  1. Hello, I have a question, I really don’t know if you can help me, but if you do, I would appreciate it too much! The problem is the following: I have a VPS, in it I put the Phpmyadmin, mysql, etc …, I also installed the OGP (Open Game Panel), the fact is that when I create the database of one of my server games, everything is fine, it connects well and everything, but when I enter the game and try to register, it does not let me, I get that the account “supposedly already exists”, but in reality it does not exist, a table must be created in the table ” users ” with the user’s data, but it is not like that, I get that error, if you could help me I would appreciate it, I know it does not have much to do with what you published, but I am new to this and I do not know how to fix it .

    Postscript: It is not the game, since the game is called “SAMP” (San Andreas MultiPlayer) and actually in other VPS if it works well, but not in mine, then the problem must be with MySQL or PhpMyAdmin, but I really don’t know.

  2. One problem with 5.0.2 was I had no tmp directory under /var/lib/phpMyAdmin (it is phpMyAdmin not phpmyadmin). Created the tmp directory, changed ownership as apache:apache, made sure it had write permissions. Had to restart httpd for these config changes. Then errors went away.
    When I set tmp pointer, site stopped working (did not exist – I did not confirm first).
    Centos7
    5.5.65-MariaDB – MariaDB Serve
    Apache/2.4.6 (CentOS) PHP/7.3.22
    phpMyAdmin: 5.0.2

  3. Great. I hate it when they keep updating shit so fast, and compatibility errors start occurring, but I love it when guys like you give us an simple fix.

  4. wow, just fantastic steps, every step was described, even how to save and exit editor in linus, Thank you

  5. This is one of the best support pages I have experienced in my entire coding life span. I am 80 years old, I started learning how to code 5 years ago and in my humble opinion it is not easy, however it becomes easier to understand each day I continue to learn. This particular page was extremely helpful with your detailed and specific instructions/guidelines. They (instructions/guidelines) were easy to understand and follow, I did not have to go to another page to get explanations for anything. THANKS, I really like your style.
    T.R.E.B.

  6. Unfortunately your tutorial seems to have made things worse, with an error coming up:

    Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

    session_write_close(): write failed: No space left on device (28)

    session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions)

    If anyone has any answers, then would be much appreciated!

  7. i always look at digitalocean for good tutorial for this kind of job. now i found another one.

    truly thanks

  8. Muchas Gracias el phpmyadmin me tenia sufriendo y no sabia porque era pero gracias a tu
    pagina lo pude soluciona un saludo esta muy completa la explicacion.

  9. Hola realice los camnios y todo funciono perfecto, pero Edite vendor_config.php y dejo de funcionar y ya no puedo hacer inicio en phpmyadmin.

    Que puedo hacer para corregir.

    gracias