Releases: verzog/moodle-block_servermon
Release list
v1.9.1 — Session & shared-server isolation diagnostic fixes
block_servermon 1.9.1
A maintenance release that sharpens the accuracy of the session handler and shared-server isolation diagnostics in the debug footer. No new features or settings; all changes are read-only and best-effort, in keeping with the plugin's "always unconfirmed" tone. Safe drop-in upgrade from 1.9.0.
Fixed
- Session handler now reflects the effective backend. When $CFG->session_handler_class is unset, the panel resolves the handler the same way Moodle core's \core\session\manager does — reporting database sessions when $CFG->dbsessions is enabled (and the DB driver supports session locking), otherwise file. Previously a database-session site was mislabelled "defaults to file" and could falsely raise the Redis-inactive / file-session warning.
- /proc visibility no longer trusts getmyuid(). That function returns the owner of the PHP script file, not the worker's effective UID, so on hosts without the POSIX extension it compared /proc owners against the wrong identity. The check is now skipped unless a true effective UID is available.
- hidepid hardening is detected authoritatively. The check now reads the hidepid level from the /proc mount options (/proc/self/mounts), so a properly hardened hidepid=2 mount — which hides other users' /proc/[pid] directories from the listing entirely — is correctly reported as hardened. It also distinguishes "no other-user processes were running" (inconclusive) from "foreign processes exist but are hidden" (hardened), instead of giving a false signal either way.
- Unresolvable OS accounts are treated as incomplete, not failed. When neither /etc/passwd is readable nor posix_getpwnam() is available, a PHP-FPM pool whose user can't be looked up is now flagged undetermined rather than a hard "user not found" failure that wrongly downgraded the whole isolation verdict to Weak.
- Isolation verdict preserves "Incomplete" when pool configs are unresolved. The site-centric Partial ("running on its own dedicated pool") result is no longer returned when another pool's user is set via an include (undetermined) and the current request's pool wasn't positively matched as clean — such hosts now correctly report Incomplete.
Full changelog: v1.9.0...v1.9.1
v1.9.0 release - new features
1.9.0 highlights
Added: Redis sharing/security signals, PHP OPcache health, production-readiness checks, and server-health (swap + cron freshness with never-run warning).
Changed: improved Redis session detection; collapsible sections restyled as consistent toggle bars.
Fixed: phpcs control-structure spacing in the OPcache advisory.
What's Changed
- Improve Redis session configuration checks and surface misconfigurations by @verzog in #31
- Add OPcache, production-readiness, swap/cron and Redis-sharing checks by @verzog in #32
- Style section dropdowns as proper toggle bars by @verzog in #33
- Make all toggle bars visually consistent by @verzog in #34
- Add CHANGELOG with 1.9.0 release notes by @verzog in #35
Full Changelog: v1.8.1...v1.9.0
Server Monitor 1.8.1 — Shared-server isolation audit & Print/PDF
What's new in 1.8.1
Shared-server isolation audit (new)
A collapsible panel that checks whether a multi-tenant server isolates each site:
- OS users — per-site accounts from
/etc/passwd, including system-range
(nologin) app users as used by YunoHost/Plesk/cPanel; the current request's
user and FPM-pool owners are tagged. - PHP-FPM pools — each pool shown with its user/group, listen socket and
hardening directives (open_basedir,chroot, socket mode), flagged for
generic/shared/root users, world-writable sockets, shared homes, etc. - Process visibility — detects when
/proclackshidepid, meaning other
tenants' processes and command-line arguments are visible. - A best-effort, site-centric isolation verdict (always marked unconfirmed).
Print / Save as PDF (new)
A button that prints just the block (browser "Save as PDF"), with colours
preserved and the rest of the dashboard removed from the printout.
Notes
- Linux-only features degrade gracefully; admin-only; no personal data stored.
- Requires Moodle 5.0+ and PHP 8.2+.