WordPress Plugin: WP System Health (en)
| WordPress Version: | WordPress 2.7 or higher |
| PHP Version: | PHP 4.4.2 or higher |
| tested Browser: | IE7 | FireFox 2.0.0.16 | Opera 9.27 | Safari (Windows) 3.1.2 | Google Chrome |
| not supported Browser: | none known yet |

Very often i had a lot of service request belong to not proper working installations of WordPress or not valid configured servers. Furthermore most of the Blog owner are not enough experienced to provide the requested information to continue with help. That’s why i decide to write a small Dashboard Widget showing all the most important values need to know about an WordPress installation.
Requirements and Limitations
This Dasboard widget requires a WordPress version equal or higher than 2.7 and a PHP version of 4.4.3 and higher. This Dashboard extension only displays some information but doesn’t change them nor provides any changing capabilities. It’s also limit to users that are member of the group “Administrator”. All other user won’t get this Widget in their Dashboard and the widget doesn’t collect any data in this case.
Future plans
As you can see, the plugin contains no translation option. This is subject of next releases. Also the amount of information shown at Dashboard will become configurable in future and will be defined by an addtional backend page. This will also introduce the first interaction and modification options to aid the system, if something went wrong.
Small Showcase
Here are the screenshots illustrating the 4 categories the Widget shows. Each category contains more information as you get initially presented. They can be expanded to get a more detailed overview about your system.
I got a small amount of replies about warnings presented, that a call to PHP function exec has been denied for security reasons. This mostly occures, if your provider is massive restrictive with functions you can use at your PHP code. That’s why the version 1.1.3 notices this fact and avoids using this. You will alternatively get such a “System” Tab with additional information:

Installation
- Uncompress the download package
- Upload folder including all files and sub directories to the `/wp-content/plugins/` directory.
- Activate the plugin through the ‘Plugins’ menu in WordPress
- Navigate to your Dashboard and enjoy status informations
Download
actual version: wp-system-health-1.1.5.zip (1702 downloads)
(The plugin is also hostet at wordpress.org Plugin Repository and subject of automatic plugin update.)
professional setup extension
Caution: This section is for experienced user that are knowing what they are doing! The plugin can show extra capabilities but will set your blog out of function, if it’s not done properly.
You may have noticed a difference between my System Tab at screenshot and your shown one. You will initially get as first Checkpoint something like this:

This is normal and can’t be done automatically. To get the initial amount of memory PHP consumes before the WordPress core is starting you have to insert into your wp-config.php an additional line between the definition of ABSPATH constant and loading the wp-settings.php.
Because this depends on your installation (the location of your plugin directory) please adjust the sample shown below to meet your installation environment.
| PHP | |
1 2 3 4 | define('ABSPATH', dirname(__FILE__).'/'); require_once(ABSPATH.'wp-content/plugins/wp-system-health/boot-loader.php'); require_once(ABSPATH.'wp-settings.php'); ?> |
| timing: 0.085s | |
The important part is the line, where the boot-loader.php out of this plugin’s directory have to be required once. If it’s proper done, you will get at your Dashboard now the correct startup memory consume of PHP environment.
Attention: As said in the caution box, do it with care! Also remember, once you have successful done this and you want to delete the plugin from your webspace, that the additional line have to be removed too!
I hope, this Plugin may also be helpful for your service desk operations, it definitely reduces the time spend to get informations from somebody not experienced.










