Code Styling Project

It’s not a bug, it’s always a feature.
  • Deutsch
  • English
  • rss
  • Home
  • Blog
  • Imprint
  • Development
  • Manuals
  • Bugfixing

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.

SystemPHPWordPressDatabase

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-v1.3.3.zip (4139 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.029s

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.

63 responses    Leave a comment

Adam

Adam

20.06.2009 | 01:40

I 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

Kel

20.06.2009 | 02:06

Yes - I love it too. I sent a tweet about it. Is awesomeness!!!
Thank you once again.

reply »

Viki

Viki

20.06.2009 | 11:45

Excellent 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

Daniel

20.06.2009 | 11:55

Great 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

codestyling

20.06.2009 | 15:26

Interesting 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

Daniel

21.06.2009 | 11:34

You can use 2.7 widget interface, it still works in 2.8.

reply »

baron

baron

20.06.2009 | 18:21

Works great, thank you

reply »

chris

chris

20.06.2009 | 19:25

i noticed a bug if you activate it when the download monitor plugin is installed, it wont show on the dashboard

reply »

codestyling

codestyling

20.06.2009 | 19:28

Thanks 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

Marcel

21.06.2009 | 08:48

Seems 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

codestyling

21.06.2009 | 13:39

Ok, 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

Marcel

25.06.2009 | 18:32

The 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

codestyling

25.06.2009 | 19:55

The 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

Deniz

21.06.2009 | 11:27

i 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

codestyling

21.06.2009 | 14:01

This 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

Alphawolf

05.07.2009 | 21:36

Hey 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

codestyling

05.07.2009 | 21:45

Hi 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

Alphawolf

05.07.2009 | 22:16

Well, unfortunately you cannot submit plugins that were already published before the start of the competition, which was the 1st of June 09. :-(

reply »

Nathan

Nathan

13.07.2009 | 21:03

Plugin 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

codestyling

13.07.2009 | 21:11

Ok, thanks for reply. I will check this and update the version if required.

reply »

Steve

Steve

14.07.2009 | 01:58

On 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

codestyling

14.07.2009 | 02:08

2nd 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

Steve

14.07.2009 | 02:47

Thanks for the update works great. Where can I donate?

reply »

codestyling

codestyling

16.07.2009 | 01:14

The donation button has been applied in in front of this comment section :-)

reply »

Robert Nelson

Robert Nelson

14.07.2009 | 02:14

Hi
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

codestyling

14.07.2009 | 02:20

As written above, is in progress, will be online as soon as possible.

reply »

lordfiSh

lordfiSh

14.07.2009 | 04:58

In Opera 10 the Button “Details »” didnt work

reply »

lordfiSh

lordfiSh

14.07.2009 | 05:24

sry u cant remove my last comment, it works

reply »

Samuel

Samuel

15.07.2009 | 16:15

Hi!

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

codestyling

15.07.2009 | 16:25

Thanks 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

tom

30.07.2009 | 11:42

Great 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

codestyling

30.07.2009 | 11:58

You 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

tom

30.07.2009 | 13:28

Many 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

codestyling

30.07.2009 | 13:34

I 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 »

Marcel

Marcel

13.09.2009 | 17:20

A very useful addition would be to see the memory usage per plugin. In this way it is easier to disable plugins that use a lot of memory if there is not much memory available anymore.

reply »

Stewart

Stewart

24.11.2009 | 18:35

Thanks for the great plugin. I added one little function: System Date/Time.

Thanks again!

reply »

Hikari

Hikari

02.01.2010 | 16:16

Hello, great plugin!! I’ve just installed it and am testing it ATM.

Regarding boot loader, I’d like to add 2 suggestions:

1) Instead of using ABSPATH, use WP_CONTENT_DIR, because wp-content may be outside Wordpress installation folder. It would be:

PHP
1
require_once(WP_CONTENT_DIR.'/plugins/wp-system-health/boot-loader.php');
timing: 0.037s

2) As you said, if plugin is removed this “require”_once may break Wordpress. So, how about checking if it exists before requiring it? :P

PHP
1
2
3
4
define('WP_SYSTEM_HEALTH_BOOT_LOADER',WP_CONTENT_DIR.'/plugins/wp-system-health/boot-loader.php');
if(file_exists(WP_SYSTEM_HEALTH_BOOT_LOADER)){
	require_once WP_SYSTEM_HEALTH_BOOT_LOADER;
}
timing: 0.036s

reply »

Thomas Scholz

Thomas Scholz

14.01.2010 | 13:24

