phpSysInfo for PHP System Monitoring and Web Deployed Diagnostics
phpSysInfo: a customizable PHP script that displays information about your system nicely
At a glance
- What is it?
- phpSysInfo is a customizable PHP application that presents operating system and hardware information through a web interface. It fits administrators who want a server-side inventory page, but its system access requirements and known platform limits require careful deployment planning.
- Who is it for?
- Adopt phpSysInfo when you need a browser-based system information page and can grant the PHP process appropriate access to operating system interfaces. Do not choose it as an authenticated monitoring platform or for environments where SELinux compatibility, WMI access, or the documented platform limitations are unacceptable.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 11 days ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What phpSysInfo Collects and Who Can Use It
phpSysInfo addresses the problem of exposing the state of a computer to someone who cannot run commands directly on it. The README describes it as a customizable PHP script that displays system information nicely, and the repository contains plugins, templates, language files, XML support, JavaScript support, and sample output for specific platforms. That combination makes it useful for system administrators, hosting operators, and developers who need a lightweight diagnostic or inventory page attached to an existing web server.
The application is a server-side PHP tool rather than a desktop monitor. It reads information exposed by the host operating system and then renders it through the web interface. The repository includes samples for Linux-related distributions, BSD systems, AIX, FortiOS, motherboards, processes, quotas, RAID, SMART, power status, and other areas. Those sample directories indicate the intended breadth of collection, but they do not mean that every collector works equally well on every platform.
phpSysInfo is also useful when a team needs a simple page to inspect a machine during support or administration. It is less suitable when the requirement is historical monitoring, alerting, role-based access control, or a complete observability service. The README does not document authentication for a general Linux installation, retention of historical metrics, or an alerting workflow. The Windows IIS section describes authentication for WMI access, but that requirement is specific to connecting Windows system information through that interface.
How phpSysInfo Reads Host Data
The README identifies Linux and other Unix-like systems as a primary use case and explains that the application needs access to many files in `/proc` and other system binaries. This indicates that data collection depends on the PHP process being allowed to inspect host-level operating system interfaces. The exact collector classes and internal call path are not documented in the README, so the precise implementation of every metric cannot be confirmed.
The repository layout nevertheless shows how the application is organized. `includes/` contains application code, while `plugins/` contains optional or feature-specific collectors. `templates/` holds presentation assets, `language/` contains localization resources, and `data/` contains data-related content. The top-level `xml.php`, `js.php`, `index.php`, and `read_config.php` files provide separate entry points for those parts of the web application. Browser configuration files for static, dynamic, and bootstrap modes indicate that output behavior can vary by mode.
On Windows, the README gives a more concrete platform mechanism: information is obtained through WMI. Under IIS, PHP cannot connect to WMI merely because the application is installed. The directory must have an authentication mechanism configured in IIS, and the authenticated user must be able to connect to WMI. Incorrect credentials can produce an `ACCESS DENIED ERROR`. This makes access control part of data collection rather than only a page-display concern.
The project also supports specialized sensor data. Its MBM5 section says that interval logging must use CSV output, place the file in the phpSysInfo data directory, name the file `MBM5`, and avoid symbols in values. The parser is described as quick and as needing more CSV logs for better results. That is an integration with an existing logging format, not a general sensor acquisition system.
Installing phpSysInfo with Docker
The repository provides a Dockerfile based on `ubuntu:20.04`. It installs Apache, PHP 7.4, XML and mbstring support, `libapache2-mod-php7.4`, Git, and `pciutils`, then clones the repository into `/var/www/html/phpsysinfo`. It copies `phpsysinfo.ini.new` to `phpsysinfo.ini`, starts Apache in the foreground, and exposes port 80.
The README documents the following Docker build command. It builds from the repository's `main` branch:
sudo docker build -t phpsysinfo github.com/phpsysinfo/phpsysinfo#mainAfter the image is built, this command starts the container and publishes container port 80 on local port 8080:
sudo docker run -i -p 8080:80 -t phpsysinfoThe documented browser endpoint is `http://localhost:8080/phpsysinfo/`. Opening that address should bring up the installed web application if Apache starts successfully and the container configuration matches the surrounding Docker environment.
The container approach does not remove the underlying permissions issue. The PHP process still needs to collect information from the containerized operating system, and the amount of host detail available can depend on how the container is configured. The README does not provide a production Docker Compose file, a persistent configuration volume, a reverse-proxy example, or a documented authentication configuration for the published endpoint. Do not treat the quick start command as a complete production deployment guide.
A Traditional PHP Installation and First Configuration
For a non-container installation, the README says to decompress and untar the source into the web server's document root. A new installation then needs its example configuration copied to `phpsysinfo.ini` and edited. The README also requires the PHP XML extension, lists SimpleXML, PCRE, XML, and DOM among the PHP requirements, and says `safe_mode` must be set to off.
The traditional setup involves these documented requirements:
- PHP 5.1.3 or later with SimpleXML, PCRE, XML, and DOM. - `mbstring` for Unix-like systems that are not using UTF-8. - `com_dotnet` for Windows environments. - `xsl` for static mode. - `json` for bootstrap mode. - `.` present in the PHP `include_path` entry. - `safe_mode` set to `off`.
The README does not provide an exact shell command for copying the file, so no unverified command is added here. After editing the configuration, restart the web server if `php.ini` changed. The project home page is `http://phpsysinfo.github.io/phpsysinfo`, while the traditional installation is placed under the web server's document root.
The `safe_mode` requirement deserves attention. The project says it needs access to `/proc` and other system binaries, and specifically instructs administrators to disable `safe_mode`. That advice may conflict with the security policy of a hosting environment. A managed hosting account that forbids changing PHP settings, restricts filesystem access, or isolates processes should be treated as an incompatible deployment target unless its operator has already confirmed that phpSysInfo can collect the required data.
Platform Boundaries and Documented Failure Cases
phpSysInfo has a broad stated platform list, including Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, HP-UX, Darwin-based systems, many Windows releases, and Android. It also lists Haiku, Minix, SunOS, ReactOS, IBM AIX, QNX, GNU Hurd, FortiOS, and DrayOS as platforms in progress. That distinction matters. A listed operating system does not necessarily mean that every metric or collector is complete there.
The README explicitly says that phpSysInfo is not compatible with SELinux systems. It also records a small memory-reporting bug under FreeBSD. These are project-specific limits, not general Linux observations. For SELinux installations, the documented project position is clear: do not expect compatibility without separate investigation and changes outside the documented instructions. For FreeBSD, memory values should be checked against another source before being treated as authoritative.
Windows deployments carry a different constraint. WMI access is required, and IIS security settings can block the connection. The application may therefore load while failing to retrieve data, or it may return an `ACCESS DENIED ERROR`. This is a useful reminder that a reachable web page is not proof that every collector works. The sample directories can also be misleading if treated as a promise of identical behavior across all operating systems.
The README does not document rollback procedures, a supported upgrade matrix, historical data retention, or a formal severity policy beyond pointing users to GitHub issues. Those omissions make version changes and operational troubleshooting less predictable than a full monitoring platform would.
phpSysInfo Compared With Command-Line Inventory Tools
phpSysInfo's defining difference is its delivery model. It is a PHP web application that places system information behind a browser-accessible interface. A command-line inventory tool, by comparison, usually requires shell access and returns text or structured output to the terminal or another program. The choice therefore depends on whether the consumer needs a human-facing page or automation.
For a small administration page, phpSysInfo offers a shorter path than building a custom PHP dashboard: the repository already includes templates, plugins, language resources, XML and JavaScript entry points, and platform samples. The Dockerfile also provides a concrete Apache and PHP deployment starting point. These are project-specific features, not claims about performance or completeness.
For automated monitoring, phpSysInfo is less convincing based on the README. The documentation does not describe a stable API contract, time-series storage, alert rules, retention controls, or a documented authentication and authorization model for ordinary deployments. A command-line tool or dedicated monitoring system is a better conceptual fit when the requirement is scheduled collection and machine-readable output.
phpSysInfo may coexist with those tools. Its practical role can be a diagnostic view for a machine, while a separate system handles recurring metrics and notifications. The README does not document such an integration workflow, so this is an architectural comparison rather than a claimed supported deployment pattern.
License, Maintenance, and Upgrade Considerations
The repository is licensed under GPL-2.0, and the README states that the program is released under the GNU Public License Version 2 or, at the user's option, any later version. The exact obligations should be checked in the repository's `COPYING` file. This review does not provide legal advice, but the license is relevant when you distribute a modified web application or embed it in another hosted product.
The repository is not archived, and its last push was on 2026-10-12. The recent release list includes v3.4.7 on 2026-09-08, v3.4.6 on 2026-06-19, and v3.4.5 on 2026-03-20. Those facts indicate recent project activity, but they do not guarantee compatibility with every PHP version, web server, or operating system listed in the README.
Upgrades require attention to more than the web files. Administrators should compare the example configuration, verify required PHP extensions, review changes in `CHANGELOG.md`, and confirm that templates and plugins remain compatible with the target host. The README specifically directs users to set `DEBUG` to true in `phpsysinfo.ini` and include error messages when reporting a problem. That is a concrete troubleshooting step for collecting diagnostics without guessing.
Editorial conclusion
Adopt phpSysInfo when you need a browser-based system information page and can grant the PHP process appropriate access to operating system interfaces. Do not choose it as an authenticated monitoring platform or for environments where SELinux compatibility, WMI access, or the documented platform limitations are unacceptable. Verify your PHP extensions, operating system, access controls, and configuration file before deployment.
Frequently asked questions
What does phpSysInfo display?
phpSysInfo is a PHP application that displays information about the system running it. The repository includes plugins and samples for hardware, operating systems, processes, RAID, SMART, quotas, and other areas, but the README does not claim identical support for every metric on every platform.
How do I install phpSysInfo with Docker?
The README documents building the image from the `main` branch and running it with port 8080 published to container port 80. It then directs the user to `http://localhost:8080/phpsysinfo/`. The Dockerfile is based on `ubuntu:20.04` and uses Apache with PHP 7.4.
Does phpSysInfo work with SELinux?
No compatibility is claimed. The README lists phpSysInfo as incompatible with SELinux systems and also mentions a small FreeBSD memory-reporting bug, so those cases need special attention.
Why does phpSysInfo fail under Windows IIS?
On Windows, the README says information is collected through WMI. IIS can block the connection for security reasons, so the application directory needs an authentication mechanism and the logged-in user must have permission to connect to WMI. Incorrect credentials may produce an `ACCESS DENIED ERROR`.
What PHP extensions does phpSysInfo require?
The README requires PHP 5.1.3 or later with SimpleXML, PCRE, XML, and DOM. It identifies `mbstring` for Unix-like systems that are not using UTF-8, `com_dotnet` for Windows, `xsl` for static mode, and `json` for bootstrap mode.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/phpsysinfo-phpsysinfo)Was this useful?