PHP Server Monitor
Simple PHP tool for monitoring servers and websites
PHP Server Monitor is a lightweight script that checks whether websites and servers are up and sends notifications by email, SMS, or messaging services when they go down. It runs on common LAMP hosting.
Key features
- Website and port checks
- Email and SMS alerts
- Uptime history
- Runs on shared hosting
Pros & cons
Strengths
- Very easy to deploy
- Low resource use
Trade-offs
- Basic feature set
- Limited graphing
PHP Server Monitor replaces
Last reviewed Sep 13, 2026 · 791 words
For most self-hosters, Uptime Kuma is the better uptime monitor than PHP Server Monitor, and I will say that in the first sentence so nobody reads 800 words to find it out. PHP Server Monitor wins in exactly one situation, and it is a real one: you have a shared PHP host costing about $3 a month with MySQL and a cron tab and nothing else, and you want to know when your other machines go down. PSM runs there. Uptime Kuma, Gatus and the rest of the modern field need a process that stays running, which shared hosting does not give you. That is why a project started in 2010 with a basic feature set still has 2,189 stars and an active install base.
The whole thing is a cron job and a table
PSM has three moving parts: a web UI, a cron/status.cron.php script that runs the checks, and a MySQL database that stores servers, users and results. Installation is copying the files to a web root, creating a database, opening the URL and letting the installer write config.php. Then one cron line:
*/5 * * * * /usr/bin/php /var/www/phpservermon/cron/status.cron.php
Every 5 minutes the script walks the server list, performs a website check (HTTP status, optional string match, optional response-time threshold) or a service check (TCP connect on a host and port), records the result, and fires notifications for any status change. A run of 30 checks completes in a few seconds. There is no daemon, no WebSocket, no queue, so the memory cost is whatever PHP uses for a few seconds each interval, which is why 128 MB is generous.
There is an official Docker image if you would rather run it that way, but if you have Docker you have already lost the reason to choose PSM.
Notification channels are broad for its age
Email through PHP mail or SMTP, SMS through a long list of gateway providers (Clickatell, Textmarketer, Nexmo and a dozen more, several of them regional), Pushover, Telegram, Discord and generic webhooks. Per-user notification preferences mean a team can share an instance and each pick their channels. The SMS breadth is a tell about who runs this: small hosting shops and IT contractors who want a text message when a client's site is down and do not want to run infrastructure to get it.
Notifications fire on state change only, with an optional "notify after N consecutive failures" to suppress flapping, and a last-online / last-offline history per server. There is no maintenance window feature and no escalation, which matters more than it sounds once three people are getting the same text at 3 a.m.
Graphing is the gap, and it is a wide one
The uptime history page shows a percentage and a list of outages with timestamps and durations, plus a latency chart over a configurable range. That is all. No public status page, no per-check retention beyond a global cleanup, no SLA view, no grouping into services, no dependencies between checks. Uptime Kuma's public status pages alone are reason enough for anyone who has to show uptime to someone else. If you want the numbers in a proper dashboard, the monitoring category is where the Prometheus-style tools live, and PSM is not that shape at all.
Multi-user support is real but coarse: users are admins or plain users, and plain users see every server. There are no per-server permissions.
Security posture for an internet-facing PHP app
PSM has to be reachable to be useful, which on shared hosting means it sits on the public internet. It has had security releases over the years, and updates are manual: download the new version, copy it over, run the updater. Put it under HTTP basic auth or your host's access controls in addition to its own login, keep PHP current, and do not reuse the MySQL credentials from anything else. The checks it performs are outbound, so the monitored servers need nothing exposed beyond the ports you are already checking.
What I'd do
If you have a shared PHP host and no other compute, install PSM, set the cron to every 5 minutes, add SMTP and Telegram, and enable "notify after 2 failures". It will do the job for years with an annual update. In every other situation, run Uptime Kuma in Docker on the smallest box you own, or Gatus if you want checks defined in a file; the Gatus versus Uptime Kuma comparison covers that choice. PSM is the answer to a hosting constraint, not a preference.
Compare PHP Server Monitor
16 head-to-head comparisons.
- PHP Server Monitor vs Uptime Kuma
- PHP Server Monitor vs Beszel
- PHP Server Monitor vs Upptime
- PHP Server Monitor vs Gatus
- PHP Server Monitor vs Checkmate
- PHP Server Monitor vs Healthchecks
- PHP Server Monitor vs OpenStatus
- PHP Server Monitor vs Statping
- PHP Server Monitor vs Blackbox Exporter
- PHP Server Monitor vs Statping-ng
- PHP Server Monitor vs Vigil
- PHP Server Monitor vs Peekaping
- PHP Server Monitor vs Cloudprober
- PHP Server Monitor vs Monika
- PHP Server Monitor vs Bytebot Watch
- PHP Server Monitor vs Lunalytics
Similar monitoring & status apps
Uptime Kuma
Monitoring & StatusEasy self-hosted uptime monitoring tool
Replaces Pingdom, UptimeRobot
Netdata
Monitoring & StatusReal-time per-second infrastructure monitoring
Replaces Datadog, New Relic
Grafana
Monitoring & StatusOpen observability dashboards and visualization
Replaces Datadog
Prometheus
Monitoring & StatusMetrics-based monitoring and alerting toolkit
Replaces Datadog
Glances
Monitoring & StatusCross-platform system monitoring at a glance
Replaces Datadog
InfluxDB
Monitoring & StatusPurpose-built time series database for metrics and events
Replaces Datadog, AWS Timestream