If the installation failed with the message »open basedir restriction« replace in line 58 …

require_once(’boot-loader.php’);

… with …

require_once(dirname(__FILE__) . ‘/boot-loader.php’);

reply »

helices

helices

24.07.2010 | 17:44

WP System Health

How can I find HOW to interpret the graphs in this plugin/widget?

How do I know when something is BAD?

Best Regards,

Mike

reply »

nosurprise

nosurprise

28.11.2010 | 23:14

I’m wondering the same thing. As a WP user who knows little about ‘under the hood” things, how do I know what is good and what is bad? For example, under the database tab, I see that my revision (type) is at 88% and is colored red… I assume that is a bad thing? Is it better if the bars are lower? Some info on this would be really helpful, or perhaps this plugin is only useful for more advanced users?

reply »

codestyling

codestyling

29.11.2010 | 11:21

If you have more revisions than posts/articles, the database spends an lot of time to filter out relevant real content. Furthermore the database grows and grows and may reach faster the limitation (if there is one).
Conclusion: The more revisions are contained at DB the more time WP may take to produce your result pages. Also the speed of showing the editing screens and response times for editing articles will go down while revisions grows.
I have installed a plugin, that limits my revisions to 2 and if an article is not longer subject of change, if remove all revisions from.

reply »

Hikari

Hikari

05.12.2010 | 19:43

I believe you are asking too much from the plugin/author.

The plugin gathers useful information from a lot of places and put it all together in a way that’s easy to see. If somebody doesn’t understand one information, well at least the info is there, it would be much worse if it wasn’t.

Now it’s a matter of search Internet for info about that, ask in forums and communities, try to learn more about it and how to deal with it. Ask the author of a free plugin to teach you… at least pay him for the teaching :p

reply »

mike

mike

01.08.2010 | 20:00

Will WP System Health plugin soon upgrade to be compatible with the Wordpress 3.x…?

regards
mike

reply »

Voyagerfan5761

Voyagerfan5761

27.10.2010 | 06:36

I successfully added the boot-loader line at the top of my wp-config.php file without using ABSPATH. (Mileage will vary, of course.)

What’s interesting is that I used @include_once instead of require_once and it worked just fine. The @ will suppress errors if something is messed up, and using include instead of require will prevent a fatal error if I delete the plugin (now why would I do that? ;-) ).

In short, I think using the include_once function with the @ error-suppression operator is better for amnesia-proofing ( ;-) ) installations of the boot-loader module.

Great plugin!

reply »

codestyling

codestyling

27.10.2010 | 11:49

Thanks for outlining this. I will check this in near future and change the article so far. The ABSPATH is for open basedir restricted server installations, that are unable to locate the file relatively. Skipping this may work at your installation but not at all. And suppressing the error won’t show, that basedir restriction is the reason for not proper working.

reply »

Mark Griffin

Mark Griffin

13.11.2010 | 22:12

Hi, downloaded V1.3.2 from WP site and ran auto-install, got this error when I tried to activate it:

Fatal error: Call to undefined function: clone() in /export/home/dixie/csites/webs/www.capitalbarter1992.co.uk/htdocs/wp-content/plugins/wp-system-health/wp-system-health.php on line 78

Any suggestions appreciated!

reply »

codestyling

codestyling

15.11.2010 | 11:21

What version of PHP you are running at the Server? Normally this may happen at PHP 4.x versions (not all) but not at PHP 5.x versions. I’m not sure, why it doesn’t work at your system, I need more information to investigate this problem.

reply »

Florian

Florian

05.02.2011 | 13:36

hey,
at first…sorry for my very bad english :!

You must put this:
AddType application/x-httpd-php5 .php5
in you .htaccess if you have php5 installed.

This works by me :)

reply »

chris

chris

24.03.2011 | 23:19

just a small question on the Load Average. Is that CPU load in % ?

reply »

AnD

AnD

05.04.2011 | 20:44

Hi! It’s amazing tool, thank you!
Just one option miss for complete happiness:) it’s a logfile of load CPU, usage of memory, quantity of php-processes, quantity of connections (number of threads that gives the site at moment).
This will allow the administrator of website to see statistics how much website consumed of hosting resources, under real load on site (peak and average per day). And he can make better optimized website or make a decision to switch to another hosting tariff.

Load Average last 1,5,15 minute it’s good, but you can’t see to it for hours (for catching a peak’s).

Can you do logfile option for your greats plugin? Please :)
Or can you suggest anyone other plugin for monitoring consumed resources?

reply »

