Visit NES for PHP 7 Home Page

NES for PHP 7 Trial

Install the NES for PHP 7 trial, PHP 7.4.33 without security fixes as packages for Debian, Ubuntu, RHEL and Amazon Linux and as container images, to test the drop-in replacement before you subscribe.

HeroDevs offers a trial version of NES for PHP 7 to test the drop-in replacement with your application, extensions and configuration before you subscribe. The trial is release v7.4.33-nes-7.4.3-trial: the packages and container images of NES for PHP 7 release v7.4.33-nes-7.4.3, for the same platforms, built from PHP 7.4.33 with none of the security fixes. It is published once and is not updated.

No HeroDevs access token is required. The trial's files and images accept any username and password, and the examples below use HeroDevs and neverendingsupport.

Once installed, php -v shows PHP 7.4.33-nes-trial. PHP_VERSION_ID stays 70433, and extensions built for PHP 7.4 load as before.

Debian and Ubuntu

The packages keep the usual names (php7.4-cli, php7.4-fpm, libapache2-mod-php7.4 and the rest), paths and configuration files, and replace the php7.4 packages a host already has. Their version is 1:7.4.33+nes~trial7.4.3-1~<distribution>, for example 1:7.4.33+nes~trial7.4.3-1~debian12.

Download and verify

In an empty directory, download the signing key, the checksums and the repository for your distribution:

Debian 12
Debian 13
Ubuntu 22.04
Ubuntu 24.04
Ubuntu 26.04
base=https://registry.nes.herodevs.com/bin/nes/php/v7.4.33-nes-7.4.3-trial
auth="HeroDevs:neverendingsupport"
arch=$(dpkg --print-architecture)
for f in RPM-GPG-KEY-php-nes SHASUMS256.txt SHASUMS256.txt.asc "php-v7.4.33-nes-7.4.3-trial.debian12.$arch.repo.tar.xz"; do
  curl -fSLO -u "$auth" "$base/$f"
done

Then verify the downloads:

gpg --show-keys RPM-GPG-KEY-php-nes    # must show CA44E935A3995EB733AF292B18DD1E9212F3C6A2
gpg --import RPM-GPG-KEY-php-nes
gpg --verify SHASUMS256.txt.asc SHASUMS256.txt
sha256sum -c --ignore-missing SHASUMS256.txt

Install

Add the repository, then upgrade the PHP packages the host has:

sudo mkdir -p /opt/nes-php
sudo tar -xJf php-v7.4.33-nes-7.4.3-trial.*.repo.tar.xz -C /opt/nes-php --strip-components=1
sudo cp /opt/nes-php/nes-php.list /etc/apt/sources.list.d/nes-php.list
sudo apt update
sudo apt upgrade

On a host without PHP, install the packages you need instead, for example sudo apt install php7.4-cli php7.4-fpm php7.4-mysql.

Check the installation:

php -v

Remove the trial

Remove the trial packages, the ones whose version contains nes~trial, and the repository:

sudo apt purge $(dpkg-query -W -f '${db:Status-Abbrev} ${Package} ${Version}\n' | awk '$1 ~ /^i/ && $3 ~ /[.+]nes~trial/ && $2 != "php-common" { print $2 }')
sudo rm /etc/apt/sources.list.d/nes-php.list
sudo rm -rf /opt/nes-php

RHEL, AlmaLinux and Rocky Linux

The packages are the php:nes-7.4 module stream, with the usual package names (php-cli, php-fpm, php-mysqlnd and the rest), paths and configuration files. Their release is 0.trial.3.nes.el<RHEL version>, for example php-cli-7.4.33-0.trial.3.nes.el9.

Download and verify

In an empty directory, download the signing key, the checksums and the repository for your RHEL version:

RHEL 8
RHEL 9
RHEL 10
base=https://registry.nes.herodevs.com/bin/nes/php/v7.4.33-nes-7.4.3-trial
auth="HeroDevs:neverendingsupport"
arch=$(uname -m)
for f in RPM-GPG-KEY-php-nes SHASUMS256.txt SHASUMS256.txt.asc "php-v7.4.33-nes-7.4.3-trial.el8.$arch.repo.tar.xz"; do
  curl -fSLO -u "$auth" "$base/$f"
done

Then verify the downloads:

gpg --show-keys RPM-GPG-KEY-php-nes    # must show CA44E935A3995EB733AF292B18DD1E9212F3C6A2
gpg --import RPM-GPG-KEY-php-nes
gpg --verify SHASUMS256.txt.asc SHASUMS256.txt
sha256sum -c --ignore-missing SHASUMS256.txt

Install

Add the repository:

