Visit NES for PHP 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, as a Windows zip 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.4-trial: the packages, the Windows zip and the container images of NES for PHP 7 release v7.4.33-nes-7.4.4, 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: see Trial Access. 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.4-1~<distribution>, for example 1:7.4.33+nes~trial7.4.4-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.4-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.4-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.4-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.4.nes.el<RHEL version>, for example php-cli-7.4.33-0.trial.4.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.4-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.4-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.4-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.4.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.4-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.4-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.4-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.4.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.4-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.4-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.4-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.

Windows

The zip is the thread-safe (TS) x64 build of PHP 7.4.33 for Windows Server 2022, as NES for PHP 7's own zip is. It is php-v7.4.33-nes-7.4.4-trial.windows.x64.ts.zip, and its TRIAL-README.txt says first that it has no security fixes. It runs PHP from the command line, from IIS through FastCGI and from Apache, and its extension build is API20190902,TS,VC15.

Prerequisites

The zip needs the Visual C++ Redistributable for Visual Studio 2015-2026 (x64), version 14.51.36247 or later, which it does not include. Windows shows where to get it and how to check the version. To verify the download, install Gpg4win, which provides gpg.

Download and verify

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

$base = "https://registry.nes.herodevs.com/bin/nes/php/v7.4.33-nes-7.4.4-trial"
$auth = "HeroDevs:neverendingsupport"
foreach ($f in "RPM-GPG-KEY-php-nes", "SHASUMS256.txt", "SHASUMS256.txt.asc", "php-v7.4.33-nes-7.4.4-trial.windows.x64.ts.zip") {
  curl.exe -fSLO -u $auth "$base/$f"
}

Then verify the downloads. gpg --verify must report a good signature, and the last command must print True:

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
$expected = (Select-String -Path .\SHASUMS256.txt -SimpleMatch "php-v7.4.33-nes-7.4.4-trial.windows.x64.ts.zip").Line.Split(" ")[0]
(Get-FileHash -Algorithm SHA256 .\php-v7.4.33-nes-7.4.4-trial.windows.x64.ts.zip).Hash -eq $expected

Install

Unpack the zip to C:\php and add that folder to the system Path. The Path change is machine-wide, so run these two commands in a PowerShell window opened with Run as administrator:

Expand-Archive -LiteralPath .\php-v7.4.33-nes-7.4.4-trial.windows.x64.ts.zip -DestinationPath C:\php
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\php", "Machine")

Open a new PowerShell window and check the installation:

php -v
Get-Content C:\php\TRIAL-README.txt -TotalCount 1

The first shows PHP 7.4.33-nes-trial (cli), the second Trial build: no security fixes, not for production. Configure PHP, IIS and Apache as Windows describes; the trial zip differs from the PHP 7.4.33 zip you use today in the same ways (Move from another PHP zip).

Remove the trial

Stop the web server or application that uses PHP, remove the C:\php folder and remove C:\php from the system Path.

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.4-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.4-trial-cli-bookworm
Debian 12fpm7.4.33-nes-7.4.4-trial-fpm-bookworm
Debian 12apache7.4.33-nes-7.4.4-trial-apache-bookworm
UBI 8cli7.4.33-nes-7.4.4-trial-cli-ubi8
UBI 8fpm7.4.33-nes-7.4.4-trial-fpm-ubi8
UBI 8apache7.4.33-nes-7.4.4-trial-apache-ubi8
UBI 9cli7.4.33-nes-7.4.4-trial-cli-ubi9
UBI 9fpm7.4.33-nes-7.4.4-trial-fpm-ubi9
UBI 9apache7.4.33-nes-7.4.4-trial-apache-ubi9
Alpine 3.22cli7.4.33-nes-7.4.4-trial-cli-alpine3.22
Alpine 3.22fpm7.4.33-nes-7.4.4-trial-fpm-alpine3.22
Alpine 3.24cli7.4.33-nes-7.4.4-trial-cli-alpine3.24
Alpine 3.24fpm7.4.33-nes-7.4.4-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.4-trial-cli-bookworm
docker pull registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.4-trial-fpm-bookworm
docker pull registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.4-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.4-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.4-trial:

docker run --rm registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.4-trial-fpm-bookworm php -v
docker image inspect registry.nes.herodevs.com/nes/php-nes:7.4.33-nes-7.4.4-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.4-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.4-1~<distribution>1:7.4.33+nes<release>-1~<distribution>
RHEL and Amazon Linux7.4.33-0.trial.4.nes.<platform>7.4.33-<release>.nes.<platform>
Windows zipphp-v7.4.33-nes-7.4.4-trial.windows.x64.ts.zipphp-v7.4.33-nes-<release>.windows.x64.ts.zip
Container images7.4.33-nes-7.4.4-trial-<variant>-<base>7.4.33-nes-<release>-<variant>-<base>
Security fixesNoneOngoing, listed in the Release Notes

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.

For access, support and production use, see Trial Access.

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. On Windows, download the current release's zip and replace the C:\php folder as Windows shows, keeping your php.ini. Nothing else in your configuration changes.