Skip to content

Upgrade the PHP Apache image to 8.4 on Trixie - #20

Open
Amygos wants to merge 3 commits into
nethesis:masterfrom
Amygos:build/php84-trixie
Open

Amygos wants to merge 3 commits into
nethesis:masterfrom
Amygos:build/php84-trixie

Conversation

@Amygos

@Amygos Amygos commented Sep 14, 2026

Copy link
Copy Markdown
Member

Summary

PHP 8.0 reached end of life on 26 November 2023 and no longer receives upstream bug fixes or security updates. The Bullseye archive workaround restores package availability but does not restore PHP support. PHP end-of-life dates

Upgrade to php:8.4-apache-trixie and use the normal Debian repositories. PHP 8.4 receives active support until 31 December 2026 and security support until 31 December 2028. PHP support schedule

The change covers the base image and APT source setup. Apache configuration, extensions, health check, and application code remain unchanged.

How to test

Validation completed against the application from master at e92147d:

  • Clean Docker-format Podman builds succeeded for PHP 8.0.30 and PHP 8.4.25 on linux/amd64.
  • All 81 comparison scenarios passed against a mock HTTPS CTI backend, covering JWT and legacy authentication, QR codes, fallback, contacts, quick dials, error handling, and TLS 1.2/1.3.
  • HTTP status, response bodies, relevant headers, and backend requests matched. Contact tests included 16,001 records across three pages and 304 Not Modified caching.
  • PHP syntax, Apache configuration, and container health checks passed. No PHP runtime warnings, deprecations, or fatal errors were found with E_ALL enabled.

Configure .env using .env.example, then build the candidate through the existing justfile recipe:

just dev-build-no-cache

Before marking this PR ready, perform these smoke tests against real NethVoice middleware and legacy instances:

  • Verify password login through JWT authentication returns the expected SIP configuration.
  • Verify password login falls back to legacy authentication when middleware authentication is unavailable.
  • Verify QR-code login works with both JWT and legacy tokens.
  • Verify contact synchronization returns the expected contacts, including a phonebook requiring multiple pages.
  • Verify unchanged contacts return 304 Not Modified and changed contacts trigger an updated response.
  • Verify quick dials contain the expected favorites and removal entries.
  • Verify the configured license service accepts valid licenses and rejects invalid licenses.
  • Verify /index.php/healthcheck returns HTTP 200 and inspect logs for PHP or TLS errors.

The automated comparison used synthetic data; these smoke tests remain necessary to confirm deployment-specific TLS and API compatibility.

Replace the PHP 8.0 Apache image with PHP 8.4 on Debian Trixie so
builds use maintained runtime and package repositories. Keep the PHP
minor version and Debian release explicit in the base image tag.

Remove the Bullseye archive and frozen security snapshot workaround.
Verify the current application on both PHP versions, including JWT
authentication, legacy fallback, contacts, and quick dials.

Assisted-by: Codex:GPT-6-Astra
@Amygos Amygos self-assigned this Sep 14, 2026
@Amygos
Amygos requested review from Stell0, edospadoni and gsanchietti and removed request for tommaso-ascani September 14, 2026 14:50
@Amygos
Amygos marked this pull request as ready for review September 16, 2026 13:18
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-16T13:19:43.547916Z 490b27b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants