Alex/AT (alex@alex-at.net) software builds repository for shared hosting services [ DISCLAIMER ] All software provided is built for personal use only. Using in commercial environments is possible but is left to your own discretion. All software provided is property of their respective owners and no claims to any rights are made on the provided software otherwise. The software provided may be subject to specific restrictions, export limitations, etc., please consult the software documentation for details. If you are unsure if you can use the software provided in your specific environment, please consult the respective software owners. As per open source licenses of the software provided, original license texts, notices and whatever are provided along with its source code. As long as you provide the source code alongside and do not violate the provided software licenses otherwise, you are free to share it. PROVIDED AS IS. USE AT YOUR OWN RISK. There are COMPLETELY NO WARRANTIES offered or implied for any possible use of the software provided. Any consequences of using the provided software must be resolved on your own behalf, the repository maintainer does not provide any support nor offer any service nor can be made liable for any claims, losses or whatever you may suffer as result of using the software provided. The software builds and repository maintainer DOES NOT GUARANTEE the sofware and repository contents will always be harm-free and as well CANNOT BE EXPECTED to protect it against any security risks possible, but IS HEREBY PROMISING NOT TO PERFORM any deliberate malicious code injections to the repository or the software provided. Anyways, always doublecheck the software provided and USE IT AT YOUR OWN RISK. [ Platforms supported ] * Oracle Enterprise Linux 9 x86-64 [ol9] * (obsolete, deprecated, not updated anymore) CentOS 7 x86-64 [centos7] As CentOS, Oracle Enterprise Linux and Red Hat Linux platforms (and some others based on Red Hat source distribution) are compatible, you may expect these repositories contents to work on any of these platforms but there may be different caveats I do not know about. One of the strong prerequisites for stuff to work is having EPEL and MariaDB 10 repositories enabled, many RPMs rely on them. [ Software notes ] 1. Apache 2.4 (httpd-hosting) * Does not conflict with system httpd, specifically built to install into /opt/httpd completely * Custom patches included: * Alex/AT: mod_remoteip+mod_rpaf hybridization, providing for RemoteHostHeader, RemotePortHeader, RemoteProtoHeader support (allowing to supply real host/port/HTTPS values to client scripts, https://alex-at.net/blog/apache-mod_remoteip-mod_rpaf) * Alex/AT: UseCanonicalName Host support to hide internal virtual host names from client scripts, replacing by Host header contents * Alex/AT: %a and %A macro support for mod_headers, providing connection->client_ip and connection->local_ip values respectively * Additional modules available: * httpd-hosting-mpm_itk - MPM ITK for separating privileges (setting user/group) per virtual host (production grade) * httpd-hosting-mod_xsendfile - mod_xsendfile for Apache 2.4 (production grade) * httpd-hosting-mod_evasive - mod_evasive24 for Apache 2.4 (not tested thoroughly) * Provides httpd@ systemd service to run i.e. httpd@php70, httpd@php71, etc. * Configuration root is searched in /etc/httpd//httpd.conf, like /etc/httpd/php70/httpd.conf * Default configurations in /opt/httpd/conf are probably unusable 2. PHP (phpXX-hosting) * All builds are non-ZTS and are designed to not conflict, installing completely into /opt/phpXX/ * Available builds and small notes: * PHP 5.2 (php52-hosting) - extended with sys_temp_dir support in .ini, fixed for newer libxml2 and mysqlnd support, built with older openssl version * PHP 5.3 (php53-hosting) - extended with sys_temp_dir support in .ini * PHP 5.4 (php54-hosting) - extended with sys_temp_dir support in .ini * PHP 5.5 (php55-hosting) * PHP 5.6 (php56-hosting) * PHP 7.0 (php70-hosting) * PHP 7.1 (php71-hosting) * PHP 7.2 (php72-hosting) * PHP 7.3 (php73-hosting) * PHP 7.4 (php74-hosting) * PHP 8.0 (php80-hosting) * PHP 8.1 (php81-hosting) * PHP 8.2 (php82-hosting) * More may be added once releases are available, or even some beta versions may be built (beta versions will have lower epoch numbers) * All custom RPMs or those that are intended to prevail over the system software will be built with heightened epoch of 10 (or +10 to the distro epoch) * Beta versions are expected to have an epoch of 5 and there will be no beta versions of RPMs that are intended to override system software 3. Modules and module notes * Please note that this list DOES NOT include all the modules built in, there are more, but unlisted ones may be subject to change * Static: bcmath, bz2, calendar, curl, dom, exif, fileinfo, filter, flatfile, ftp, gd, gettext, gmp, hash, iconv, imap, inifile, intl, json, ldap, mbstring, mysqli, openssl, pcre, pdo, pdo-mysql, phar, readline, session, simplexml, snmp, sockets, sqlite3, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, wddx, zip * Shared (.so): pcntl, posix, shmop * PHP 5.2: external PCRE library used (not native PHP) due to bugs in native one * PHP 5.2-5.6: mssql (FreeTDS) shared variant (.so) is included, for PHP 7.x see section (3) below * PHP 5.4 and up: mysqlnd driver is used for MySQL access * PHP 5.5 and up: native opcache is included, for PHP 5.2-5.4 see section (3) below * All versions have Apache module and CLI/CGI variants built, all versions supporting FPM have FPM support built in as well 4. Additional PHP modules (phpXX-hosting-M) * Modules are installed into /opt/phpXX/lib64/extensions/ for all 5.x or 7.x PHP versions, even if certain PHP version is not installed * All modules are production grade, including 'compatibility' ones * APCu key/value cache * PHP 5.x (php5x-hosting-apcu): latest version 4 from PECL * PHP 7.x (php7x-hosting-apcu): latest version available * Blitz templating engine * PHP 5.2 (php52-hosting-blitz): version 0.6.10 (the latest compatible) * PHP 5.3-5.6 (php5x-hosting-blitz): version 0.9.1 (the latest compatible) * PHP 7.x (php7x-hosting-blitz): latest version available * DBase (PECL variant, native variant is not built) * PHP 5.x (php5x-hosting-dbase): latest version 5 from PECL * PHP 7.x (php7x-hosting-dbase): latest version available * GNUPG * PHP 5.x (php5x-hosting-gnupg), PHP 7.x (php7x-hosting-gnupg): latest version available * MSPHPSQL * PHP 7.x (php7x-hosting-msphpsql): latest version available * For PHP 5.x, use FreeTDS-based mssql API (mssql.so) * OpCache: * PHP 5.2-5.4 (php5x-hosting-zendopcache): latest existing compatible GIT version (7.0.5) * For PHP 5.5 and up, native and more up-to-date module is available with phpXX-hosting distribution * For PHP 5.2, interned strings caching is not supported * Contains fixes from later PHP versions for critical bugs: #69549, #71843, #73402 * SSH2 * PHP 5.x (php5x-hosting-ssh2): version 0.13 from PECL * PHP 7.x (php7x-hosting-ssh2): latest version available * ZeroMQ * PHP 5.x (php5x-hosting-zmq), PHP 7.x (php7x-hosting-zmq): latest version available 4. Miscellaneous supplementary software builds (contained in tools repository) * ZeroMQ library (zeromq4, zeromq4-devel): required for php5x-hosting-zmq/php7x-hosting-zmq, latest version available * Blitz templating engine support for native OS PHP 5.4 (php-blitz): handy if you want to use Blitz with CentOS provided PHP as well, version 0.9.1 (latest compatible) [ Build notes ] - All builds are done using latest distribution GCC (and options) and compatible system library versions, with some from epel repository included - All builds are using latest MariaDB 10.x release, system MariaDB version is not supported - Older PHP versions are built with custom compatibility OpenSSL 1.0/1.1 versions (installed under /opt) due to lack of support for newer versions - No special build tuning / optimization was done besides what distribution instructs to, opcache compiler cache was used to speed up builds - Build platform is updated to latest distro version, but may occasionally miss an update or two - When the major package (like httpd) is updated, all semi-dependent packages (i.e. php and extensions) are usually also rebuilt as well - Source RPMs provided should be exactly matching builds, sources for some intermediate builds can be omitted though - Build release versions are increasing inside software version, but can be non-monotonic, because of skipping internal builds - On software version changes, build release version may be either still increased or reset back to 1, no guarantees here - Sometimes build release versions will change without changing software version, this means some bugs were found and fixed, and it is wise to move to the latest one