We've currently three different servers where webserver-alkane is installed.
Server | Installed | What we would like |
Hervil | PHP 8.3 | Keep last PHP version as prod pool (only one pool) |
WindRiver | PHP 8.3 | Keep last PHP version as default pool, offer same extra pools than on web-001 |
web-001 | PHP 8.2 | Provide several pools depending of the PHP version |
On Ysul, the different pools was maintained like this:
- one default version of php is shipped through packages, normally the last one
- legacy versions and future versions from qa.php.net are installed in /opt
The current situation needs to be addressed by two different actions:
- Define default PHP version **by server and not globally*, perhaps through a grain php_default_version, that could be used in map.jinja and expressions like "php83"
- Provide extra PHP pools
- We need build instructions for PHP 8
- We need a pillar to choose what pool install on what server (salt-pillar will be useful here)
Alternatively, we could decide to keep a unique version, currently PHP 8.3, everywhere as the default one, and leverage the multi-pools.
web-001
I'd like to have this setup in web-001:
Pool name | Version | Scope |
prod-legacy-php82 | PHP 8.2 | All currently deployed sites moved here |
prod | PHP 8.3 | Promoted sites after string/null hunting, new sites |
qa-php84 | PHP 8.4RC2 | Cutting-edge sites using new functions like request_parse_body() or grapheme_str_split() or get/set properties |
Windriver
The qa-php84 pool on WindRiver is important too. The prod-legacy-php82 is not currently, but could be needed to repro a specific issue in the future. T1069 would even like to get a pool with current Git code.
Pool name | Version | Scope |
prod | PHP 8.3 | Promoted sites after string/null hunting, new sites |
qa-php84 | PHP 8.4RC2 | Cutting-edge sites using new functions like request_parse_body() or grapheme_str_split() or get/set properties |
dev | current PHP master branch | Test the future, development for PHP itself |