Php runtime eol opcache fpm review
Skill Raishin/vanguard-frontier-agentic/skills/php/php-runtime-eol-opcache-fpm-review
Curated marketplace of AI skills, agents, and rules for cloud, zero-trust, and compliance-aware engineering - works with Claude Code, Codex, Cursor, Copilot, and more.
npx -y skills add Raishin/vanguard-frontier-agentic --skill php-runtime-eol-opcache-fpm-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 18 stars18 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use this skill to review PHP runtime upgrade readiness — whether the target or running PHP version is past php.net's published four-year support window (active support, then security-only, then EOL) — and to review production OPcache (enable, validate_timestamps, memory sizing) and PHP-FPM (pm, max_children, max_requests) hardening. Use when production PHP could be running an EOL or soon-security-only-EOL version, or when OPcache/FPM configuration could serve stale code or let a traffic spike exhaust workers. An EOL runtime is always a blocking finding. Static review only; it never installs, upgrades, or restarts a PHP runtime.
SKILL.md
10.0 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
PHP Runtime EOL, OPcache & PHP-FPM Review
Purpose
Review a PHP service's runtime lifecycle status and production hardening so a service does not run on an unsupported PHP version or an unhardened OPcache/PHP-FPM configuration without the team knowing. The dominant failure modes are a PHP version past php.net's published support window (EOL, or security-only and approaching its own EOL), OPcache left disabled or misconfigured for the deployment model, and PHP-FPM pool settings that leave worker concurrency and recycling unbounded.
When to use
Use this skill when the user asks to:
- review whether a service's target or running PHP version is EOL, security-only, or actively supported per php.net,
- assess an upgrade path and timeline against php.net's published support-window dates,
- review production
opcache.enable,opcache.validate_timestamps,opcache.memory_consumption, andopcache.max_accelerated_filesconfiguration, - review production PHP-FPM
pm,pm.max_children, andpm.max_requestsconfiguration for resource-exhaustion and worker-leak exposure.
When not to use
Do not use this skill for:
- performing the PHP version upgrade, editing application code for compatibility, or installing/restarting any PHP, OPcache, or PHP-FPM process — this skill is static review only; it recommends the path and hands implementation to the owning team.
- reviewing application-level vulnerabilities, Composer dependency supply chain, or WordPress-specific hardening — those belong to other PHP-domain skills in this catalog.
- asserting a PHP version's support status from memory or estimation; if php.net's supported-versions page does not list the version, say so rather than guessing a date.
- judging lifecycle status against the wall clock; judgment is based on the target/committed version and the published dates only, so findings stay reproducible.
Preconditions
- The PHP version actually targeted or running in production (
composer.jsonrequire.php, Dockerfile/base-image tag, CI runtime matrix, or deployment manifest). - The production
php.iniOPcache directives in scope:opcache.enable,opcache.validate_timestamps,opcache.revalidate_freq,opcache.memory_consumption,opcache.max_accelerated_files. - The production PHP-FPM pool configuration:
pm,pm.max_children,pm.max_requests, and thepm.start_servers/pm.min_spare_servers/pm.max_spare_serverstriad ifpmisdynamic. - The deployment model (immutable container image replaced per deploy vs. in-place file sync), since it determines whether
opcache.validate_timestamps=0is safe without a compensating invalidation step. - Approximate available memory per worker host/container, if
pm.max_childrensizing guidance is requested.
Lean operating rules
- Resolve the exact PHP version from the strongest available evidence and state that evidence tier before classifying its lifecycle status.
- Classify status precisely as active support, security-only (with the published end date), or EOL — never collapse these into "outdated."
- Treat any EOL classification as blocking, regardless of code quality elsewhere; EOL means no fixes are published, including for actively exploited vulnerabilities.
- Treat a security-only classification as blocking only when its published security-support end date falls within the stated release horizon with no tracked upgrade plan; otherwise report it as dated advisory guidance.
- Confirm
opcache.enable=1in production, and checkopcache.validate_timestampsagainst the actual deployment model rather than assuming one universally correct value. - Confirm
pm.max_childrenis evidently bounded by available memory andpm.max_requestsis nonzero (or has a documented rationale for0). - Never fabricate a PHP version, support date, or CVE; encode lifecycle dates only from php.net's supported-versions page.
- Label every claim
repo evidence,documentation-based, orinference.
Context7 documentation protocol
This skill's allowed tools are Read, Grep, and Glob only — it does not call Context7 or any live documentation lookup at review time. Every PHP-lifecycle, OPcache, or PHP-FPM behavioral claim must instead be grounded in the bundled reference files, which are sourced directly from php.net and dated at authoring time. If a claim cannot be traced to a bundled reference or to evidence in the repository, label it an assumption rather than asserting it as documented behavior. See PHP version lifecycle, OPcache production configuration, and PHP-FPM pool tuning.
Workflow
Follow the review in this order: (1) resolve the exact PHP version targeted or running, and its evidence tier; (2) classify that version against php.net's current supported-versions table as active-support, security-only, or EOL, citing the exact dates; (3) if security-only, compare its security-support end date against the stated release horizon; (4) read production OPcache directives and check enable/validate_timestamps against the deployment model, and memory_consumption/max_accelerated_files against the actual codebase size; (5) read production PHP-FPM pool configuration and check pm.max_children sizing and pm.max_requests recycling; (6) emit findings with evidence tiers, concrete remediation, and ownership handoffs.
Decision gates
- Block on any EOL PHP version, unconditionally.
- Block on a security-only version whose published security-support end date falls within the stated release horizon with no tracked upgrade plan.
- Block on production OPcache disabled, or
validate_timestampsinconsistent with the deployment model with no compensating invalidation step. - Block on PHP-FPM with no evidently bounded
pm.max_childrenor an unboundedpm.max_requestswith no documented rationale. - Every lifecycle and directive claim traces to a bundled reference file or explicit repository evidence, never memory.
- The PHP version upgrade and any application-code compatibility work are handed to the owning engineering team, never performed here.
Evidence classification
Label each finding repo evidence (seen directly in php.ini, FPM pool config, Dockerfile, CI, or a version banner), documentation-based (a php.net-published support date or directive default from the bundled references), or inference (a reasonable conclusion not directly observed, e.g. estimated memory footprint per worker). A documented default never proves what a specific deployment's actual configuration is — check the file before asserting it.
Security and privacy constraints
Static review only. Never install, upgrade, downgrade, or restart any PHP, OPcache, or PHP-FPM process, and never make any network call to php.net or any other service. Never fabricate a PHP version, support date, or CVE — report missing evidence instead of guessing. Treat any credential found in configuration files as a redact-and-flag finding, never echoed in output.
Escalation conditions
Escalate to incident response on any evidence the failure is already live — an EOL PHP version confirmed serving production traffic, or a PHP-FPM pool observed exhausting workers under load. Escalate a confirmed EOL or approaching-security-only-EOL finding to the owning engineering team as a tracked upgrade item, with the recommended target version and the exact php.net-published dates driving the timeline.
References
Load these only when needed:
- PHP version lifecycle — the php.net support-policy definitions and the current per-branch active-support/security-support/EOL dates.
- OPcache production configuration —
opcache.enable,opcache.validate_timestamps, and sizing directives, and how to review them against a deployment model. - PHP-FPM pool tuning —
pm,pm.max_children, andpm.max_requestsreview criteria for resource-exhaustion and worker-leak exposure.
Response minimum
Return, at minimum:
- the resolved PHP version, its evidence tier, and its lifecycle classification (active support / security-only with end date / EOL) with the exact php.net-published dates;
- the production OPcache hardening state (
enable,validate_timestampsversus deployment model, sizing); - the production PHP-FPM hardening state (
pm.max_childrensizing,pm.max_requestsrecycling); - concrete remediation and an exact verification step for each finding;
- ownership handoffs and any incident-response escalation.
Anti-goals
- Never fabricate or guess a PHP version's support-window dates; encode them only from php.net's supported-versions page.
- Never judge lifecycle status against the wall clock; use the target/committed version and the published dates only.
- Do not rewrite application code or perform the PHP version upgrade; recommend the path and hand implementation to the owning team.
- Do not execute, restart, or reload any PHP, OPcache, or PHP-FPM process, and do not contact php.net or any other service.
- Do not treat a version absent from the current supported-versions table as EOL by assumption; say the evidence is missing instead.