Page MenuHomePhabricator

Package and install php 7.2 in place of php 7.0
Closed, ResolvedPublic

Description

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.

Event Timeline

Joe triaged this task as High priority.
Joe created this task.
Joe added a project: User-Joe.

Change 470863 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] php::extension: use version-specific package name by default

https://gerrit.wikimedia.org/r/470863

Change 470865 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] profile::mediawiki::php: allow picking a php version

https://gerrit.wikimedia.org/r/470865

Change 472136 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] package_builder: add ability to add the php72 component on stretch

https://gerrit.wikimedia.org/r/472136

Change 472136 merged by Giuseppe Lavagetto:
[operations/puppet@production] package_builder: add ability to add the php72 component on stretch

https://gerrit.wikimedia.org/r/472136

Mentioned in SAL (#wikimedia-operations) [2018-11-12T08:26:37Z] <_joe_> uploading new php-{luasandbox,wikidiff2} to stretch main component, rebuild php-{luasandbox,wikidiff2,geoip,msgpack} for php 7.2, upload to stretch component php72, T208433

Change 473058 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] mediawiki::php: install extensions with versioned package names

https://gerrit.wikimedia.org/r/473058

Mentioned in SAL (#wikimedia-operations) [2018-11-13T09:25:10Z] <_joe_> uploading new versions of php-msgpack, php-geoip compatible with both php 7.0 and php 7.2 to thirdparty/php72 T208433

Change 473058 merged by Giuseppe Lavagetto:
[operations/puppet@production] mediawiki::php: install extensions with versioned package names

https://gerrit.wikimedia.org/r/473058

Change 470865 merged by Giuseppe Lavagetto:
[operations/puppet@production] profile::mediawiki::php: allow picking a php version

https://gerrit.wikimedia.org/r/470865

Change 470863 abandoned by Giuseppe Lavagetto:
php::extension: use version-specific package name by default

Reason:
Superseded by other patches

https://gerrit.wikimedia.org/r/470863

Change 473230 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] mediawiki: install php 7.2 instead of 7.0

https://gerrit.wikimedia.org/r/473230

Change 473231 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] mediawiki::appserver: install php-fpm everywhere

https://gerrit.wikimedia.org/r/473231

Change 473230 merged by Giuseppe Lavagetto:
[operations/puppet@production] mediawiki: install php 7.2 instead of 7.0

https://gerrit.wikimedia.org/r/473230

status update:

php 7.2 is installed on the application servers in production and in beta. Exception is for now the maintenance servers, and the dump hosts, where we might follow a different path to upgrades

Change 473231 merged by Giuseppe Lavagetto:
[operations/puppet@production] mediawiki::appserver: install php-fpm everywhere

https://gerrit.wikimedia.org/r/473231

Change 475768 had a related patch set uploaded (by Giuseppe Lavagetto; owner: Giuseppe Lavagetto):
[operations/puppet@production] php: upgrade deployment servers, maintenance servers to php 7.2

https://gerrit.wikimedia.org/r/475768

Change 475768 merged by Giuseppe Lavagetto:
[operations/puppet@production] php: upgrade deployment servers, maintenance servers to php 7.2

https://gerrit.wikimedia.org/r/475768