Guides and tutorials

Hundreds of tutorials and step by step guides carefully written by our support team.

How to install and secure phpMyAdmin on Ubuntu 22.04?

Introduction

The phpMyAdmin is an open source web application written in PHP that is used to administer and manage MySQL databases. It provides a graphical user interface that allows users to create, modify and drop databases, tables, fields and records, as well as execute SQL queries and perform other database management tasks.

Before starting the tutorial, don't you have a Cloud Linux Ubuntu 22.04 server on which you can install your phpMyAdmin? Don't worry! With just one click, you can easily deploy it with SW Hosting.

cta:cloud_so_ubuntu_22

To install and secure phpMyAdmin on Ubuntu 22.04, follow the steps below:

Step 1: Upgrade the system

Before starting, it is important to ensure that you have upgraded to Ubuntu 22.04. To do this, open a terminal and type the following command:

sudo apt-get update && sudo apt-get upgrade

Step 2: Install Apache, MySQL and PHP

To use phpMyAdmin you will need to install an Apache web server, a MySQL database and the PHP programming language. To install these packages, type the following command in the terminal:

sudo apt-get install apache2 mysql-server php

Next, we need to change/set a new root password for the mysql server.

To change the MySQL root password on Ubuntu 22.04, follow these steps:

Open a terminal on your Ubuntu system. Log in to MySQL as root user by executing the following command and press enter:

sudo mysql -u root -p

Once you are logged in to MySQL, switch to the “mysql” database by running the following command

USE mysql;    

You can change the root password by running the following command. Replace <new-password> with the new password you want to set:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'new-password.';

If you want to change the root password for a host other than localhost, change the query to use the correct host instead of 'localhost'. Then run the following command to apply the changes and reload the privileges:

FLUSH PRIVILEGES;

You can exit the MySQL console by running:

EXIT;

Once you have done this, you can increase the security of your DB server by using the following command:

 mysql_secure_installation 

This command performs a number of basic security settings on MySQL to protect it from potential threats.

Step 3: phpMyAdmin installation

Now, you need to install phpMyAdmin on the server. To do this, type the following command in the terminal:

sudo apt-get install phpmyadmin

During the installation, you will be asked to configure some options. Select apache2 as the web server and Yes when asked if you want to configure the phpMyAdmin database with dbconfig-common.

Step 4: Configuring Apache for phpMyAdmin

Now you need to configure Apache for phpMyAdmin to work properly. In a terminal, type the following command:

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

This will open the Apache configuration file for phpMyAdmin. Inside this file, add the following lines just below the line starting with Alias:

file phpmyadmin.conf

<Directory /usr/share/phpmyadmin>
   AddDefaultCharset UTF-8
   <IfModule mod_authz_core.c>
      # Apache 2.4
      Require ip 127.0.0.1
      Require ip ::1
   </IfModule>
   <IfModule !mod_authz_core.c>
      # Apache 2.2
      Order Deny,Allow
      Deny from All
      Allow from 127.0.0.1
      Allow from ::1
   </IfModule>
</Directory>

Once you have added these lines, you need to save and close the file.

Step 5: Activate the phpMyAdmin configuration

Type the following command in the terminal:

sudo a2enconf phpmyadmin

This will enable the phpMyAdmin configuration in Apache.

Step 6: Restart Apache

To apply the changes to Apache, it is necessary to restart the web server. Type the following command in the terminal:

sudo systemctl restart apache2

Step 7: Protect phpMyAdmin with passwords

By default, phpMyAdmin is not password protected, which means that anyone with access to the phpMyAdmin URL can access the database. To password protect phpMyAdmin, follow the steps below:

  • Create a password file for Apache. In a terminal, type the following command
sudo htpasswd -c /etc/apache2/.htpasswd <username>

Where <username> is the username you wish to use to access phpMyAdmin.

  • Edit the phpMyAdmin configuration file. In a terminal, type the following command
sudo nano /etc/phpmyadmin/apache.conf

Within this file, add the following lines just below the line starting with Alias /phpmyadmin:

file apache.conf

<Directory /usr/share/phpmyadmin>
   Options FollowSymLinks
   DirectoryIndex index.php
     <IfModule mod_authz_core.c>
        # Apache 2.4
      <RequireAny>
           Require ip 127.0.0.1
           Require ip ::1
           AuthType Basic
           AuthName "Restricted Content"
           AuthUserFile /etc/apache2/.htpasswd
           Require valid-user
      </RequireAny>
     </IfModule>
     <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
     </IfModule>
  </Directory>

After adding these lines, you must save and close the file.

  • Then you need to restart Apache. To do this, type the following command in a terminal
sudo systemctl restart apache2

Step 8: Login to phpMyAdmin

You can now access phpMyAdmin by entering the URL "http://localhost/phpmyadmin" in your web browser. You will be prompted to enter the username and password you created in the previous step to access phpMyAdmin.

success With these steps you have installed and protected phpMyAdmin on Ubuntu 22.04. It is important to remember that phpMyAdmin is a powerful tool and that incorrect configuration can compromise the security of your server and database, so it is recommended that you use it with care and always make sure you have the latest updates and security patches installed.

Remember that if you do not yet have a Cloud server with a Linux operating system, you can easily deploy it with SW Hosting.

cta:cloud_so_ubuntu_22