MediaWiki: Difference between revisions

php-fpm
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
I'm using the [http://www.mediawiki.org/wiki/MediaWiki MediaWiki] software from the WikiMedia Foundation to power my wikis. MediaWiki is written in PHP5, and thus precludes the use of a multi-threaded version of [http://www.apache.org Apache].
I'm using the [http://www.mediawiki.org/wiki/MediaWiki MediaWiki] software from the WikiMedia Foundation to power my wikis. '''The following information is largely [[Debian]]-specific.'''
 
==Use with Apache==
By default (at least on Debian), MediaWiki's PHP is run within Apache's PHP module <tt>mod_php</tt>. This can only be safely run under the multiprocess [https://httpd.apache.org/docs/2.4/mod/prefork.html mpm_prefork] paradigm. To use the (generally superior) [https://httpd.apache.org/docs/2.4/mod/worker.html mpm_worker] or [https://httpd.apache.org/docs/2.4/mod/event.html mpm_event] modules, one ought employ [https://www.php.net/manual/en/install.fpm.php php-fpm], the PHP "fast process manager" (note that FastCGI is also a thing. I don't know much about it).


==Installing MediaWiki==
==Installing MediaWiki==
'''The following information is largely [[Debian]]-specific.'''
* Have handy the administrator account/password for your MySQL installation.
* Have handy the administrator account/password for your MySQL installation.
** I advise you to install MySQL ''before'' MediaWiki, not as a single <tt>apt</tt> step.
** I advise you to install MySQL ''before'' MediaWiki, not as a single <tt>apt</tt> step.
Line 26: Line 28:
* memcached works out of the box, but doesn't seem very effective
* memcached works out of the box, but doesn't seem very effective
** You want the memcache server at 127.0.0.1:11211
** You want the memcache server at 127.0.0.1:11211
* Ensure <tt>mod_deflate</tt>'s compressing standard html/xml etc, and also <tt>application/x-javascript</tt> and <tt>text/css</tt>


==Postinstallation==
==Postinstallation==
* [http://www.mediawiki.org/wiki/Project:PD_help/Copying Install help pages] using Import/Export.
** They require the ParserFunctions extension. Be sure to get the proper version for your MediaWiki install.
* Set a wiki logo: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
* Set a wiki logo: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
** <code>$wgLogo = "/mediawiki/skins/common/images/wiki.jpg";</code> with the appropriate path to your logo
** <code>$wgLogo = "/mediawiki/skins/common/images/wiki.jpg";</code> with the appropriate path to your logo
Line 34: Line 39:
** If applicable, set the image background transparent so it'll look better
** If applicable, set the image background transparent so it'll look better
*** Using the Gimp, add an Alpha layer, select the background with the Magic Wand, and Clear it
*** Using the Gimp, add an Alpha layer, select the background with the Magic Wand, and Clear it
* Enable uploads: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
** <code>$wgEnableUploads = true;</code>
* Support uploading non-images: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
** <code>$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'pdf', 'ps', 'xls', 'txt' );</code>
** Supposedly, all types can be allowed via:
<code>$wgCheckFileExtensions = false;
$wgStrictFileExtensions = false;
$wgVerifyMimeType = false;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' );
$wgFileBlacklist = array();
$wgMimeTypeBlacklist= array();</code>
* Support inline equations: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and change
* Support inline equations: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and change
** <code>$wgUseTeX          = false;</code> so that it uses <tt>true</tt> instead
** <code>$wgUseTeX          = false;</code> so that it uses <tt>true</tt> instead
Line 50: Line 44:
* Disable editing unless logged in: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
* Disable editing unless logged in: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
** <code>$wgGroupPermissions['*']['edit'] = false;</code>
** <code>$wgGroupPermissions['*']['edit'] = false;</code>
* Disable per-IP pages:<tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
** <code>$wgShowIPinHeader = false;</code>
* Optionally, disable new accounts unless logged in: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
* Optionally, disable new accounts unless logged in: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
** <code>$wgGroupPermissions['*']['createaccount'] = false;</code>
** <code>$wgGroupPermissions['*']['createaccount'] = false;</code>
Line 55: Line 51:
** Load <tt>Mediawiki:mainpage</tt>, and update it to reflect this change
** Load <tt>Mediawiki:mainpage</tt>, and update it to reflect this change
* Optionally, remove the 'discussion' tab:
* Optionally, remove the 'discussion' tab:
** Edit <tt>mediawiki/includes/SkinTemplate.php</tt>, and comment out the following:<code>
** Edit [[MediaWiki:Common.css]], and add the following:<code>#ca-talk { display:none!important; }</code>
  $content_actions['talk'] = $this->tabAction(
** Ensure <tt>$wgUseSiteCss=true</tt> in LocalSettings.php
                                $talkpage,
===Managing Uploads===
                                'talk',
* Enable uploads: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
                                $this->mTitle->isTalkPage() && !$prevent_active_tabs,
** <code>$wgEnableUploads = true;</code>
                                '',
* Support uploading non-images: <tt>sudoedit /etc/mediawiki/LocalSettings.php</tt> and add
                                true);</code>
** <pre>$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'pdf', 'ps', 'xls', 'txt', 'svg' );</pre>
** Supposedly, all types can be allowed via:
<pre>
  $wgCheckFileExtensions = false;
$wgStrictFileExtensions = false;
$wgVerifyMimeType = false;
$wgFileBlacklist = array();
$wgMimeTypeBlacklist= array();
</pre>
* To allow files larger than the default 2M to be uploaded, edit the value of <tt>upload_max_filesize</tt> in <tt>/etc/php.ini</tt>
** This requires a web server restart to take effect
 
===System strings===
Most strings in e.g. sidebars can be edited in the Special:AllMessages area. To see what message key a string corresponds to, add "uselang=qqx" to a URI, e.g. https://nick-black.com/dankwiki/index.php?title=User:Dank&uselang=qqx.
 
==Moving a wiki==
There's a [http://www.mediawiki.org/wiki/Manual:Moving_a_wiki manual entry] on this. My notes follow:
* The uploaded files are '''not''' stored in your database, and need be copied by themselves
** By default, this is the 'images' directory off your wiki toplevel
** Use a copying method that preserves timestamps, such as tar
* Be sure you grab your configuration files, particularly /etc/mediawiki/LocalSettings.php
* You will also likely want to transfer your web server config as it relates to the wiki
* If you're using Mediawiki account permissions only, they'll be stored in your wiki database
** Otherwise, you'll of course need to copy over and prepare this supporting infrastructure
* Export your database with mysqldump as explained in the manual, and import it on the new machine
* If you can't do a database dump/load, you can do an XML export of all your pages
** This won't copy things like account data!


==Maintenance==
==Maintenance==
* The MediaWiki manual has good information scattered through it; check the [http://www.mediawiki.org/wiki/Manual:System_administration system administration page] for sure
* Most everything can be done via the [[Special:Specialpages|Special Pages]] page; learn it
* Most everything can be done via the [[Special:Specialpages|Special Pages]] page; learn it
* Check the [[Special:Lonelypages]] list to watch for orphaned pages; these pages are unreachable from any other page.
* Check the [[Special:Lonelypages]] list to watch for orphaned pages; these pages are unreachable from any other page.
Line 72: Line 95:
** See if the page can't be combined with another one, or if more info isn't sensible to add
** See if the page can't be combined with another one, or if more info isn't sensible to add
* How to check for dead external links? '''FIXME'''
* How to check for dead external links? '''FIXME'''
* Use the [http://www.mediawiki.org/wiki/Manual:GenerateSitemap.php generateSitemap.php] maintenance script to generate [http://www.sitemaps.org/ sitemaps]; these can be registered with search services.


==Extensions==
==Extensions==
Line 83: Line 107:


===Enabling other Extensions===
===Enabling other Extensions===
* Download the extension to <tt>/var/lib/mediawiki1.10/extensions</tt>
* Download the extension to <tt>/var/lib/mediawiki/extensions</tt>
* See <tt>/var/lib/mediawiki/extensions/README</tt> for up-to-date information on enabling it
* See <tt>/var/lib/mediawiki/extensions/README</tt> for up-to-date information on enabling it
* Worth noting: [http://www.mediawiki.org/wiki/Extension:Google_Analytics_Integration googleAnalytics], [http://www.mediawiki.org/wiki/Extension:Countdown Countdown], [http://www.mediawiki.org/wiki/Extension:RSS RSSNews]
==Editing==
Wikipedia's tutorials and the Mediawiki help pages are the best references here:
* [http://en.wikipedia.org/wiki/Image_tutorial Wikipedia image tutorial]
I also have [[MediaWiki editing|some information]].
===Editing permissions===
Some editing capabilities are by default disabled even for sysops:
<pre>
$wgGroupPermissions['sysop']['deleterevision']  = true;
$wgGroupPermissions['sysop']['editsitecss']  = true;
$wgGroupPermissions['sysop']['editsitejs']  = true;
</pre>
==See Also==
* [http://www.debian-administration.org/articles/137 mod_deflate configuration] for [[Debian]]