In this tutorial, we will show you how to install phpMyAdmin with Nginx on Ubuntu 18.04 LTS. For those of you who didn’t know, phpMyAdmin is a web-based client written in PHP for managing MySQL and MariaDB databases. It provides a user-friendly web interface to access and manage your databases. To ease usage to a wide range of people, phpMyAdmin is being translated into 72 languages and supports both LTR and RTL languages.
This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo
‘ to the commands to get root privileges. I will show you the step-by-step installation phpMyAdmin with Nginx on an Ubuntu 18.04 LTS (Bionic Beaver) server.
Prerequisites
- A server running one of the following operating systems: Ubuntu 18.04 LTS (Bionic Beaver).
- It’s recommended that you use a fresh OS install to prevent any potential issues.
- SSH access to the server (or just open Terminal if you’re on a desktop).
- A
non-root sudo user
or access to theroot user
. We recommend acting as anon-root sudo user
, however, as you can harm your system if you’re not careful when acting as the root.
Install phpMyAdmin with Nginx on Ubuntu 18.04 LTS Bionic Beaver
Step 1. First, make sure that all your system packages are up-to-date by running the following apt-get
commands in the terminal.
sudo apt-get update sudo apt-get upgrade
Step 2. Installing phpMyAdmin on Ubuntu 18.04 LTS.
Use this command to install PHPMyAdmin on Ubuntu 18.04:
sudo apt install phpmyadmin
The installer will ask you to choose the web server that should be automatically configured to run phpMyAdmin. There is no option to choose Nginx, press TAB to select OK, and then Enter. We’ll configure Nginx in the next section.
Next, the installer will ask you whether you want to use the dbconfig-common tool to set up the database. Select Yes and hit Enter.
Enter a password for phpMyAdmin to register with the database, select OK, and press Enter.
You will be prompted to confirm the password, enter the same password, select OK, and press Enter.
Step 3. Configure Administrative MySQL.
Start by logging in to the MySQL server as the root user:
sudo mysql
From within the MySQL shell execute the following commands which will create a new administrative user and grant appropriate permissions:
CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'change-with-your-secure-password';GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
Step 4. Configure Nginx to serve phpMyAdmin.
In Nginx, a virtual host file can be found in etc/nginx/snippets
the directory. Let’s create a file called “phpmyadmin.conf
”:
sudo nano /etc/nginx/snippets/phpmyadmin.conf
Add the following content:
location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } }
Then, add the following line to each domain’s server block where you want to access phpMyAdmin using: domain.com/phpmyadmin:
include snippets/phpmyadmin.conf;
### /etc/nginx/conf.d/domain.com.conf server { # . . . other code include snippets/phpMyAdmin.conf; # . . . other code }
Step 5. Finally, test phpMyAdmin.
Now open your browser and surf to http://your-ip-address/phpMyAdmin
and your PHPMyAdmin will ask you for the user and password of your MySQL installation, you can use root as user and the root MySQL password, or any other MySQL user/password.
Congratulations! You have successfully installed phpMyAdmin. Thanks for using this tutorial for installing phpMyAdmin with Nginx on Ubuntu 18.04 LTS system. For additional help or useful information, we recommend you to check the official phpMyAdmin website.