MediaWiki is free, open-source software you can use to create wiki content, such as Wikipedia. The application is ideal for creating knowledge base pages similar to an encyclopedia.
For more information, visit MediaWiki's official site:
MediaWiki can be manually installed on DreamHost servers.
Before you install MediaWiki
Use these instructions to prepare your website for the MediaWiki installation:
- Download MediaWiki from its website at:
- Create a database that will be used by MediaWiki. View the following article for further information:
- Set your domain to use PHP 7.4 or higher. View the following article for further information:
You can find detailed instructions on manually installing MediaWiki in the following article:
- Upload the MediaWiki file that you downloaded to your web server via FTP.
- Log into your server via SSH, then decompress the file on the server.
- Confirm that the MediaWiki files are in your domain’s web directory. You may need to copy them from a newly-created mediawiki-x.xx.x directory to the root directory.
- Point your browser to mw-config/index.php in your extracted MediaWiki files, which opens the setup screen. For example:
- Follow the on-screen instructions to complete the process.
Once the installation process completes, a LocalSettings.php file is downloaded in your browser.
- Upload the LocalSettings.php file to your MediaWiki install folder on the webserver via FTP.
The LocalSettings.php file contains the configuration settings for your new MediaWiki installation, such as database credentials and user permissions.
Common add-ons to MediaWiki
MediaWiki offers many different types of extensions that you can use to add further functionality and customization to your site. See the following article for further details:
You can also add Google Analytics to your MediaWiki installation if you wish. See the following article for detailed instructions:
MediaWiki can occasionally have problems generating image thumbnails, such as returning corrupted images or the error message "Error creating thumbnail". A common cause of this is not enough memory.
If you upload a large image and see "Error creating thumbnail" where a thumbnail should be, try adding the following to your LocalSettings.php file in your site’s primary directory:
$wgMaxShellMemory = 524288;
For best results in generating thumbnails of SVG images, you may wish to install librsvg.
The SVG installation process is not supported and is recommended only for advanced users. See the following article for more information:
Email and spam
Add the following to your LocalSettings.php file:
$wgUserEmailUseReplyTo = true;
This spoofs the domain so that the sending user's email is in a Reply-To header instead of the From header. Otherwise, the email that users try to send each other through Special:EmailUser on your wiki cannot be delivered.
Given the SMTP quota, you need to be careful if you enable $wgEnotifWatchlist.
If a page is 'watchlisted' by 100 users who have that user preference enabled, then a change to that page uses up your quota for an hour, if you are on Shared Hosting.
Blocking MediaWiki spam
- Provides steps you can take to combat SPAM on your website.
- Description of what wiki spam is, and instructions on how any user can help tackle the wiki-spam problem (not just administrators). Not all of which is obvious, so it's worthwhile for administrators to read through this too, as you might wish to refer your wiki users to this.
- Enabling a Captcha on any form helps to reduce spam.
- By default, anyone can create an account on your wiki. However, you can restrict who has the ability to create accounts.
- You also have control over user rights. You can disable non-user edits with this feature.
In the MediaWiki root install, there is a subdirectory named /maintenance which includes various scripts you can run on your MediaWiki installation. In order to run the PHP scripts, you must create a Shell (SSH) user on your domain.
In order to run the scripts, you must enter php before the filename. For example, run the following command if you wish to run the script eval.php in the maintenance directory:
[server]$ php eval.php
If you simply type php, it uses the default version on the server. However, you can explicitly choose any version by using the following instead:
- /usr/local/php80/bin/php (Shared and Debian Buster servers only)
To learn more about the individual scripts, see the following article:
Caching your site can improve performance. There are several ways to cache your data using MediaWiki. See the following articles for further information:
See the following guide for instructions on how to enable file uploads:
See the following guide for instructions on how to back up your data:
Also, see the following DreamHost article for further instructions:
Passwords and HTTPS
MediaWiki uses a form on an HTTP web page to take your password. This means that your password transmits over the network in clear text. To use HTTPS, you must add an SSL certificate.
The LocalSettings.php file stores your database login information in it, including the database username and password. After you move the LocalSettings.php file to your root directory, you can review its permissions.
You should update the permissions on that file to 640 or 600. This can be done by running the following command:
[server]$ chmod 640 LocalSettings.php
This makes the file only writeable for the owner while the group can still read it. However, the most secure option is to mark the file as only readable/writable by the owner:
[server]$ chmod 600 LocalSettings.php
This way, your MySQL password on this file is safe from viewing from other users on the same server. See the following article for further details on permissions:
Moving database credentials to another file
Another good security practice is to set up a separate PHP file stored in your user's directory. This file stores your credentials and instead passes them as variables. The following setup describes how to link your LocalSettings.php file to this new file:
- In your user's directory (not the domain's directory), create a new directory called "external_includes".
- In this new folder, create a file called database_info.php.
- The full path to this new file is:
- Make sure to change username to your Shell user. The file includes the following (fill in your true values within the quotes):
<?php $database_server = "mysql.example.com"; $database_name = "databasename"; $database_user = "username"; $database_pw = "password"; ?>
- Remove the current database credentials in your LocalSettings.php file.
- Replace those lines with the following:
# enhanced DB security require_once ("/home/username/external_includes/database_info.php"); $wgDBserver = $database_server; $wgDBname = $database_name; $wgDBuser = $database_user; $wgDBpassword = $database_pw; # DB variables not security related - leave these alone from how when you set up your wiki $wgDBprefix = "wiki_"; $wgDBtype = "mysql";
With this setup, your credentials in the LocalSettings file are now safely hidden.
You can select which MediaWiki license you wish to use. See the following article for more details:
Wikipedia uses GFDL. If you wish to enable reusable content in Wikipedia and other GFDL projects, then you must use GFDL (or multi-license to use both). In general, if there are other projects you want to work with, you should use compatible licensing.
Always make sure to first backup your database and website files before making any adjustments. This way, if something were to error you could quickly replace your files. View the following article for details:
View the following guide at mediawiki.org for upgrade instructions:
It may be necessary to run the /maintenance/update.php script after upgrading. To do so, log into your site via SSH. Then run the following command:
[server]$ php /maintenance/update.php
This runs an update script that should fix any current errors on your site. If that doesn't work, specify the full path to a version of PHP. For example:
[server]$ /usr/local/php74/bin/php maintenance/update.php
Advanced settings and troubleshooting
You can enable debugging by adding lines at the bottom of your LocalSettings.php file. By enabling this, you are provided detailed debugging information to help isolate the cause.
See the following article for further details:
After you finish troubleshooting your install, you should disable your debugging settings.
You can shorten the URLs to appear more user friendly. For example, you can change the following URL example:
See the following articles for further instructions:
Fixing MediaWiki after adding an SSL certificate to a domain
You may notice that MediaWiki loads incorrectly or shows 'insecure content' warnings in the browser bar after you add an SSL certificate to the domain where MediaWiki is installed.
Your LocalSettings.php file must be edited to reflect HTTPS for your domain. To fix, find the $wgServer value in the LocalSettings.php file and make sure the domain shows HTTPS (and not HTTP) for the URL value:
## The protocol and server name to use in fully-qualified URLs $wgServer = "https://www.example.com";
After you make this edit, save it, and then transfer the LocalSettings.php file to the root wiki folder on your server. Refresh your browser and MediaWiki should load normally.