sudo mkdir -p /opt/nes-php
sudo tar -xJf php-v7.4.33-nes-7.4.3-trial.*.repo.tar.xz -C /opt/nes-php --strip-components=1
sudo cp /opt/nes-php/nes-php.repo /etc/yum.repos.d/nes-php.repo

Then switch the host's PHP 7.4 module stream to NES for PHP 7, or, on a host without PHP, enable the stream and install the packages you need:

Switch
New host
sudo dnf module switch-to php:nes-7.4

Check the installation:

php -v

Remove the trial

Remove the trial packages, reset the module and remove the repository:

sudo dnf remove $(rpm -qa --qf '%{NAME} %{RELEASE}\n' | awk '$2 ~ /\.nes\./ { print $1 }')
sudo dnf module reset php
sudo rm /etc/yum.repos.d/nes-php.repo
sudo rm -rf /opt/nes-php

Amazon Linux 2

The packages replace the php7.4 amazon-linux-extras topic's packages under the same names. Their release is 0.trial.3.nes.amzn2, which sorts below the topic's 7.4.33-1.amzn2, so on a host that has the topic's packages yum distro-sync moves it to the trial.

Download and verify

In an empty directory, download the signing key, the checksums and the repository:

Amazon Linux 2
base=https://registry.nes.herodevs.com/bin/nes/php/v7.4.33-nes-7.4.3-trial
auth="HeroDevs:neverendingsupport"
arch=$(uname -m)
for f in RPM-GPG-KEY-php-nes SHASUMS256.txt SHASUMS256.txt.asc "php-v7.4.33-nes-7.4.3-trial.amazonlinux2.$arch.repo.tar.xz"; do
  curl -fSLO -u "$auth" "$base/$f"
done

Then verify the downloads:

gpg --with-fingerprint RPM-GPG-KEY-php-nes    # must show CA44E935A3995EB733AF292B18DD1E9212F3C6A2
gpg --import RPM-GPG-KEY-php-nes
gpg --verify SHASUMS256.txt.asc SHASUMS256.txt
ls | awk 'NR == FNR { have[$0]; next } $2 in have' - SHASUMS256.txt | sha256sum -c -

Install

sudo mkdir -p /opt/nes-php
sudo tar -xJf php-v7.4.33-nes-7.4.3-trial.*.repo.tar.xz -C /opt/nes-php --strip-components=1
sudo cp /opt/nes-php/nes-php.repo /etc/yum.repos.d/nes-php.repo
sudo yum distro-sync 'php*'

On a host without PHP, install the packages you need instead, for example sudo yum install php-cli php-fpm php-mysqlnd.

Check the installation:

php -v

Remove the trial

Return to the php7.4 topic's packages and remove the repository:

sudo yum --disablerepo=nes-php distro-sync 'php*'
sudo rm /etc/yum.repos.d/nes-php.repo
sudo rm -rf /opt/nes-php

Amazon Linux 2023

The packages follow Amazon Linux's names for a PHP version: php7.4, php7.4-cli, php7.4-fpm and the rest. One PHP version is installed at a time. Their release is 0.trial.3.nes.amzn2023.

Download and verify

In an empty directory, download the signing key, the checksums and the repository:

Amazon Linux 2023
base=https://registry.nes.herodevs.com/bin/nes/php/v7.4.33-nes-7.4.3-trial
auth="HeroDevs:neverendingsupport"
arch=$(uname -m)
for f in RPM-GPG-KEY-php-nes SHASUMS256.txt SHASUMS256.txt.asc "php-v7.4.33-nes-7.4.3-trial.amazonlinux2023.$arch.repo.tar.xz"; do
  curl -fSLO -u "$auth" "$base/$f"
done

Then verify the downloads:

gpg --show-keys RPM-GPG-KEY-php-nes    # must show CA44E935A3995EB733AF292B18DD1E9212F3C6A2
gpg --import RPM-GPG-KEY-php-nes
gpg --verify SHASUMS256.txt.asc SHASUMS256.txt
sha256sum -c --ignore-missing SHASUMS256.txt

Install

Bring the host to the latest Amazon Linux 2023 release, add the repository, then install the packages you need:

sudo dnf upgrade --releasever=latest
sudo mkdir -p /opt/nes-php
sudo tar -xJf php-v7.4.33-nes-7.4.3-trial.*.repo.tar.xz -C /opt/nes-php --strip-components=1
sudo cp /opt/nes-php/nes-php.repo /etc/yum.repos.d/nes-php.repo
sudo dnf install php7.4-cli php7.4-fpm php7.4-mysqlnd

On a host with Amazon Linux's PHP 8, add --allowerasing and name the php7.4 package for each PHP 8 package you have (for example php7.4-cli for php8.4-cli): dnf then replaces PHP 8.

Check the installation:

php -v

Remove the trial

