WP-DBManager by Lester Chan is a popular WordPress plugin. With over 811,000 downloads as of this writing, WP-DBManager is a full-featured database management and backup tool that allows you to optimize, repair, backup, and restore your WordPress installation's MySQL database. In addition, the plugin can delete backup copies of your database, drop tables, and run selected queries. It also supports the automatic scheduling of back ups, optimization, and repair of your database. Sounds like a great tool, doesn't it?
WP-DBManager Installation Issues
It really is a great plugin once you get it running. Unfortunately, depending on how your host has PHP configured on your server, you are likely to receive the following error when you attempt to backup your database for the first time:
If the PHP installation is configured properly, you'll see the following screen instead:
Fixing your PHP installation so WP-DBManager works and you see the second screen instead of the first is as easy as adding the following code to your .htaccess file:
- suPHP_ConfigPath /home/<your-path>/public_html
- <Files php.ini>
- order allow,deny
- deny from all
suPHP_ConfigPath /home/<your-path>/public_html <Files php.ini> order allow,deny deny from all </Files>
At this point, you're probably wondering what this code actually does. Let me explain.
suPHP is a tool for executing PHP scripts with the permissions of their owners. It consists of an Apache module (mod_suphp) and a setuid root binary (suphp) that is called by the Apache module to change the uid of the process executing the PHP interpreter.
This option tells mod_suphp which path to pass on to the PHP-interpreter (by setting the PHPRC environment variable). Do *NOT* refer to a file but to the directory the file resists in. You must have a valid php.ini file for the version of php you are using in the directory specified in this path.
E.g.: If you want to use "/path/to/server/config/php.ini", use "suPHP_ConfigPath /path/to/server/config".
The rest of this code secures the php.ini file in the specified path from access through a web browser. Restricting directory and/or file access s one of the most frequently uses of .htaccess. To deny all http requests for the restricted php.ini, add the "deny from all" directive as shown to your .htaccess file.