https://github.com/rlerdorf/opcache-status
A one-page opcache status page
https://github.com/rlerdorf/opcache-status
Last synced: 14 days ago
JSON representation
A one-page opcache status page
- Host: GitHub
- URL: https://github.com/rlerdorf/opcache-status
- Owner: rlerdorf
- Created: 2013-03-17T08:23:09.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2022-02-07T14:25:59.000Z (about 4 years ago)
- Last Synced: 2025-05-11T10:17:41.246Z (10 months ago)
- Language: PHP
- Size: 2.18 MB
- Stars: 1,561
- Watchers: 92
- Forks: 373
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- favorite-link - opcache 状态页面。
- php-awesome - OPcache Status - 单文件的 OPcache 状态配置管理 (类库 / 调试工具)
README
OPcache Status [](https://packagist.org/packages/rlerdorf/opcache-status)
---------------
A single-file OPcache status page for PHP 8.2+. Drop `opcache.php` into any directory and get a full overview of your OPcache configuration, cached scripts, and health — zero external dependencies.

### Features
- **Status tab** — all `opcache_get_status()` metrics at a glance, plus preload script and user when `opcache.preload` is configured
- **Configuration tab** — current directives with changed values highlighted, inline documentation from php.net, human-readable formatting (memory sizes, time values, percentages), and a blacklisted paths section
- **Health tab** — seven checks (memory, keys, interned strings, JIT buffer, wasted memory, hit rate, file cache) with green/yellow/red/info indicators, progress bars, and tuning suggestions
- **Scripts tab** — sortable table of all cached scripts by hits, memory, or path with per-script cache invalidation on hover
- **Cache management** — reset the entire cache or invalidate individual scripts, with confirmation modals that warn about the impact of a full reset
- **Auto-refresh** — toggle a 5-second reload cycle with a live activity chart showing cache hits/s, misses/s, and memory usage over time
- **Donut charts** — memory, keys, hits, restarts, and conditionally JIT and interned strings
- **Squarified treemap** — interactive visualization of cached scripts by memory usage with drill-down navigation, inline and fullscreen modes
- **Dark mode** — automatic via `prefers-color-scheme`
- **Responsive** — CSS Grid layout adapts to narrow screens
- **Read-only mode** — set `$readonly = true` at the top of `opcache.php` to disable all cache modification actions (reset and invalidate)
Everything is self-contained in a single PHP file with inline CSS and vanilla JavaScript. No jQuery, no D3.js, no CDN scripts.
### Usage
Install the package:
```
composer require --dev rlerdorf/opcache-status dev-master
```
Drop it where you want it in your public folder:
```
ln -s vendor/rlerdorf/opcache-status/opcache.php ./public/
```
Open the file in your browser:
```
http://127.0.0.1:8000/opcache.php
```
If the Zend OPcache extension is not loaded, sample data from `data-sample.php` is shown automatically.
### Development
```
php -S localhost:8000
```
Then open `http://localhost:8000/opcache.php`. The fallback to sample data is based on `extension_loaded('Zend OPcache')`, not `opcache.enable`.