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 (as root) 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. Run the following command as root:- # 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 - Run the following commands (as root) to set the correct ownership: - # 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. Run the following command (as root): - # 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: 