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-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.

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

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