Title: WP-ServerInfo
Author: Lester Chan
Published: <strong>January 21, 2007</strong>
Last modified: August 9, 2026

---

Search plugins

![](https://ps.w.org/wp-serverinfo/assets/banner-772x250.png?rev=3639536)

![](https://ps.w.org/wp-serverinfo/assets/icon.svg?rev=978065)

# WP-ServerInfo

 By [Lester Chan](https://profiles.wordpress.org/gamerz/)

[Download](https://downloads.wordpress.org/plugin/wp-serverinfo.3.0.0.zip)

 * [Details](https://mfe.wordpress.org/plugins/wp-serverinfo/#description)
 * [Reviews](https://mfe.wordpress.org/plugins/wp-serverinfo/#reviews)
 *  [Installation](https://mfe.wordpress.org/plugins/wp-serverinfo/#installation)
 * [Development](https://mfe.wordpress.org/plugins/wp-serverinfo/#developers)

 [Support](https://wordpress.org/support/plugin/wp-serverinfo/)

## Description

WP-ServerInfo reports what your host is actually giving you: the operating system
and web server, the PHP version and every one of its limits, the MySQL version and
its variables, and the statistics of your memcached and Redis servers if you run
them.

There is nothing to configure and no settings screen. Every figure is read live 
from the host each time you open the page, so there is nothing stored, nothing to
keep in step and nothing that can go stale.

### Features

 * A Server Information widget on your Dashboard with the figures you look up most
   often
 * A full report at `Tools -> WP-ServerInfo`, in five tabs
    - General — OS, web server, hostname, IP and port, document root, server date
      and load, and the headline PHP and MySQL numbers side by side
    - PHP — version, Zend Engine, SAPI, loaded configuration file, loaded extensions,
      and every `php.ini` directive with its local and master value
    - MySQL — version and every server variable
    - memcached — the full statistics set, each row explained, when the Memcached
      or Memcache extension is installed
    - Redis — version, uptime, memory, clients, hit ratio and eviction figures, 
      when the phpredis extension is installed
 * Sizes and counts formatted in your own locale, and `memory_limit = -1` reported
   as Unlimited rather than as a number

### Donations

I spent most of my free time creating, updating, maintaining and supporting these
plugins, if you really love my plugins and could spare me a couple of bucks, I will
really appreciate it. If not feel free to use it without any obligations.

### Usage

Activate the plugin and you are done.

The Server Information widget appears on your Dashboard, and the full report is 
at `Tools -> WP-ServerInfo`. Both require the `manage_options` capability, because
between them they report your document root, your server’s IP address and your whole
PHP and MySQL configuration.

### The memcached and Redis tabs

Each tab appears only when the matching PHP extension is loaded, and by default 
each reports on the server running on this machine — `localhost:11211` for memcached,`
127.0.0.1:6379` for Redis. If your cache lives somewhere else, point the plugin 
at it from your theme’s `functions.php` or a small must-use plugin:

    ```
    add_filter(
        'wp_serverinfo_redis_server',
        function ( $server ) {
            $server['host']    = 'redis.internal';
            $server['port']    = 6379;
            $server['timeout'] = 1;

            return $server;
        }
    );
    ```

    ```
    wp_serverinfo_memcached_server takes the same shape, with `host` and `port`. Either filter may return only the keys it wants to change; the rest keep their defaults. A `unix://` socket path works as the Redis `host`, with `port` set to `0`.
    ```

### Handing the screens to somebody else

Every capability check goes through one filter, so a site that wants a non-administrator
to see the report changes it in one place:

    ```
    add_filter(
        'wp_serverinfo_capability',
        function ( $capability, $context ) {
            return 'report' === $context ? 'edit_pages' : $capability;
        },
        10,
        2
    );
    ```

    ```
    $context is `report` for the Tools screen and `widget` for the Dashboard widget, so the two can be answered differently.
    ```

## Screenshots

[⌊Tools -> WP-ServerInfo, the General tab: the host, the web server and the document
root⌉⌊Tools -> WP-ServerInfo, the General tab: the host, the web server and the 
document root⌉[

Tools -> WP-ServerInfo, the General tab: the host, the web server and the document
root

[⌊The PHP tab, which is phpinfo() inside the admin⌉⌊The PHP tab, which is phpinfo()
inside the admin⌉[

The PHP tab, which is phpinfo() inside the admin

[⌊The MySQL tab, every server variable and its value⌉⌊The MySQL tab, every server
variable and its value⌉[

The MySQL tab, every server variable and its value

[⌊The dashboard widget, a summary of all three⌉⌊The dashboard widget, a summary 
of all three⌉[

The dashboard widget, a summary of all three

## Installation

 1. Install and activate the plugin.

That is the whole of it. There is no settings screen. The Server Information widget
appears on your Dashboard and the full report is at `WP-Admin -> Tools -> WP-ServerInfo`.
Both require the `manage_options` capability, because between them they report your
document root, your server’s IP address and your whole PHP and MySQL configuration.

## FAQ

### Where did the screen go? It used to be under Dashboard

It moved to `Tools -> WP-ServerInfo` in 3.0.0. It is a report about your host rather
than a Dashboard panel, and Tools is where WordPress keeps that kind of screen. 
The Dashboard widget has not moved, and its “View all” button goes to the new address.

### The memcached or Redis tab is missing

The tab appears only when the corresponding PHP extension is loaded — Memcached 
or Memcache for one, phpredis for the other. Check the PHP tab’s Loaded Extensions
row. Installing an object cache _drop-in_ is not the same thing as having the extension.

### The tab is there but says it could not connect

The extension is installed but nothing answered on the address the plugin tried.
By default that is this machine on the default port; if your cache is on another
host, see “The memcached and Redis tabs” above.

### Server Load says N/A

The load average is a Unix idea, so it is always N/A on Windows. On other hosts 
the plugin tries `sys_getloadavg()`, then `/proc/loadavg`, then `uptime` through
a shell, and shared hosts commonly disable all three.

### MYSQL Query Cache Size is empty

The query cache was removed in MySQL 8.0, so there is no such variable to report.
Before 3.0.0 this raised “Attempt to read property on null” instead.

### Does the plugin store anything in my database?

One row, and a tiny one. There is nothing to configure, so the plugin stores no 
settings at all — only `wp_serverinfo_version`, which records the version last run
so that an upgrade knows what it is upgrading from. Deleting the plugin from the
Plugins screen removes it, along with the per-user Dashboard state WordPress records
when somebody closes, hides or reorders the widget.

### Is the PHP tab safe to look at over the shoulder of a client?

It is built from `ini_get_all()`, so it lists directives and their values and nothing
else. Before 2.0.0 it scraped `phpinfo()` output, which also printed your environment
variables and request headers.

## Reviews

![](https://secure.gravatar.com/avatar/348579e78e48ef412981a6b18bc836d7125427fe198a5e2118c737c39bb44d88?
s=60&d=retro&r=g)

### 󠀁[Menu does not display](https://wordpress.org/support/topic/menu-does-not-display-3/)󠁿

 [catuyen](https://profiles.wordpress.org/catuyen/) August 3, 2023

WP 6.2.2 and PHP 8.1. After installed, don’t know how to access the plugin, the 
Menu link does not display anywhere.

![](https://secure.gravatar.com/avatar/c9ed5760b3d6fce262ae3c6b6f3a1fbd918fc74f7e279af6318d618d1c56627b?
s=60&d=retro&r=g)

### 󠀁[5/5 – This does exactly what it says and nothing more](https://wordpress.org/support/topic/5-5-this-does-exactly-what-it-says-and-nothing-more/)󠁿

 [Chris David Miles](https://profiles.wordpress.org/chrisdavidmiles/) December 7,
2021

Great plugin! This is a lot better than just leaving a phpinfo.php file on a site
that’s easy to forget about. Thanks for making this!

![](https://secure.gravatar.com/avatar/85507d316a563472667b66007de8968bd764071c3d34b6bc4d31cca24e412099?
s=60&d=retro&r=g)

### 󠀁[Très bonne Application](https://wordpress.org/support/topic/tres-bonne-application-9/)󠁿

 [JeanRoche](https://profiles.wordpress.org/jeanroche/) May 18, 2020

Simple et efficace Et la version Pro est Nickel Merci

![](https://secure.gravatar.com/avatar/ccb8b3fee00266ed8ac9ed6431f214ae845a59a78d004602b0900e15c6d4e16f?
s=60&d=retro&r=g)

### 󠀁[Great plugin, great service](https://wordpress.org/support/topic/great-plugin-great-service-62/)󠁿

 [neveroils](https://profiles.wordpress.org/neveroils/) April 2, 2020 1 reply

I purchased the full version and it saved me a lot of time in migration. I had problems
and service has been good and fast. To be considered the limitations due to hosting
php settings before purchase (otherwise you have to do the migration on local and
then upload the whole website)

![](https://secure.gravatar.com/avatar/ddef5dcab10abe99f32bb7a45ac73a9f0eb10a5e22cee8b1f27ea385e815c48a?
s=60&d=retro&r=g)

### 󠀁[Great plugin!](https://wordpress.org/support/topic/great-plugin-24190/)󠁿

 [Aleksandar Mitic](https://profiles.wordpress.org/ravickalex/) December 27, 2019

Great plugin!

![](https://secure.gravatar.com/avatar/93160bd9885e1222bb48adadfc89aa7bfe13462bca249ca659b6537dfb09ae61?
s=60&d=retro&r=g)

### 󠀁[Super!](https://wordpress.org/support/topic/super-1646/)󠁿

 [Anonymous User 8804248](https://profiles.wordpress.org/anonymized-8804248/) December
13, 2019

Thank You! Great!

 [ Read all 17 reviews ](https://wordpress.org/support/plugin/wp-serverinfo/reviews/)

## Contributors & Developers

“WP-ServerInfo” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ Lester Chan ](https://profiles.wordpress.org/gamerz/)

“WP-ServerInfo” has been translated into 7 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/wp-serverinfo/contributors)
for their contributions.

[Translate “WP-ServerInfo” into your language.](https://translate.wordpress.org/projects/wp-plugins/wp-serverinfo)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wp-serverinfo/), check
out the [SVN repository](https://plugins.svn.wordpress.org/wp-serverinfo/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/wp-serverinfo/) 
by [RSS](https://plugins.trac.wordpress.org/log/wp-serverinfo/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

### 3.0.0

 * BREAKING: Requires WordPress 6.8 and PHP 8.2, up from 4.0 and 7.2.
 * BREAKING: The report moved from `Dashboard -> WP-ServerInfo` to `Tools -> WP-
   ServerInfo`. The page slug is unchanged, so the URL goes from `index.php?page
   =wp-serverinfo` to `tools.php?page=wp-serverinfo`
 * BREAKING: All thirty global functions are gone, with no deprecation shims — `
   format_filesize()`, `format_php_size()`, `display_serverinfo()`, `get_mysql_version()`,`
   get_serverload()`, `get_gd_version()` and the rest are now methods on `WP_ServerInfo_Format`,`
   WP_ServerInfo_MySQL`, `WP_ServerInfo_PHP` and `WP_ServerInfo_Cache`. They were
   never a documented API, and their generic names collided with other plugins
 * NEW: `wp_serverinfo_memcached_server` and `wp_serverinfo_redis_server` filters
   to point the memcached and Redis panels at a server other than localhost
 * NEW: `wp_serverinfo_capability` filter, so the report and the widget can be handed
   to somebody other than an administrator, separately
 * NEW: The memcached and Redis panels say the server is unreachable instead of 
   rendering an empty panel
 * BREAKING: On multisite the report and the dashboard widget now require `manage_network_options`
   rather than `manage_options`. A site administrator on a network is a tenant of
   it, and this screen prints the document root, the server’s own address, the loaded`
   php.ini`, every ini directive and every MySQL server variable — WordPress itself
   closes Site Health, which reports strictly less, to that same person. On a single
   site nothing changes. A network that does want to delegate it can, through `wp_serverinfo_capability`
 * FIXED: The PHP tab printed the value of every ini directive, including the ones
   that hold credentials rather than configuration — `mysqli.default_pw`, a redis
   DSN in `session.save_path`, an ssmtp password in `sendmail_path`, and the licence
   keys and API tokens that monitoring extensions add. Those values now read `[hidden]`;
   the directive is still listed, so a configured secret can still be told apart
   from an absent one. `wp_serverinfo_secret_directives` filters the list
 * NEW: A `wp_serverinfo_version` row recording the version last run, and an `uninstall.
   php` that deletes it on a single site and across a network
 * NEW: Uninstalling now clears the per-user dashboard state WordPress records for
   the Server Information widget, which previously stayed in the database forever
 * FIXED: “Attempt to read property on null” on every render of the General tab 
   and the dashboard widget, because MySQL 8.0 removed `query_cache_size` and the
   missing row was dereferenced anyway
 * FIXED: Lowercase PHP shorthand sizes (`128m`, `1g`) displayed as the raw string
   instead of a formatted size
 * FIXED: `memory_limit = -1` displayed as “unknown” rather than “Unlimited”
 * FIXED: `max_execution_time = 0`, meaning no script timeout, displayed as “N/As”
 * FIXED: A value sitting exactly on a unit boundary used the unit below it, so 
   one gibibyte displayed as “1,024.0 MiB”
 * FIXED: The server load probe ran `system('uptime')`, which prints its output 
   rather than returning it, so the raw uptime line was printed into the General
   table on hosts where `system()` was enabled
 * FIXED: The dashboard widget showed a bare “:80” for the server IP on IIS
 * FIXED: PHP 8 warnings from the memcached panel when the server did not report
   every statistic
 * CHANGED: Read the server load from `sys_getloadavg()` where available, falling
   back to `/proc/loadavg` and then a shell
 * CHANGED: Restructure the plugin into `includes/` with one class per concern, 
   all prefixed `WP_ServerInfo_`; the main file is now just the header, constants
   and boot
 * CHANGED: Remove the dead `phpinfo()` scraping fallback in the GD version probe
 * CHANGED: The screens use core’s own table and tab classes, and carry no inline
   styles at all. The RTL handling is one `dir` attribute rather than a stylesheet
   with a physical `text-align` and an `!important`
 * CHANGED: Add a PHPUnit test suite, both single site and multisite, and GitHub
   Actions CI
 * FIXED: The server load average was formatted by only one of the four ways it 
   is read, so what the General table showed depended on which one your host took.
   Every branch answers with a number now and it is formatted once, with the decimal
   separator your locale uses rather than always a point

## Meta

 *  Version **3.0.0**
 *  Last updated **13 hours ago**
 *  Active installations **10,000+**
 *  WordPress version ** 6.8 or higher **
 *  Tested up to **7.0.3**
 *  PHP version ** 8.2 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/wp-serverinfo/), [German](https://de.wordpress.org/plugins/wp-serverinfo/),
   [Spanish (Argentina)](https://es-ar.wordpress.org/plugins/wp-serverinfo/), [Spanish (Chile)](https://cl.wordpress.org/plugins/wp-serverinfo/),
   [Spanish (Colombia)](https://es-co.wordpress.org/plugins/wp-serverinfo/), [Spanish (Ecuador)](https://es-ec.wordpress.org/plugins/wp-serverinfo/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/wp-serverinfo/), and [Spanish (Venezuela)](https://ve.wordpress.org/plugins/wp-serverinfo/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/wp-serverinfo)
 * Tags
 * [memcached](https://mfe.wordpress.org/plugins/tags/memcached/)[mysql](https://mfe.wordpress.org/plugins/tags/mysql/)
   [php](https://mfe.wordpress.org/plugins/tags/php/)[phpinfo()](https://mfe.wordpress.org/plugins/tags/phpinfo/)
   [redis](https://mfe.wordpress.org/plugins/tags/redis/)
 *  [Advanced View](https://mfe.wordpress.org/plugins/wp-serverinfo/advanced/)

## Ratings

 4.8 out of 5 stars.

 *  [  16 5-star reviews     ](https://wordpress.org/support/plugin/wp-serverinfo/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/wp-serverinfo/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/wp-serverinfo/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/wp-serverinfo/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/wp-serverinfo/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wp-serverinfo/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wp-serverinfo/reviews/)

## Contributors

 *   [ Lester Chan ](https://profiles.wordpress.org/gamerz/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wp-serverinfo/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://lesterchan.net/site/donation/)