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.
DO NOT use the NES for PHP 7 trial in production. It contains no security fixes: every known vulnerability of PHP 7.4.33 applies to it. It is provided solely for integration evaluation and is not supported.
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:
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.
On Debian 13 there is no php7.4-imap. Remove it (sudo apt-get remove php7.4-imap) before you upgrade a host that has it.
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:
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:
sudo dnf module switch-to php:nes-7.4
php-sodium needs libsodium from EPEL. Remove packages the stream does not have before switching (php-imap, php-pdo-dblib, php-pdo-firebird, php-tidy, php-litespeed, php-oci8 and, on RHEL 8, apcu-panel): while one is installed, the switch stops and changes nothing.
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:
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.
Remove apcu-panel first (sudo yum remove apcu-panel) if it is installed. The steps are for a host without PHP or with the php7.4 topic; do not use them on a host with a PHP 8 topic.
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:
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.
| Base | Variant | Release tag |
|---|---|---|
| Debian 12 | cli | 7.4.33-nes-7.4.3-trial-cli-bookworm |
| Debian 12 | fpm | 7.4.33-nes-7.4.3-trial-fpm-bookworm |
| Debian 12 | apache | 7.4.33-nes-7.4.3-trial-apache-bookworm |
| UBI 8 | cli | 7.4.33-nes-7.4.3-trial-cli-ubi8 |
| UBI 8 | fpm | 7.4.33-nes-7.4.3-trial-fpm-ubi8 |
| UBI 8 | apache | 7.4.33-nes-7.4.3-trial-apache-ubi8 |
| UBI 9 | cli | 7.4.33-nes-7.4.3-trial-cli-ubi9 |
| UBI 9 | fpm | 7.4.33-nes-7.4.3-trial-fpm-ubi9 |
| UBI 9 | apache | 7.4.33-nes-7.4.3-trial-apache-ubi9 |
| Alpine 3.22 | cli | 7.4.33-nes-7.4.3-trial-cli-alpine3.22 |
| Alpine 3.22 | fpm | 7.4.33-nes-7.4.3-trial-fpm-alpine3.22 |
| Alpine 3.24 | cli | 7.4.33-nes-7.4.3-trial-cli-alpine3.24 |
| Alpine 3.24 | fpm | 7.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:
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
| Trial | NES for PHP 7 | |
|---|---|---|
| Release | v7.4.33-nes-7.4.3-trial, published once | The current release on Installation |
php -v | PHP 7.4.33-nes-trial | PHP 7.4.33-nes |
| Debian and Ubuntu packages | 1:7.4.33+nes~trial7.4.3-1~<distribution> | 1:7.4.33+nes<release>-1~<distribution> |
| RHEL and Amazon Linux | 7.4.33-0.trial.3.nes.<platform> | 7.4.33-<release>.nes.<platform> |
| Container images | 7.4.33-nes-7.4.3-trial-<variant>-<base> | 7.4.33-nes-<release>-<variant>-<base> |
| Security fixes | None | Ongoing, listed in the Release Notes |
| Access | Any username and password | HeroDevs access token |
| Support and SLA | None; evaluation only | HeroDevs support and CVE SLA |
| Production use | Not permitted | Yes |
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.