sudo dnf remove $(rpm -qa --qf '%{NAME} %{RELEASE}\n' | awk '$2 ~ /\.nes\./ { print $1 }')
sudo rm /etc/yum.repos.d/nes-php.repo
sudo rm -rf /opt/nes-php

To go back to Amazon Linux's PHP 8 instead, install its packages with --allowerasing, for example sudo dnf install --allowerasing php8.4-cli php8.4-fpm.

Container images

The trial images are drop-in replacements for the official php images for PHP 7.4 (the cli, fpm and apache variants), as the NES for PHP 7 images are: the same entrypoints, commands, ports, PHP_INI_DIR, docker-php-ext-* helpers and www-data user. They are published for linux/amd64 and linux/arm64.

Every image is in registry.nes.herodevs.com/nes/php-nes, and its tag is 7.4.33-nes-7.4.3-trial-<variant>-<base>. A tag names one image and never moves; the trial has no moving tags such as 7.4-fpm.

BaseVariantRelease tag
Debian 12cli7.4.33-nes-7.4.3-trial-cli-bookworm
Debian 12fpm7.4.33-nes-7.4.3-trial-fpm-bookworm
Debian 12apache7.4.33-nes-7.4.3-trial-apache-bookworm
UBI 8cli7.4.33-nes-7.4.3-trial-cli-ubi8
UBI 8fpm7.4.33-nes-7.4.3-trial-fpm-ubi8
UBI 8apache7.4.33-nes-7.4.3-trial-apache-ubi8
UBI 9cli7.4.33-nes-7.4.3-trial-cli-ubi9
UBI 9fpm7.4.33-nes-7.4.3-trial-fpm-ubi9
UBI 9apache7.4.33-nes-7.4.3-trial-apache-ubi9
Alpine 3.22cli7.4.33-nes-7.4.3-trial-cli-alpine3.22
Alpine 3.22fpm7.4.33-nes-7.4.3-trial-fpm-alpine3.22
Alpine 3.24cli7.4.33-nes-7.4.3-trial-cli-alpine3.24
Alpine 3.24fpm7.4.33-nes-7.4.3-trial-fpm-alpine3.24

Pull an image

Log in with any username and password:

echo neverendingsupport | docker login registry.nes.herodevs.com -u HeroDevs --password-stdin

then pull the images you use:

Debian 12
UBI 8
UBI 9
Alpine 3.22
Alpine 3.24
docker pull registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.3-trial-cli-bookworm
docker pull registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.3-trial-fpm-bookworm
docker pull registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.3-trial-apache-bookworm

In a Dockerfile, replace the official image with the trial image of the same variant, for example php:7.4-fpm with:

FROM registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.3-trial-fpm-bookworm

In Kubernetes, give the pods a pull secret:

kubectl create secret docker-registry herodevs-registry \
  --docker-server=registry.nes.herodevs.com \
  --docker-username=HeroDevs \
  --docker-password=neverendingsupport

and name it in the pod spec's imagePullSecrets.

The Debian 12, Red Hat UBI and Alpine images differ from the official images in the ways Container Images describes.

Check the image

php -v shows PHP 7.4.33-nes-trial, and the image's org.opencontainers.image.version label is 7.4.33-nes-7.4.3-trial:

docker run --rm registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.3-trial-fpm-bookworm php -v
docker image inspect registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.3-trial-fpm-bookworm | grep org.opencontainers.image.version

How the trial differs from NES for PHP 7

TrialNES for PHP 7
Releasev7.4.33-nes-7.4.3-trial, published onceThe current release on Installation
php -vPHP 7.4.33-nes-trialPHP 7.4.33-nes
Debian and Ubuntu packages1:7.4.33+nes~trial7.4.3-1~<distribution>1:7.4.33+nes<release>-1~<distribution>
RHEL and Amazon Linux7.4.33-0.trial.3.nes.<platform>7.4.33-<release>.nes.<platform>
Container images7.4.33-nes-7.4.3-trial-<variant>-<base>7.4.33-nes-<release>-<variant>-<base>
Security fixesNoneOngoing, listed in the Release Notes
AccessAny username and passwordHeroDevs access token
Support and SLANone; evaluation onlyHeroDevs support and CVE SLA
Production useNot permittedYes

The trial's package versions sort below every NES for PHP 7 release's, so moving a host to a release is a normal upgrade.

Move to the supported product

To subscribe, contact HeroDevs or write to support@herodevs.com. Once you have an access token, follow the steps on Installation with your contact e-mail and token: download the current release's repository, replace /opt/nes-php with it, and upgrade (apt upgrade, dnf upgrade --refresh or yum update, as that page shows for your platform). For containers, log in with your contact e-mail and token and change the image tag to the current release's, as Container Images shows. Nothing else in your configuration changes.