User:Rehman/MediaWiki

From mediawiki.org

Over the next few months, I plan on doing some demos on how organisations can use MediaWiki. This page is where I will be storing my own notes (hence it will look messy/incomplete).

The demos will be done on https://wiki.rehman.website/. All uploaded content are dummy content, and the main domain and subdomains were purchased with the intention of being disposable.

Quick links and notes[edit]

  • Pre-install checks:
    • Clear old files from domain/subdomains/directories
    • Clear old database/users as required
    • Recheck SSL
  • DownloadInstallation guideConfig scriptSystem administrationUpgradingUninstallation
  • Ideal root folder setup (on shared server): home/<user>/subdomain.domain.com/root/
    • Install MediaWiki in a subdirectory (/w): home/<user>/subdomain.domain.com/root/w/ (public: subdomain.domain.com/w/)
    • Files and/or deleted files could be located outside the root: home/<user>/subdomain.domain.com/images/deleted
  • Before running MediaWiki installer. Consider extracting all required extensions, so that they may all be installed at once automatically.

Extensions[edit]

Extensions included within MW 1.35.0[edit]

The below extensions come with the main MediaWiki installer (v1.34.2). Install all of them (as some of them requires others):

Suggested extensions[edit]

Private wiki[edit]

Restricting access within MediaWiki[edit]

See Manual:Preventing access. The below are automatically set when selecting "Private wiki" during install.

  • Disable reading by anonymous users: $wgGroupPermissions['*']['read'] = false;
  • Disable anonymous editing: $wgGroupPermissions['*']['edit'] = false;
  • Prevent new user registrations except by sysops: $wgGroupPermissions['*']['createaccount'] = false;

Restriction direct access to uploaded files[edit]

See Manual:Image authorization

  1. Add Deny from All in the .htaccess file located in the /images directory
  2. Add $wgUploadPath = "{$wgScriptPath}/img_auth.php"; to LocalSettings.php

Block malicious files (suitable if users and untrusted/unknown): Manual:Security#Upload security

Restricting bots crawling on the site[edit]

See Manual:robots.txt

  1. Create a robot.txt file in the web root
  2. Add the below lines within the file:
    User-agent: *
    Disallow: /

Also add $wgDefaultRobotPolicy = 'noindex,nofollow';

Other settings or notes[edit]

Hide index.php from URL[edit]

See Manual:Short URL and/or Manual:Short URL/Apache#Simple instructions.

.htaccess:

RewriteEngine On

# main rewrite rule
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]

# Redirect / to Main Page
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]

LocalSettings.php:

$wgScriptPath = "/w";     
$wgArticlePath = "/wiki/$1";

[edit]

Read more at Manual:FAQ#How do I change the logo?

# Update site logo (default path will be overridden during upgrade)
$wgLogo = "{$wgUploadPath}/6/62/mylogo.png";

Updating the favicon[edit]

Read more at Manual:FAQ#How do I change the icon in the browser's address line (favicon)?

Automatic double-redirect fix[edit]

# Fix double redirects after a page move. Edits by Redirect_fixer account name.
$wgFixDoubleRedirects = true;

Adding more file types[edit]

# Add more file types to the default array
$wgFileExtensions = array_merge(
    $wgFileExtensions, [
        'pdf', 'ppt', 'pptx', 'doc', 'docx', 'xls', 'xlsx', 'svg', 'oft'
    ]
);
  • To avoid the error File extension ".oft" does not match the detected MIME type of the file (application/sla) for .oft files, change application/sla stl to application/sla stl oft in /includes/libs/mime/mime.types.

Amend poweredby and copyright logos[edit]

# Amend both poweredby and copyright logos
$wgFooterIcons = [
	"copyright" => [
		"copyright" => [
			"src" => "/resources/assets/example_logo.png",
			"url" => "https://www.example.com/",
			"alt" => "Example text",
		]
	],
	"poweredby" => [
		"mediawiki" => [
			// Defaults to point at
			// "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png"
			// plus srcset for 1.5x, 2x resolution variants.
			"src" => null,
			"url" => "https://www.mediawiki.org/",
			"alt" => "Powered by MediaWiki",
		]
	],
];

Customising the sidebar[edit]

See Manual:Interface/Sidebar. Example:

Changing the Main page[edit]

  • Rename the page to the desired name, and update MediaWiki:Mainpage
  • Hide the page title? Use {{DISPLAYTITLE:<span style="opacity:0;position:absolute;">{{FULLPAGENAME}}</span>}}

Creating custom namespaces[edit]

Creating custom usergroups and rights[edit]

Modify password policy[edit]

Modify footer content[edit]

Disable caching[edit]

$wgParserCacheType = CACHE_NONE;

Others[edit]

  • Cpanel: Setup email and/or forwarders for the $wgPasswordSender
  • Cpanel: Disable index viewing
  • Cpanel: Enable hotlink protection

MediaWiki interface pages[edit]

To do[edit]