Get phpMyAdmin Working with Nginx
How to install PMA with Nginx, to administer multiple MySQL dbs from anywhere. View table structure, browse data, run queries, backup and more.
Adding phpMyAdmin to the Nginx web server is very like adding a sub-site. Dead easy! The process takes 10 minutes, tops. This guide shows you how to add the client, configure a virtual host file with its symlink, and create a simple A record.
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
.. from blank box to cute-as server ..
with this easy-to-follow copy/paste guide.
22+ parts with video, here’s the index.
Create an A or AAAA Record
If we do this first, by the time everything else is done the new DNS record should have propagated and we’ll be ready to play.
Go to your web host’s DNS manager and create an A record, adding the following:-
| Hostname | IP | TTL (Time to Live) |
|---|---|---|
| phpmyadmin.mydomain.com | the IP you use for mydomain.com | shortest option |
After you save that, in the record itself, “phpmyadmin.mydomain.com” may appear as “phpmyadmin”. That’s fine.
Tidy tip: For a little added security, rather than phpmyadmin.mydomain.com, choose something like hackoff.mydomain.com.
You can exit your DNS manager. It’ll take a little while for the new setting to register. At my VPS Linode, it’s minutes not hours. Yours? Dunno, but probably no longer than an hour or two.
Install the phpMyAdmin Software
Logged into your remote command line interface, type:-
.. and when asked for confirmation, type ‘y’ and hit Return.
A blue screen pops up asking which web server to reconfigure. Press the spacebar to choose ‘Apache2′, then tab onto ‘OK’, pressing Enter.
But I’m using Nginx, not Apache?
Sure, valid point.
phpMyAdmin downloads Apache2 as a dependent file, if you don’t already have it installed. Truth is, I have no idea why and maybe someone out there can put me right. But hey, while it’ll take up a little space it won’t be wasting resources, ‘cos we won’t be using it.
When configuring PMA and it asks for a web server, all I know is that by choosing Apache2 and concluding the install, Apache will fail to start (because Nginx is using the port it wants) and you’ll never hear from Apache again. Sweet.
Besides, with my method, phpMyAdmin just works!
But, hey, if anyone can fill me in with some more detail about all this, that’d be grand, and I’ll improve this guide if possible.
So that’s PMA installed. Now to configure it.
Configure the phpMyAdmin Virtual Host (vhost) File
This configures PMA to work with Nginx. Let’s change directory, to where all our vhosts live:-
And open a new file, which we’ll call “phpmyadmin”:-
And paste this lot, swapping the three incidences of mydomain.com for your_domain.tld:-
NB If you’re using my anti-hack tip mentioned above, then change the line ..
.. to read something like ..
Create an Nginx Symlink for phpMyAdmin
Paste this into your terminal:-
And, finally, restart Nginx ..
.. Or, if you followed Edit bashrc for User-Friendly Linux, plus System Updates, just type:-
Go Mine Data
Connect to your database using:-
.. or, if you went the anti-hack route ..
Login and enjoy.
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
with this easy-to-follow copy/paste guide.
“My local PC runs Windows” Show me for Linux
“My local PC runs Linux” Show me for Windows
22+ parts with video, here’s the index ..
-
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Introducing vpsBible’s how-to guide for setting up a super-charged unmanaged VPS featuring Ubuntu and Nginx.
-
VPS (Virtual Private Server) vs Shared vs Dedicated
Before getting stuck in, let’s compare the web host types in detail and weigh up the differences between managed & unmanaged VPS.
-
Set Up a VPS Linux Distribution
Opening a VPS hosting account, we’ll choose, configure & launch a Linux server ‘distribution’.
-
Set Up Command Line Interface (CLI) using PuTTY
Now we’ve got a server to play with, we’ll connect to it, using the ’ssh’ protocol for a super-secure link.
-
Create a Linux User & Set Permissions
Initially you’ve logged into your remote Linux machine as ‘root’. We’ll add you as a user now, with root or SuperUser permissions.
-
Encrypt Data with OpenSSH & Auto-Login with PuTTY
Now we can use ‘authentication keys’ to shore up our connection while simplifying login to an automated, password-free yet secure process.
-
Harden the Secure Shell (SSH) & Create a Firewall
The final security step: galvanizing the OpenSSH protocol and setting up an ‘iptables’ firewall. Now the server is rock ruddy solid.
-
Edit bashrc for User-Friendly Linux, plus System Updates
We use the terminal a whole lot so let’s cut ourselves a break and create some command shortcuts, then update the server.
-
PHP5, MySQL and Xcache (for Platforms like WordPress)
We have our foundation, let’s lay some bricks: PHP for server-side web applications, Xcache to speed things up & MySQL for databases.
-
Add a Domain Zone to Your VPS
To make your server aware of yourDomain.com you’ll need a few ‘DNS’ records. Damn this is simple I’m practically asleep!
-
Prepare Linux Server for Email with Postfix
In order to send and receive email from our web applications we’ll install some software and tweak the ‘RDNS’ record.
-
Nginx (better than Apache) Web Server
OK I woke up .. let’s install this supersonic web server, tweaking its file structure & adding default configuration files.
-
Setup FileZilla for Secure FTP (SFTP)
There’s FTP, and then there’s ‘Secure FTP’. We’ll set up FileZilla using SFTP – and those authentication keys – for secure file transfers.
-
Serve Multiple Sites & Blogs with Virtual Hosts
We want a website folder structure, some permissions, some site-specific configuration files and, hey, we’ll hook up ‘FastCGI’.
-
Adding Sub-Domains with Nginx
Need a sub-domain? Here’s how to add www.sub.domain.com with an ‘A record’ and a configuration file. (I’ll allow you to skip this bit.)
-
Integrate A CMS Like WordPress, WP MU, Drupal etc
For those of you wanting to use a specific content framework, such as a CMS, blogging or forum software, pop in here and we’ll sort that out.
-
Configure phpMyAdmin for Nginx to Maintain MySQL
Rather than have to crunch databases via the command line, we can make life easier by adding this splendid tool to manage them.
-
Google Apps for Domain-Specific Email
GA’s free Standard Edition for catchall webmail – POP-ping or IMAP-ped to your desktop client – saves precious server resources for your webs.
-
Moving Day! How to Move Your Blog or Site
Nearly there. Here’s the web site or blog migration guide, relocating to your VPS with minimal or no downtime.
-
Appendix 1a: Nginx Control Panel
You’re migrating shared-to-VPS and want a GUI like cPanel? No you don’t, not after you read this! What’s more, you don’t need one either.
-
Appendix 1b: Nginx Control Panel Workarounds
For every control panel module there’s an equivalent terminal command. They’re all linked from here so, hey, no excuses!
-
Appendix 2: Add Web Sites Nginx Cheatsheet
Once you’ve set up your first site, adding more gets easier. Especially when you can refer to this. (Let’s face it, I’m just too good to you.)
Got a Question? Want to Comment?
This site has no comments system. We've got a better system!
Please use the link at the top of the post and goto this topic's forum thread:-
- to help build community
- for a superior knowledge base
- to keep info in one place, not diluted between forum & comments.
For those posts ported from Guvnr.com (pre-Feb/2010), archive comments remain.
Handy info from these comments is in the process of being ported to the forum and attributed to the original author.
If you think this idea sucks, let me know.
Thank you.




















