# System Health

https://docs.wisecp.com/de/system-health

A live audit of the installation: 19 checks that read the platform, the server and your own settings, and name the ones that need work.

## Reaching the Screen

Panel menu: **Help** then **Health Status**: `{admin}/help/health`

The menu entry is only drawn for staff holding the health privilege, so a colleague who cannot see it is missing the right rather than looking in the wrong place.

The audit runs when the page opens. The screen asks the server for it, so what you read is the state of the installation at that moment, not a verdict stored earlier. While the answer is on its way the page shows placeholder rows; if it never arrives, a single line says the result could not be loaded.

## What Is on the Screen

Three bands, in the order you are meant to read them.

- **The verdict band**: The headline sentence with the number in it, the count badges behind it, the installation's own details, and a rail of ticks with one tick per check.
- **Report buttons**: At the right edge of the same band: **Check Again**, and two download icons that save the audit as a file.
- **To Do**: One card per check that did not pass, errors first and warnings after. The whole section is absent when nothing needs action.
- **Passed checks**: The checks that came back clean, each with the value it actually measured. It opens with the page and folds away with **Hide values**.

### The verdict band

The headline counts what is waiting for you, not what passed: **All 19 checks passed** when the list is clean, otherwise the number of errors and warnings added together. Under it the badges split that number, and a green badge states how many checks passed. When nothing is waiting those badges give way to a single green one reading **No action needed**, and the count of what passed is left to the headline.

The line below names the installation: its domain, the WISECP version, the PHP version, the database server, and when the audit ran. This is the line to read out when you open a ticket with your hosting provider.

The rail underneath is the whole audit in one strip. Each tick is one check, coloured by its result; hovering names it, clicking scrolls to it. A tick belonging to a passing check opens the folded panel first, so the click never lands on something invisible.

### The To Do cards

A card carries the check's name, what the audit found, and the way out. Four checks also list what they found: **PHP Extensions** lists the missing extensions, **File Permissions** the paths it could not write to, **Backup Capabilities** the missing components and **PHP Limits** the values that need raising.

Where the panel can fix the problem, the card ends with a button that opens the right screen. Where it cannot, an error card says so instead: **Fixed on the server, not from the panel.** Buttons are also privilege dependent, so a card that shows the note to one member of staff can show a button to another.

### The passed checks

Each passing check is one line: its name and the value behind it. That value is the point of the panel: the version you run, the session save path, the admin folder, the PHP limits in force, how long ago the scheduled tasks last ran. A green tick alone would say a check passed; the value says what it passed with.

## Fields

The audit is fixed: the same 19 checks run every time, grouped below by what they measure rather than by the order they run in. An installed module can add checks of its own, so an installation may report more than 19.

### Platform and versions

- **WISECP Version**: Warning when the update network answers with a release newer than the one installed. The card offers an **Updates** button; the passing line shows the version in use.
- **PHP Version**: Error when the PHP running the panel is older than **8.2**. Nothing in the panel can raise it, so this one goes to whoever runs the server.
- **Database Server Version**: Error when MySQL is below **8.0** or MariaDB below **10.3**. Which of the two you are on is read from the server's own version string, so the right threshold is applied without you telling it.

### What PHP is allowed to do

- **PHP Info Function**: Error when the info function is switched off in the PHP configuration. **PHP Limits** reads the server's settings through it, so while this one is failing the limits cannot actually be measured.
- **File (Read / Write)**: Error when any of the four file functions the product relies on is blocked. Uploads, logs, caches and configuration writing all stop with it.
- **Glob Function**: Error when the glob function is unavailable. It is how the product lists files it does not know the names of, such as language packs and templates.
- **XML Reader**: Error when the XML reading function is missing. Registrar and server modules that answer in XML cannot be parsed without it.
- **PHP Extensions**: Error when any of the seven required extensions is missing: ZipArchive, finfo, cURL, Multibyte String, OpenSSL, GD and Intl. The card lists only the missing ones; the passing line counts them as 7 / 7.
- **PHP Limits**: Error when **memory_limit** is under **256 MB** or **max_execution_time** under **120** seconds. A limit set to unlimited passes. The passing line shows both values in force.

### Writing and sessions

- **PHP Session**: Error when the session directory cannot be written, or when a marker the page left on load did not survive as far as the audit request. It is a round trip rather than a folder permission test, which is why it catches sessions that are written but not read back. The passing line shows the session save path.
- **File Permissions**: Error when any directory the product writes into is not writable: `templates/notifications`, `temp`, `resources/uploads`, the core folder and the `storage` and `configuration` folders inside it. The BotShield state file in storage has to be readable and writable as well. The card lists whatever failed.

### Scheduled tasks

- **Scheduled Tasks**: Reads the stamp the automation worker leaves behind on every round and measures how old it is. The card offers an **Automation dashboard** button; the passing line says how many minutes ago the worker was last seen.

The gap decides the verdict:

| Time since the last round | On this screen | What it means |
| --- | --- | --- |
| under 3 minutes | passed | Normal. A single missed minute is ordinary jitter. |
| 3 to 10 minutes | warning | Something is off, but it may still catch up on its own. |
| 10 to 60 minutes | warning | The workers have most likely stopped. |
| over 60 minutes | error | Automation is broken and everything it carries has stopped with it. |
| never seen | error | The cron entry was never added to the server, or has never fired. |

### Security settings

- **BotShield Firewall**: Warning when the firewall is switched off. The card opens **Security settings** at the firewall section.
- **Admin Panel Access URL**: Warning while the panel still answers on the standard `admin` folder, because that is the first address anyone scanning for a login page tries. The passing line shows the folder actually in use.
- **SSL Usage**: Warning when automatic HTTPS is off. It reads the setting, not the certificate, so switching it on without a working certificate would take the site down instead of securing it.
- **Fraud Protection**: Warning when the blacklist is off and no fraud module is enabled. Either one satisfies the check; both do not have to be on.
- **Web Access Protection**: WISECP installs as a single folder, so your database backups, configuration files and template sources all sit inside the web root, kept out of reach by `.htaccess` files. The check makes a real HTTP request from the installation to itself to confirm they are still unreachable, and lists by name any path that can be downloaded. The verdict is not the status code but whether the response carries the file's own bytes. nginx never reads `.htaccess` at all, and a host set to `AllowOverride None` ignores it on Apache too; in both cases the protection disappears silently. The same measurement also runs once a day on its own, so a break is recorded even if you never open this screen.

### Backup and cache

- **Backup**: Warning when no backup schedule is enabled. It asks whether backups are scheduled, not whether the last one succeeded, so a schedule that keeps failing still passes here.
- **Backup Capabilities**: Error when a component backups cannot run at all without is missing (archive handling, compression, directory traversal). Warning when a secondary one is missing (disk space reading, running system commands, the shell binary the streaming path uses); backups still run, more slowly. The card names whatever is missing.
- **Cache (Memory System)**: Warning when the cache is off. Nothing breaks without it, but every page repeats queries it could have remembered.

## Tasks

### Work through the To Do list

1. Read the verdict headline, then start at the top card: errors are listed before warnings on purpose.
2. Use the button on the card to open the screen that fixes it, or hand the card to whoever runs the server when it carries the note instead.
3. Come back and press **Check Again**.
4. The card leaves the To Do list and reappears in the passed panel with the value it now measures, and the headline count drops by one.

### Jump to one check

1. Hover a tick on the rail to see which check it is and how it came back.
2. Click it.
3. The page scrolls to that check. If it passed, the values panel opens first so the line you asked for is visible when you get there.

### Send the report to your host

1. Press the **.txt** icon for something you can paste into a ticket, or the **.xml** icon for something another system can read.
2. The file is written in the browser from what is already on screen, so it needs no second run and matches what you are looking at.
3. You get the environment line, then every check with its message and its list, grouped into errors, warnings and successes.

## Things to Watch

> **Fix Scheduled Tasks before anything else**
> 
> It is the only check whose failure quietly stops the product: renewals are not invoiced, overdue services are not suspended, queued mail is not sent and expiring domains are not chased. Nothing on any other screen announces this, which is why an hour of silence is reported as an error rather than a warning.

> **A card with no button is not yours to fix**
> 
> PHP version, extensions, limits, file permissions and the database server are all set outside the panel. Those cards deliberately carry no remedy button, because the only useful action is to send the finding to whoever runs the server. The report download exists for exactly that.

> **The downloaded report describes your installation**
> 
> Both files carry the domain, the versions you run, the session save path and every finding the audit made, along with any directory it could not write to. The **.xml** also carries the measured value behind each passing check, among them the admin folder in use and the PHP limits in force. That is what makes the report useful to a hosting provider and what makes it worth treating as an internal document rather than something to attach anywhere.

## Required Privileges

The screen and the audit behind it both need `HELP_HEALTH`, so staff without it cannot read the result by going at the request directly either. The Help menu it sits under opens for anyone holding one of that menu's own rights.

The remedy buttons follow the screens they lead to, and a missing right removes the button without hiding the check: `HELP_UPDATES_LOOK` for **Updates**, `AUTOMATION_SETTINGS` for the **Automation dashboard**, `SECURITY_SETTINGS` or `SECURITY_BACKUP` for **Security settings** and **Backup settings**, `SETTINGS_INFORMATIONS_CONFIGURE` for **General settings**, and `SETTINGS_FRAUD_PROTECTION` for **Fraud protection**.

## Related Articles

- [Updates](https://docs.wisecp.com/en/updates)
- [Automation Overview](https://docs.wisecp.com/en/automation-overview)
- [Backup and Restore](https://docs.wisecp.com/en/backup-and-restore)
- [Getting Started Guide](https://docs.wisecp.com/en/getting-started-guide)
