Page MenuHomePhabricator

Support some form of "AutoSettings.php" like our "mw-config/overrides.php" to hook in after DefaultSettings but before LocalSettings.
Closed, ResolvedPublic

Description

Reading over Google App Engine's PHP environment, how things like the Memcache(d) libraries are setup so configuration is automatically injected under-the-hood, and looking at our mw-config/overrides.php for distributors hosts. I thought it might be useful to have some sort of AutoSettings for hosts that give explicit support for MediaWiki.

AutoSettings.php would be loaded after DefaultSettings.php but before LocalSettings.php. The file itself – like mw-config/overrides.php – would be a mere stub and explicitly declared as something it's ok for 3rd parties to modify.

Hosts could include documentation like 'Replace .../AutoSettings.php with the contents <?php require_once( "/node/path/to/some/common/AutoSettings.php" );' – and perhaps do that for mw-config/overrides.php too – which would contain some extra code added by the host.

The file would allow the defaults in DefaultSettings.php to be overridden with defaults that work better in the hosting environment.
For some examples of what a hosting environment could do inside of an AutoSettings.php:

  • Auto configure caching to use a series of Memcached servers they offer.
  • Change the defaults for $wgUseImageMagick $wgImageMagickConvertCommand $wgImageMagickIdentifyCommand to automatically point to the system installed ImageMagick instead of using gd by default.
  • Change the defaults for $wgJpegTran, $wgExiv2Command, $wgSVGConverters, the tidy executable, $wgDiff3, $wgDiff, $wgGitBin, and $wgPhpCli to use the correct paths.
  • Set $wgDirectoryMode to a default value that's more secure in the hosting environment.
  • Auto-configure $wgSMTP to send emails in a way that works efficiently for the hosting environment.
  • Auto-configure database settings for things like database host/port/type so only minimal config is required. Or auto-config DBservers or the load-balancer if they offer a standard cluster of replicated SQL servers.
  • Auto-configure squid if they offer it on behalf of the users.

I suppose rather than simple AutoSettings.php another possibility might be for a host to use auto_prepend_file, a custom php extension, etc... and for us to provide an API the host can have it's PHP environment automatically hook into.


Version: 1.22.0
Severity: enhancement

Details

Reference
bz55499

Event Timeline

bzimport raised the priority of this task from to Low.Nov 22 2014, 2:18 AM
bzimport set Reference to bz55499.
bzimport added a subscriber: Unknown Object (MLST).
Krinkle claimed this task.
Krinkle subscribed.

Seems to mostly be obsoleted by T182020: RfC: Introduce PlatformSettings.php.

The installer now detects presence of PlatformSettings.php and includes this automatically as the start of your LocalSettings.php file (see installer/LocalSettingsGenerator.php)