We already use php 7.2 in production, cloning Sury's php 7.2 repository. We will use that as a starting point, but then we will need to add a few more packages, specifically:
- php-geoip is currently not available for php 7.2 and needs to be recompiled
- php-msgpack is currently not available for php 7.2 and needs to be recompiled
- php-wikidiff2 and php-luasandbox are currently not available for php 7.2; we need to rebuild them and add them to our php72 component. We also need to add the Provides: ${php:Provides} line to the control files so that the package will provide php7.x-wikidiff2 when we rebuild against that component
In any case, we will not delay further the installation of php7 on the mwdebug servers as this looks like some additional work.
Apart from the packaging, installing a new version of php means we need to fix some details in our puppet code:
- extensions install by default "php-$extension", while it should be "php$version-$extension" for all extensions that provide the version-specific version or an alias
- for everything else, we need a pin to the php72 component on stretch. I would like to avoid this.
- we don't clean up at all when switching between versions this might or might not be solvable and suggest a reimage when we want to change versions.