Skip to main content
Version: 4.1

Packages the distribution does not carry (h2o, Cherokee, PHP 5.6 - 7.3)

Most of what HiTechCloud installs comes from the distribution's own repositories, plus Remi on Enterprise Linux and packages.sury.org on Debian/Ubuntu for the PHP versions. A few things are not packaged anywhere for a current release:

Where it is missingWhat the mirror carries
h2o WebEngineAlmaLinux / Rocky / RHEL 8, 9, 10 (not in EPEL)built from upstream master at a pinned commit
Cherokee WebEngineEL 8/9/10, Debian 12, Ubuntu 22.04/24.04 (dropped after bullseye)built from the community repository, without the Python 2 admin interface
PHP 5.6, 7.0, 7.1, 7.2, 7.3EL 9 and EL 10 (Remi stops at 7.4 there; EL 8 still has them)rebuilt from Remi's own source RPMs, same /opt/remi/php56 layout and php56-php-* package names, with the OpenSSL 3 / ICU 74 / gcc 14 patches Debian carries for the same versions

They are built by the Packages workflow in deploy/packages/ (one job per target, inside almalinux:N / debian / ubuntu containers) and served by the mirror:

https://mirrors.hitechcloud.org/packages/el/<8|9|10>/x86_64/ dnf repository
https://mirrors.hitechcloud.org/packages/deb/<codename>/ flat apt repository
https://mirrors.hitechcloud.org/packages/index.json what is there

Nothing to do on a server​

hitechcloudcli phpversions install 5.6 and hitechcloudcli enterprise h2o install (or the Packages & Apps page on port 2087) ask the distribution first and the mirror second: when the distribution has no package for this release and the mirror does, the repository is added as hitechcloud-packages (/etc/yum.repos.d/hitechcloud-packages.repo or /etc/apt/sources.list.d/hitechcloud-packages.list) and the package installs from it. A server whose distribution already carries the package never sees the mirror's copy.

To look at what the mirror offers this machine:

hitechcloudcli packages show
hitechcloudcli packages has php56-php-fpm && echo yes
hitechcloudcli packages enable # add the repository by hand
hitechcloudcli packages disable # remove it

HITECHCLOUD_MIRROR in the environment points all of this at a private mirror, the same variable the installer honours.

NOTE

PHP 5.6 - 7.3 are past their upstream end of life. The rebuilt packages carry Remi's security backports up to his last build of each line and nothing after; they exist so that an application that still needs an old PHP can run on a current distribution behind the same front-end, firewall and per-account isolation as everything else - not as a reason to stay on it.

Building by hand​

cargo build --release --manifest-path devtools/Cargo.toml --target x86_64-unknown-linux-musl
T=devtools/target/x86_64-unknown-linux-musl/release
podman run --rm -v "$PWD/deploy/packages:/pkg:Z" -v "$PWD/dist:/dist:Z" -v "$PWD/$T:/tools:Z" almalinux:10 \
/tools/hitechcloud-devtools rpm-build --pkg-dir /pkg --el 10 --out /dist h2o cherokee php73
podman run --rm -v "$PWD/deploy/packages:/pkg:Z" -v "$PWD/dist:/dist:Z" -v "$PWD/$T:/tools:Z" debian:bookworm \
/tools/hitechcloud-devtools deb-build --pkg-dir /pkg --codename bookworm --out /dist cherokee

dist/el10/x86_64/ is then a complete dnf repository (with repodata/) and dist/bookworm/ a flat apt one (Packages.gz). Versions are pinned in deploy/packages/rpm/versions.env and deb/versions.env.