MediaWiki§
To run the MediaWiki collaboration and documentation platform using Unit:
Install Unit with a PHP language module.
Install MediaWiki’s core files. Here, we install it at
/path/to/app/
; use a real path in your configuration.Run the following command so Unit can access the application directory:
# chown -R unit:unit /path/to/app/
Note
The
unit:unit
user-group pair is available only with official packages, Docker images, and some third-party repos. Otherwise, account names may differ; run the ps aux | grep unitd command to be sure.For further details, including permissions, see the security checklist.
Next, prepare the MediaWiki configuration for Unit (use real values for
share
androot
):{ "listeners": { "*:80": { "pass": "routes" } }, "routes": [ { "match": { "uri": [ "!/tests/qunit/*", "/cache/*", "/includes/*", "/languages/*", "/maintenance/*", "/tests/*", "/vendor/*" ] }, "action": { "return": 404 } }, { "match": { "uri": [ "/api.php*", "/img_auth.php*", "/index.php*", "/load.php*", "/mw-config/*.php", "/opensearch_desc.php*", "/profileinfo.php*", "/rest.php*", "/tests/qunit/*.php", "/thumb.php*", "/thumb_handler.php*" ] }, "action": { "pass": "applications/mw/direct" } }, { "match": { "uri": [ "!*.php", "!*.json", "!*.htaccess", "/extensions/*", "/images/*", "/resources/assets/*", "/resources/lib/*", "/resources/src/*", "/skins/*" ] }, "action": { "share": "/path/to/app$uri" } }, { "action": { "pass": "applications/mw/index" } } ], "applications": { "mw": { "type": "php", "targets": { "direct": { "root": "/path/to/app/" }, "index": { "root": "/path/to/app/", "script": "index.php" } } } } }
Note
The difference between the
pass
targets is their usage of thescript
setting:The
direct
target runs the.php
script from the URI or defaults toindex.php
if the w omits it.The
index
target specifies thescript
that Unit runs for any URIs the target receives.
Upload the updated configuration. Assuming the JSON above was added to
config.json
:# curl -X PUT --data-binary @config.json --unix-socket \ /path/to/control.unit.sock http://localhost/config/
Note
The control socket path may vary; run unitd -h or see Startup and Shutdown for details.
Browse to http://localhost/mw-config/index.php and set MediaWiki up using the settings noted earlier:
Download the newly generated
LocalSettings.php
file and place it appropriately:$ chmod 600 LocalSettings.php # chown unit:unit LocalSettings.php # mv LocalSettings.php /path/to/app/
After installation, add a match condition to the first step to disable access to the
mw-config/
directory:# curl -X POST -d '"/mw-config/*"' \ --unix-socket /path/to/control.unit.sock \ http://localhost/config/routes/mediawiki/0/match/uri/ { "success": "Reconfiguration done." }
After a successful update, MediaWiki should be available on the listener’s IP address and port: