Secure Your PhpMyAdmin: Change the Default Login URL
By default, the login page of phpmyadmin is located at http://<ip address>/phpmyadmin
. The first thing that you will want to do is change that URL. This will not necessarily stop attackers from targeting your server but will lower the risks of a successful break-in.
This is known as security through obscurity and while some people would argue that it is not a safe measure, it has been known to both discourage attackers and to prevent break-ins.
Note: Make sure you have a working LAMP or LEMP setup with PhpMyAdmin installed on your system, if not, then follow Setup LAMP or LEMP with PhpMyAdmin.
To do it in Apache or Nginx Web servers, follow the instructions as explained below:
Change PhpMyAdmin Login Page in Apache
On RHEL-based distributions, open the /etc/httpd/conf.d/phpMyAdmin.conf or /etc/phpmyadmin/apache.conf in Debian-based distributions and comment out the line(s) beginning with Alias.
# vi /etc/httpd/conf.d/phpMyAdmin.conf OR # /etc/phpmyadmin/apache.conf
Then add a new one as follows:
# Alias /phpmyadmin /usr/share/phpmyadmin Alias /my /usr/share/phpmyadmin
The above will allow us to access the phpmyadmin interface via http://<ip address>/my
. Feel free to change the Alias above if you want to use another URL.
In the same file, make sure the Require all granted directive is included inside the Directory /usr/share/phpmyadmin
block.
In addition, make sure Apache reads the phpmyadmin configuration in Debian/Ubuntu:
------------ On Debian and Ubuntu ------------ # echo "Include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf
Finally, restart Apache to apply changes and point your browser to http://<ip address>/my
.
------------ On CentOS/RHEL and Fedora ------------ # systemctl restart httpd ------------ On Debian and Ubuntu ------------ # systemctl restart apache2
Change PhpMyAdmin Login Page in Nginx
On the Nginx web server, we just need to create a symbolic link of PhpMyAdmin installation files to our Nginx document root directory (i.e. /usr/share/nginx/html) by typing the following command:
# ln -s /usr/share/phpMyAdmin /usr/share/nginx/html OR # ln -s /usr/share/phpmyadmin /usr/share/nginx/html
Now we need to change the URL of our phpMyAdmin page, we simply need to rename the symbolic link as shown:
# cd /usr/share/nginx/html # mv phpmyadmin my OR # mv phpMyAdmin my
Finally, restart Nginx and PHP-FPM to apply changes and point your browser to http://<ip address>/my
.
------------ On CentOS/RHEL and Fedora ------------ # systemctl restart nginx # systemctl restart php-fpm ------------ On Debian and Ubuntu ------------ # systemctl restart nginx # systemctl restart php5-fpm
It should open the phpmyadmin interface (as shown in the image below), whereas http://<ip address>/phpmyadmin
should result in a Not Found error page.
Do not log in using the database root user’s credentials yet. You don’t want those credentials going through the wire in plain text, so in the next tip, we will explain how to setup a self-signed certificate for the PhpMyAdmin login page.