sinphp RPM repository
PHP built from the php.net release tarballs, for EL 8, 9 and 10 (AlmaLinux, Rocky, RHEL), x86_64. Packages and repository metadata are GPG-signed. Each PHP series is its own package under its own prefix, so several can be installed side by side.
| Package | Prefix | FPM service, port | Security fixes until |
|---|---|---|---|
php82 | /opt/php82 | php82-fpm, 9082 | 31 Dec 2026 |
php83 | /opt/php83 | php83-fpm, 9083 | 31 Dec 2027 |
php85 | /opt/php85 | php85-fpm, 9085 | 31 Dec 2029 |
Always the latest patch release of each series. Built in: bz2, calendar, curl, exif, ftp, gd (jpeg, png, webp, avif, freetype), gettext, gmp, intl, mbstring, mysqli, pdo_mysql, pdo_sqlite, sqlite3, opcache, openssl, pcntl, readline, shmop, sockets, sodium, sysvmsg/sysvsem/sysvshm, xsl, zip, zlib, argon2 password hashing, plus the PHP defaults.
PECL extensions, each a separate package: phpXY-apcu, phpXY-igbinary,
phpXY-msgpack, phpXY-memcached (with session, igbinary, msgpack and json support),
phpXY-imagick, phpXY-redis.
Install
As root. The repository needs EPEL (for libsodium, libargon2 and libavif).
dnf install -y epel-release
curl -fsSLo /etc/yum.repos.d/sinphp.repo https://rpm.metalgearsonic.de/sinphp.repo
dnf install -y php85
# optional PECL extensions:
dnf install -y php85-apcu php85-igbinary php85-msgpack php85-memcached php85-imagick php85-redisOn EL 9, phpXY-memcached also needs the CRB repository (libmemcached is only there):
dnf config-manager --set-enabled crb
On RHEL itself, epel-release is not in the base repos; install it with
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm.
dnf asks to import the signing key on first install. Only accept it if the fingerprint is:
7139 10F6 D1D6 E1F3 7EBC C080 CC2E 821E 1407 DC1A
Start PHP-FPM
systemctl enable --now php85-fpmThe www pool listens on 127.0.0.1:9085 (backlog 65535) and runs as
nobody; adjust /opt/php85/etc/php-fpm.d/www.conf for your web server, or set up
a site pool from pool.conf.example:
cd /opt/php85/etc/php-fpm.d
cp pool.conf.example site.conf # then set user/group, port, pm sizing
systemctl reload php85-fpmUpdate and roll back
dnf upgrade 'php85*' # new releases, restarts php85-fpm
dnf downgrade php85 # back one release (the last 3 are kept)Where things are
| CLI | /opt/php85/bin/php |
| FPM | /opt/php85/sbin/php-fpm, service php85-fpm |
| php.ini | /opt/php85/etc/php.ini (production defaults) |
| Extra ini | /opt/php85/etc/conf.d/*.ini |
| Fleet tuning | /opt/php85/etc/conf.d/90-fleet.ini (live's limits, opcache, APCu) |
| Per-server ini | /opt/php85/etc/conf.d/99-local.ini (start from 99-local.ini.example) |
| FPM config | /opt/php85/etc/php-fpm.conf, /opt/php85/etc/php-fpm.d/ |
| Example pool | /opt/php85/etc/php-fpm.d/pool.conf.example (modelled on live's pool) |
| Sessions | /var/opt/php85/session |
| Kernel | /usr/lib/sysctl.d/60-php85-fpm.conf (net.core.somaxconn = 65535) |
| FPM log | /var/opt/php85/log/php-fpm.log |
| phpize | /opt/php85/bin/phpize, /opt/php85/bin/php-config |
Nothing is put on PATH, so it never clashes with the distro's php. To get a
php85 command:
ln -s /opt/php85/bin/php /usr/local/bin/php85Debug symbols and sources
dnf --enablerepo=sinphp-debuginfo install php85-debuginfo php85-debugsource
dnf --enablerepo=sinphp-source download --source php85