Torsten

Torsten

08.06.2011 | 12:19

I got the same error. PHP 4.4.9 on a Strato Managed Server. Do you need more information?

reply »

codestyling

codestyling

09.06.2011 | 17:32

This should not happend because the code checks the PHP version to avoid clone call. But as far as I have found, the comparison contains an unnecessary whitespace, may be PHP 4 can’t cope with that.
An update is scheduled for this plugin, should be solved too afterwards.

reply »

Torsten

Torsten

10.06.2011 | 13:59

Yes, it is just the unnecessary whitespace! After removing it, the plugin could be activated without any problems. Thank you very much!

reply »

funwidmasti

funwidmasti

09.06.2011 | 22:08

This plugin is gr8..!!!
thnx for the share

reply »

Mike

Mike

04.08.2011 | 19:06

Hi, aI have a small problem with the plugin. I do not see those nice graphs (bars) with percents, my graphs are emtpy in Firefox. In MS Explorer ots better, there are blue parts and part of the number is visible, part invisible. There are now round corners. Probably a CSS problem with new WP version?

reply »

Der_Serverhelfer

Der_Serverhelfer

11.08.2011 | 18:20

I hope this plugin helps me solving my update issue in Wordpress.

reply »

invader21890

invader21890

01.09.2011 | 18:39

My Wordpress installation has 39,39MB in use. WP System Health uses 18MB of memory is this normal? Are these 18MB usable is I deactivate WP System Health?

PHP Runtime Boot
(boot:wp-config) 0.55 % 360.14 kB |

System Health Boot
(boot:plugin) 28.67 % 18.35 MB |

Plugins Active
(hook:plugins_loaded) 51.36 % 32.87 MB |

Theme / Widgets
(hook:setup_theme) 51.40 % 32.90 MB

Localization File
(hook:gettext) 0.00 % -n.a.- |

Init WordPress
(hook:init) 53.95 % 34.53 MB |

Init Admin Center
(hook:admin_init) 61.23 % 39.19 MB |

Rendering Dashboard
(callback:dashboard) 61.54 % 39.39 MB |

reply »

Tiberius14

Tiberius14

17.02.2012 | 13:14

Thank you. Inspired from your work I create my first plugin:
http://www.tautologicalcode.net/wordpress-plugin-wp-really-simple-health/ released also at WordPress here : http://wordpress.org/extend/plugins/wp-really-simple-health-10/
thanks again and ciao from Italy
Tiberius14

reply »

Jon

Jon

23.02.2012 | 16:17

I’m not getting the colors in the bars, I get the text in white, but not the green red and so on.

Latest version of WP and your plugin.

Latest Fire Fox browser

On Mac

reply »

Chris

Chris

19.03.2012 | 18:04

This would be even more awesome for us if it supported network admin and multisite better. Great work, regardless.

reply »

Burak Birer

Burak Birer

09.05.2012 | 17:47

Hi, we are really having hard times about getting over 297 MB ram with the test suite.

We have a dedicated server which has 16 GB ram and the php memory_limit master value is 8192 MB . Local Value is also 8192 MB. But the tests say that we cannot go over 297 MB. Your help is really needed. Thanks

You can see here http://aliyyulala.com/info.php

reply »

codestyling

codestyling

10.05.2012 | 09:50

You are using a server based on “LiteSpeed” so i hav no idea how PHP will be executed there. May be problem inside the memory allocation of your PHP version because the str_pad used to build the memory will be executed inside C code of PHP itself. Or you have something monitoring your server additionally and kills the memory consumption as it will be detected as a wild script (unix watch dog?)

reply »

Burak Birer

Burak Birer

10.05.2012 | 14:22

Thank you for your kind answer, I just send your reply to host company now i wait info from them. I will share what they said.

Meanwhile do you think it is just about test suite, do you think that our buddypress based system can use the whole memory when we go public with 20k users? I mean in this case the ram will be used by many other requests coming from user process. Should i concern about ram allocation ?

Btw, the site will be made of

Wp + Bp + Salutation Theme with cubepoints and marketpress plugins.

reply »

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Navigation

  • Bugfixing
  • Development
    • WordPress Plugin: Codestyling Localization (en)
    • WordPress Plugin: Page Columnist (en)
      • Demonstration “Page Columnist”
    • WordPress Plugin: WP Native Dashboard (en)
    • WordPress Plugin: WP System Health (en)
  • Imprint
  • Manuals

Search

rss Comments rss valid xhtml 1.0 design by jide powered by Wordpress get firefox