Use phpMyAdmin & Nginx to Maintain Databases - VPS CARE #5 - GUVNR | Green Web hosting July 14th, 2009 at 2:05 pm
[...] original post here: Use phpMyAdmin & Nginx to Maintain Databases – VPS CARE #5 – GUVNR Top 5 Green Web Hosting Companies, Click [...]
Use phpMyAdmin & Nginx to Maintain Databases - VPS CARE #5 - GUVNR : evaluehost.com July 14th, 2009 at 2:18 pm
[...] More here: Use phpMyAdmin & Nginx to Maintain Databases – VPS CARE #5 – GUVNR [...]
Use phpMyAdmin & Nginx to Maintain Databases - VPS CARE #5 - GUVNR : tntwebhostings.com July 14th, 2009 at 2:44 pm
[...] See the article here: Use phpMyAdmin & Nginx to Maintain Databases – VPS CARE #5 – GUVNR [...]
Use phpMyAdmin & Nginx to Maintain Databases - VPS CARE #5 - GUVNR : hostingwebsitereviews.com July 14th, 2009 at 3:45 pm
[...] Continued here: Use phpMyAdmin & Nginx to Maintain Databases – VPS CARE #5 – GUVNR [...]
Use phpMyAdmin & Nginx to Maintain Databases - VPS CARE #5 - GUVNR : websiteshostingreviews.com July 14th, 2009 at 4:08 pm
[...] More here: Use phpMyAdmin & Nginx to Maintain Databases – VPS CARE #5 – GUVNR [...]
Mattew September 22nd, 2009 at 6:54 pm
Hi Guvnr,
thank you for this usful article. Everythig works, but I can’t get phpmyadmin work in SSL mode. Maybe you have any suggestions?
Mattew September 22nd, 2009 at 7:28 pm
I did it!
here is my config /usr/local/nginx/sites-available/phpmyadmin
server {
listen 443;
server_name phpmyadmin.domain.com;
access_log /home/public_html/domain.com/log/phpmyadmin.access.log;
error_log /home/public_html/domain.com/log/phpmyadmin.error.log;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
location / {
root /usr/share/phpmyadmin;
index index.php;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$
{
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
}
*Note that there must be generated certificates:
Generate Certificates
To generate dummy certficates you can do this steps:
$ cd /usr/local/nginx/conf
$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
More info – http://wiki.nginx.org/NginxHttpSslModule
the_guv September 23rd, 2009 at 10:20 am
@Mattew .. big cheers m8 .. that is gonna be mighty handy for some folks out there. Good of you to come back and post that.
Joey September 27th, 2009 at 7:25 am
do you know how to have phpmyadmin listen on 127.0.0.1:80 and then use ssh to access it. I heard that otherwise it is a security risk if somebody tries to brute force the password?
the_guv October 6th, 2009 at 6:49 am
@Joey .. hmmn .. never tried it, but what a good idea. then again, doesn’t that defeat teh object of having it in the first place?! all it is is a GUI for what you’d do with ssh anyhow, er, no? one thing i do do is to strap PMA onto a pretty irrelevant, parked, site on the vps, rather than in an obvious place like http://www.hackmyPMAplease.guvnr.com. Change the name too .. you can call it whatever you like, alpha-numerically .. so effectively that gives you a second password. (problem is, for the life of me, i can’t remember what mine’s called ..)
Alborz December 9th, 2009 at 7:51 am
I faced a problem, phpmyadmin gave me ‘blowfish_secret’ error.
To solve this error:
Go here:
/var/lib/phpmyadmin/blowfish_secret.inc.php
Copy the line:
$cfg['blowfish_secret'] = ‘your hash here’;
Paste that line at the end of:
/etc/phpmyadmin/config.inc.php
Install/Upgrade WORDPRESS with SUBVERSION: VPS BIBLE - vpsBible February 10th, 2010 at 4:59 pm
[...] If you’d prefer to relocate select data, there’s always phpMyAdmin. [...]
the_guv March 5th, 2010 at 6:13 am
Tx to a cracking plugin to sync the bbPress forum to WP comments .. comments are open now.
Post here and your comment is automatically posted in the relevant forum. Post there and vice-versa.
Comments below here have been imported from Guvnr. Bit of a timeline gap so apologies for that.
(Big cheers to Bobrik for wordpress-bbpress-syncronization.)
the_guv March 5th, 2010 at 6:15 am
test!
the_guv March 5th, 2010 at 6:48 am
test from bbPress