Adam
20.06.2009 | 01:40I hightlighted the WP System Health plugin on my website.
I really like the amount of detail you provide and the way you present it to the user in a compact dashboard widget. Great job.
reply »
Kel
20.06.2009 | 02:06Yes - I love it too. I sent a tweet about it. Is awesomeness!!!
Thank you once again.
reply »
Viki
20.06.2009 | 11:45Excellent approach - Gives a decent amount of information about whats going on under the hood of your WordPress blog, if its purring like a Ferrari or stalling like a Mercury Grand Marquis….
Good work here, I hope you take this development further!
reply »
Daniel
20.06.2009 | 11:55Great plugin! I have installed in on my website.
I have two suggestions:
- Remote open Files and Remote include Files should be disabled for security reasons, to prevent Remote File Inclusion attacks. Current description suggests that it will be good to enable them. Please change this description and move them to ‘Security and Safe Mode’ section;
- Could you create widget which can be added to blog like other widgets? It should show data from System tab. Of course it should be displayed for admin only.
reply »
codestyling
20.06.2009 | 15:26Interesting suggestions, thanks for sharing. I think, that i can move this to the Security Section and also change the description smoothly. The idea of an ordinary widget only gets displayed if the user is logged on and is member of administrator group sounds like a good idea. I will check, how this can be done safely (also keep in mind, that the widget interface has been changed between 2.7 and 2.8).
reply »
Daniel
21.06.2009 | 11:34You can use 2.7 widget interface, it still works in 2.8.
reply »
baron
20.06.2009 | 18:21Works great, thank you
reply »
chris
20.06.2009 | 19:25i noticed a bug if you activate it when the download monitor plugin is installed, it wont show on the dashboard
reply »
codestyling
20.06.2009 | 19:28Thanks for reporting, i will check this immediately.
Update: I have tested this plugin “download-monitor.3.1.3″ from WordPress Plugin Repository updated last 16.06.2009.
I have no problems to show my DashBoard Widget even if this plugin is installed, deinstalled or re-installed.
I think, that your list of download stats will consume such a lot of memory, that there is no more remaining to produce the Health widget or you are just using an outdated version of.
Could you please more precisely describe the issue, because i’m unable to reproduce the reported bug.
reply »
Marcel
21.06.2009 | 08:48Seems to be a great plugin to me, but when using four columns on the dashboard the layout is not so nice. Can this be fixed?
reply »
codestyling
21.06.2009 | 13:39Ok, i will check this with 4 Columns. But it also depends in the size of your screen. If you are using a width of 1024px you will have not enough space remaining in each column. Also at my widescreen resolution of 1680px the size per column is not very much. I will think about, how a suitable solution could look like.
reply »
Marcel
25.06.2009 | 18:32The actual screen width was 1440px.
Maybe you can display values below the heading instead of next to the heading if space is limited.
reply »
codestyling
25.06.2009 | 19:55The may be a suitable solution. But this would require a floating and also overflow hidden cutting texts, if they still not fit into space (h-size) and can’t be broken because of missing whitespaces.
reply »
Deniz
21.06.2009 | 11:27i get this error ;
Warning: exec() has been disabled for security reasons in /home/asitweb/public_html/wp-content/plugins/wp-system-health/boot-loader.php on line 20
when i remove line 20 from bootloader it works without this error .
But i cant see system checkpoints as you can see here ..
reply »
codestyling
21.06.2009 | 14:01This sounds interesting because this would result in the fact, that your provider did disable the function memory_get_usage() out of PHP runtime too. Could you please check following 2 points:
1.) at tab “PHP” in section “Security and Safe Mode” there is after expanding an entry “Disabled Function”. Could you please check whether memory_get_usage is part of the value shown there ?
2.) the plugin tries to get the memory information on different ways, if the above name function is missing. At unix system it runs into the case containing line 20 you wrote. Could you please test a small change? Uncomment this line and prepend a @ sign in front of the exec:
@exec("ps -eo%mem,rss,pid | grep $pid", $output);This should suppress the warning but not solve the memory evaluation problem. If you could send me the list of disabled funktion of point 1.) i could think about an other solution for your problem.
reply »
Alphawolf
05.07.2009 | 21:36Hey Heiko, I’ll keep the language for as this is your blog’s english section.
How about participating in the “WordPress Plugin Competition 2009 with your plugin in order to show german developer presence: http://weblogtoolscollection.com/pluginblog/ I’ve already submitted one.
reply »
codestyling
05.07.2009 | 21:45Hi Oliver, i have already done the registration but still not a author, just guest.
I also think about this one plugin and my longer running “Codestyling Localization” that now supports extended features and has been refreshed yesterday to 1.90 at repository.
I’m not sure but as i saw plugins older than CSL are attached, there seems to be also a good idea to place CSL instead.
reply »
Alphawolf
05.07.2009 | 22:16Well, unfortunately you cannot submit plugins that were already published before the start of the competition, which was the 1st of June 09.
reply »
Nathan
13.07.2009 | 21:03Plugin is not compatible with PHP 5.3
Warning: Cannot modify header information - headers already sent by (output started at /var/www/nathanr-ca/htdocs/wp-content/plugins/wp-system-health/wp-system-health.php:57) in /var/www/nathanr-ca/htdocs/wp-content/plugins/bad-behavior/bad-behavior/screener.inc.php on line 8
Warning: Cannot modify header information - headers already sent by (output started at /var/www/nathanr-ca/htdocs/wp-content/plugins/wp-system-health/wp-system-health.php:57) in /var/www/nathanr-ca/htdocs/wp-content/plugins/owa/owa_coreAPI.php on line 1070
Warning: Cannot modify header information - headers already sent by (output started at /var/www/nathanr-ca/htdocs/wp-content/plugins/wp-system-health/wp-system-health.php:57) in /var/www/nathanr-ca/htdocs/wp-content/plugins/owa/owa_coreAPI.php on line 1072
Warning: Cannot modify header information - headers already sent by (output started at /var/www/nathanr-ca/htdocs/wp-content/plugins/wp-system-health/wp-system-health.php:57) in /var/www/nathanr-ca/htdocs/wp-content/plugins/owa/owa_coreAPI.php on line 1070
Warning: Cannot modify header information - headers already sent by (output started at /var/www/nathanr-ca/htdocs/wp-content/plugins/wp-system-health/wp-system-health.php:57) in /var/www/nathanr-ca/htdocs/wp-content/plugins/owa/owa_coreAPI.php on line 1072
reply »
codestyling
13.07.2009 | 21:11Ok, thanks for reply. I will check this and update the version if required.
reply »
Steve
14.07.2009 | 01:58On activevation I get: Fatal error: Call to a member function pass_checkpoint_system_health() on a non-object in /home/waves8/public_html/wp-content/plugins/wp-system-health/wp-system-health.php on line 64
Any thoughts?
reply »
codestyling
14.07.2009 | 02:082nd Patch is on the way, i accidentally tagged an immediate version. The clean version will become 1.1.5 now.
Sorry for this accident.
reply »
Steve
14.07.2009 | 02:47Thanks for the update works great. Where can I donate?
reply »
codestyling
16.07.2009 | 01:14The donation button has been applied in in front of this comment section
reply »
Robert Nelson
14.07.2009 | 02:14Hi
I got the following error today when I tried to upgrade your plug in
Fatal error: Call to a member function pass_checkpoint_system_health() on a non-object in /home/nar321/public_html/wp-content/plugins/wp-system-health/wp-system-health.php on line 64
reply »
codestyling
14.07.2009 | 02:20As written above, is in progress, will be online as soon as possible.
reply »
lordfiSh
14.07.2009 | 04:58In Opera 10 the Button “Details »” didnt work
reply »
lordfiSh
14.07.2009 | 05:24sry u cant remove my last comment, it works
reply »
Samuel
15.07.2009 | 16:15Hi!
I like very much this plugin
(and the rest of your plugins too).
But I’m missing one info that it’s very useful for me, the cpu load.
I have WP-Serverinfo installed only for this reason. It would be very great if you add this feature to WP System Health.
reply »
codestyling
15.07.2009 | 16:25Thanks for this suggestion, this will be part of this plugin as soon as possible. Only have to check, what work arrounds may be needed to get similar information also on Windows hosted solutions or fallbacks, if provider did disable this function.
reply »
tom
30.07.2009 | 11:42Great plugin. But there´s a minor problem with the “detail” buttons (e.g. for me) , they stopped showing the detailed dropdown informations after updating wp to vers 2.8.2. Neither firefox, IE nor chrome are showing the required informations. Any suggestions?. btw there´s no difference in deactivating every obsolete plugins.
reply »
codestyling
30.07.2009 | 11:58You are using jQuery from Google API and not WordPress shipped version. I think, it depends on how this works at the backend, because expand/collapse actions depend on proper working jQuery. Could you explain, how you replaced the original shipped jQuery by Google API ones ?
This would help to find out, why it may not work as expected, i assume, that the order of loading or the state of contained fixes is not matching the normal WordPress behavoir.
reply »
tom
30.07.2009 | 13:28Many thanks for the fast reply! And with your suggestion you are totally right, your plugin is working. I replaced the JQuery in order to reduce the page script loading time (nice try). Therefore I used a repository plugin called “Use Google Libraries”. For the second part, to describe my coding skills - below average … .Lets try to sort this thing out, as far as I understand this. Both WP and Google are using the same Library (jQuery JavaScript Library v1.3.2). Both are loading in front, e.g. the same order, checked with firebug. The apparently difference is that google loads different parts (from the original wp appearance), they appeared in following order “http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js”, slightly delayed and followed by “…//wp-includes/js/jquery/jquery.color.js?ver=2.0-4561m” (looks like the original) and “http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js”. Hope this is somewhat a help.
reply »
codestyling
30.07.2009 | 13:34I will check this next week, because i’m on vacation a few days. Only for the purpose, why this happens. It may be interesting in terms of support for other issues and potentially a workarround or fix could be published either to the Google Scripts plugin or to my plugins.
reply »