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 and root):
{ "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 the script setting:
- The direct target runs the .php script from the URI or defaults to index.php if the w omits it.
- The index target specifies the script 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: