How to Install phpMyAdmin on Ubuntu 20.04

In this tutorial, we will show you how to install phpMyAdmin on an Ubuntu 20.04 VPS. We will also be configuring MySQL Server to work with phpMyAdmin

Databases are very important for any application, and many projects use MySQL or MariaDB to meet this need. Managing MySQL and MariaDB database from command-line is a time consuming task for any developer. PhpMyAdmin is a free, open-source and web-based application that provides the administration of a MySQL or MariaDB database from a comfortable web interface. It comes with an advanced SQL editor that makes it easier to build and test complex SQL queries. It helps you to perform several database operations including, creating, deleting, querying, database, tables, columns, etc. It is most widely used by web hosting companies and enable webmaster to create and manage databases on their own.

Requirements

  • For the purposes of this tutorial, we will be using an Ubuntu 20.04 VPS.
  • You will also need a working LAMP stack in your server.
  • Full SSH root access or a user with sudo privileges is also required.

Connect to Your Server

Before starting, you need to connect to your server via SSH as the root user or any other user with sudo privileges.

To connect to your server as the root user, use the following command:

ssh [email protected]_ADDRESS -p PORT_NUMBER

Make sure to replace IP_ADDRESS and PORT_NUMBER with your actual server IP address and SSH port number.

Once logged in, make sure that your server is up-to-date by running the following commands:

apt-get update -y
apt-get upgrade -y

Configure MySQL Server

By default, the MySQL root user is set to authenticate using the auth_socket plugin by default rather than with a password in Ubuntu 20.04 running MySQL 5.7 or later versions. So you will need to change this default authentication method from auth_socket to mysql_native_password in order to log in to phpMyAdmin as MySQL root user.

To do so, login to MySQL shell with the following command:

mysql

After login, check the authentication method of all of your users run the following command:

mysql> SELECT user,plugin FROM mysql.user;

You should get the following output:

+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| debian-sys-maint | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | auth_socket           |
+------------------+-----------------------+

Now, change the authentication plugin from auth_socket to mysql_native_password for your root user with the following command:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secure-password';

Next, flush the privileges to apply the changes:

mysql> FLUSH PRIVILEGES;

Next, verify the authentication method again with the following command:

mysql> SELECT user,plugin FROM mysql.user;

You should see the following output:

+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| debian-sys-maint | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | mysql_native_password |
+------------------+-----------------------+

Now, exit from the MySQL shell with the following command:

mysql> EXIT;

At this point, your MySQL server is configured to use mysql_native_password authentication method.

Install PhpMyAdmin

By default, phpMyAdmin is available in the Ubuntu 20.04 default repository. You can install it by running the following command:

apt-get install phpmyadmin -y

During the installation, you will be asked to choose a webserver as shown below:

Select the Apache web server and click on the Ok button. You will be asked to configure a database for phpMyAdmin with dbconfig-common as shown below:

Select Yes and hit enter. You will be asked to provide a MySQL application password for phpMyAdmin as shown below:

Provide your password and click on the Ok button to finish the installation.

Next, restart the Apache service to apply the changes:

systemctl restart apache2

At this point, phpMyAdmin is installed in your server.

Access the phpMyAdmin web interface

Now, open your web browser and access phpMyAdmin using the URL http://your-server-ip/phpmyadmin. You will be redirected to the phpMyAdmin login page:


Provide your MySQL root username, password and click on the Go button. You should see the phpMyAdmin management interface in the following screen:

Secure phpMyAdmin

Because of its popularity, phpMyAdmin is a first target for attackers. So you should take extra care to prevent unauthorized access.
To do so, you should use Apache’s built-in .htaccess authentication and authorization functionalities.

First, enable the use of .htaccess file by editing the file phpmyadmin.conf:

nano /etc/apache2/conf-available/phpmyadmin.conf

Add the line AllowOverride All within the <Directory /usr/share/phpmyadmin> section:

<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride All

Save the file then restart the Apache service to apply the changes:

systemctl restart apache2

Next, create a .htaccess file inside the phpMyAdmin root directory:

nano /usr/share/phpmyadmin/.htaccess

Add the following lines:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Save and close the file. Then, create a password file with a user named user1 using the htpasswd utility:

htpasswd -c /etc/phpmyadmin/.htpasswd user1

You will be asked to set the password as shown below:

New password:
Re-type new password:
Adding password for user user1

Now, your phpMyAdmin is secured with additional authentication.

Open your web browser and type the URL http://your-server-ip/phpmyadmin.

You will be prompted to the additional account name and password as shown below:

Provide the username and a password you just configured, and click on the Sign in button. You will be redirected to the regular phpMyAdmin authentication page:

Provide your MySQL root username, password and click on the Go button. You should see the phpMyAdmin management interface as shown below:


Of course, if you are one of our Managed Ubuntu Hosting customers, you don’t have to install phpMyAdmin on your Ubuntu 20.04 VPS – simply ask our admins, sit back, and relax. Our admins will install phpMyAdmin (and even PHP if it isn’t already installed) on Ubuntu 20.04 for you immediately.

PS. If you liked this post about how to install phpMyAdmin on Ubuntu 20.04 VPS, please share it with your friends on the social networks using the buttons below, or simply leave a comment in the comments section. Thanks.

Leave a Comment

Move the slider all the way to the right to verify you are human. *