<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://camnet.oetterer.eu/index.php?action=history&amp;feed=atom&amp;title=Projekt%3ASoftware_customization</id>
	<title>Projekt:Software customization - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://camnet.oetterer.eu/index.php?action=history&amp;feed=atom&amp;title=Projekt%3ASoftware_customization"/>
	<link rel="alternate" type="text/html" href="https://camnet.oetterer.eu/index.php?title=Projekt:Software_customization&amp;action=history"/>
	<updated>2026-11-02T13:45:02Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in CamNet</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://camnet.oetterer.eu/index.php?title=Projekt:Software_customization&amp;diff=7323&amp;oldid=prev</id>
		<title>imported&gt;Oetterer: /* Not on productive system */</title>
		<link rel="alternate" type="text/html" href="https://camnet.oetterer.eu/index.php?title=Projekt:Software_customization&amp;diff=7323&amp;oldid=prev"/>
		<updated>2017-02-13T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Not on productive system&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;There are several ways to customize the Mediawiki platform. Here, we shed some light on the common ones:&lt;br /&gt;
* How can I start my own project&lt;br /&gt;
* How can I adapt an existing project&lt;br /&gt;
* What interconnections are there with external packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating your own project ==&lt;br /&gt;
When you work with the IMT git, [[Project:Installation#Get_the_files|get yourself a clean copy]] and switch to master branch. You should probably make a new branch for your project so that you don&amp;#039;t accidently push your customizations into origin/master. If you don&amp;#039;t have access to a clean master, copy an existing project and remove &amp;#039;&amp;#039;LocalSettings_host.php&amp;#039;&amp;#039; and &amp;#039;&amp;#039;LocalSettings_extensions.php&amp;#039;&amp;#039;. Also take extra care not to keep settings from the original project in &amp;#039;&amp;#039;LocalSettings_project.php&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings_project.php ===&lt;br /&gt;
Here you setup basic configuration for your project - all settings that are used on all the hosts belonging to your project (or at least some defaults that can be overridden on a host bases). This basic configuration includes:&lt;br /&gt;
* Site Configuration&lt;br /&gt;
* Database settings (excluding password)&lt;br /&gt;
* Namespaces&lt;br /&gt;
* ACLs&lt;br /&gt;
&lt;br /&gt;
We&amp;#039;ll cover them step-by-step.&lt;br /&gt;
&lt;br /&gt;
==== Site Configuration ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line=1 highlight=&amp;quot;11,18,21,22,34&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    # ***************************** NOTE *****************************&lt;br /&gt;
    # this is a special config file for all project specific defaults&lt;br /&gt;
    # especially general acl and namespace definitions are to be found&lt;br /&gt;
    # here.&lt;br /&gt;
    #&lt;br /&gt;
&lt;br /&gt;
    ## Sitespecific information:&lt;br /&gt;
    # Name of Site (and Project space)&lt;br /&gt;
    # place your project sitename here. overwrite on dev or staging, using LocalSettings_host.php&lt;br /&gt;
    $wgSitename = &amp;quot;YOURSITENAME&amp;quot;;&lt;br /&gt;
    $wgMetaNamespace = &amp;quot;Projekt&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # Server name&lt;br /&gt;
    # The protocol and server name for your project to use in fully-qualified URLs&lt;br /&gt;
    # you should configure the service url of your project here, e.g. https://project.uni-paderborn.de&lt;br /&gt;
    # if you are on staging or dev, overwrite in LocalSettings_host.php&lt;br /&gt;
    $wgServer = &amp;quot;https://yourproject.domain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # Contact adresses&lt;br /&gt;
    $wgEmergencyContact = &amp;quot;thatsme@domain&amp;quot;; // one of your email accounts&lt;br /&gt;
    $wgPasswordSender = &amp;quot;thatsme@domain&amp;quot;;   // one of your email accounts&lt;br /&gt;
&lt;br /&gt;
    # Site language code, should be one of the list in ./languages/Names.php&lt;br /&gt;
    $wgLanguageCode = &amp;quot;de&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # The relative URL path to the logo. Make sure you change this from the default,&lt;br /&gt;
    # or else you&amp;#039;ll overwrite your logo when you upgrade!&lt;br /&gt;
    # on dev or staging, overwrite in LocalSettings_host.php&lt;br /&gt;
    # note: the logo should have a size of 135x135&lt;br /&gt;
    #$wgLogo = &amp;quot;$wgStylePath/common/images/wiki.png&amp;quot;;&lt;br /&gt;
    #$wgLogo = &amp;quot;/images/f/f4/MyUploadedLogo.png&amp;quot;;   # when using an uploaded image&lt;br /&gt;
    #$wgLogo = &amp;quot;/img_auth.php/f/f4/MyUploadedLogo.png&amp;quot;; # when using img_auth.pgp (see below)&lt;br /&gt;
    $wgLogo = &amp;quot;$wgScriptPath/images/common/logo.jpg&amp;quot;;   // we recommend storing your wikilog in _images/common&lt;br /&gt;
&lt;br /&gt;
    # since 1.25, we also have the opportunity to add a hd logo;&lt;br /&gt;
    # currently 1.5x and 2x are supported (meaning 2x logo can have 270x270)&lt;br /&gt;
    #$wgLogoHD = array(&lt;br /&gt;
    #   &amp;quot;1.5x&amp;quot; =&amp;gt; &amp;quot;path/to/1.5x_version.png&amp;quot;,&lt;br /&gt;
    #   &amp;quot;2x&amp;quot; =&amp;gt; &amp;quot;path/to/2x_version.png&amp;quot;&lt;br /&gt;
    #);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ## File handling&lt;br /&gt;
    # To enable image uploads, make sure the &amp;#039;images&amp;#039; directory&lt;br /&gt;
    # is writable, then set this to true:&lt;br /&gt;
    $wgEnableUploads = true;&lt;br /&gt;
&lt;br /&gt;
    # for handling files via img_auth, uncomment the following line and set $wgUploadDirectory&lt;br /&gt;
    #$wgUploadPath = &amp;quot;$wgScriptPath/img_auth.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # when using img_auth.php, you can specify a different file directory.&lt;br /&gt;
    # remember: this must be within apache&amp;#039;s open_basedir, but not necessary below DOCUMENT_ROOT&lt;br /&gt;
    #$wgUploadDirectory = &amp;#039;/var/www/&amp;lt;yourwikiname&amp;gt;/_images&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    # default allowed file extensions are: .gif, .jpg, .jpeg, .png&lt;br /&gt;
    # you can specify more here:&lt;br /&gt;
    $wgFileExtensions[] = &amp;quot;svg&amp;quot;;&lt;br /&gt;
    $wgFileExtensions[] = &amp;quot;pdf&amp;quot;;&lt;br /&gt;
    #$wgFileExtensions[] = &amp;quot;tif&amp;quot;&lt;br /&gt;
    #$wgFileExtensions[] = &amp;quot;tiff&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The important settings in the first part are:&lt;br /&gt;
# 11: Give your project a name. This shows in the browser title and on various places inside the wiki&lt;br /&gt;
# 18: Here you define the default host name. Good practice is to set the name of your live system here, e.g. hilfe.uni-paderborn.de&lt;br /&gt;
# 21f: contact addresses to use&lt;br /&gt;
# 34: Set the (default) logo here. Recommended is to place it on &amp;lt;code&amp;gt;/_images/common&amp;lt;/code&amp;gt;, which will result in a setting as shown in line 33.&lt;br /&gt;
&lt;br /&gt;
==== Database ====&lt;br /&gt;
You configure most of the settings for your database connection in this file. The password, however, is the be found in &amp;#039;&amp;#039;LocalSettings_host.php&amp;#039;&amp;#039;, so you can differenct credentials on different systems.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=1 start=&amp;quot;63&amp;quot; highlight=&amp;quot;4,5&amp;quot;&amp;gt;&lt;br /&gt;
    ## Database settings&lt;br /&gt;
    $wgDBtype = &amp;quot;mysql&amp;quot;;&lt;br /&gt;
    $wgDBserver = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
    $wgDBname = &amp;quot;DBNAME&amp;quot;;&lt;br /&gt;
    $wgDBuser = &amp;quot;DBUSER&amp;quot;;&lt;br /&gt;
    #$wgDBpassword = &amp;quot;DBPASSWD&amp;quot;;    # set in LocalSettings_host.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Namespaces ====&lt;br /&gt;
What is a namespace? See [[mw:Help:Namespaces|the documentation on mediawiki.org]] for more about this.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=1 start=&amp;quot;81&amp;quot; highlight=&amp;quot;4,5,6,7&amp;quot;&amp;gt;&lt;br /&gt;
    ## Namespace configuration&lt;br /&gt;
    # including new definition of access rights that have to be assigned to these role arrays:&lt;br /&gt;
    # $imtDefaultRoleContributor, $imtDefaultRoleCurator, $imtDefaultRoleDeveloper, $imtDefaultRoleAdministrator, or $imtDefaultRoleMaintenancebot&lt;br /&gt;
    define(&amp;quot;NS_META&amp;quot;, 3500);&lt;br /&gt;
    define(&amp;quot;NS_META_TALK&amp;quot;, 3501);&lt;br /&gt;
    $wgExtraNamespaces[NS_META] = &amp;quot;Meta&amp;quot;;&lt;br /&gt;
    $wgExtraNamespaces[NS_META_TALK] = &amp;quot;Meta_talk&amp;quot;;    # NOTE: It is important to use a underscore in namespace name&lt;br /&gt;
    $wgNamespacesWithSubpages[NS_META] = true;&lt;br /&gt;
    $wgNamespaceProtection[NS_META] = array( &amp;#039;write_in_NS_META&amp;#039; );&lt;br /&gt;
    $imtDefaultRoleContributor[&amp;quot;write_in_NS_META&amp;quot;] = true;&lt;br /&gt;
    $imtDefaultRoleCurator[&amp;quot;write_in_NS_META&amp;quot;] = true;&lt;br /&gt;
    $imtDefaultRoleDeveloper[&amp;quot;write_in_NS_META&amp;quot;] = true;&lt;br /&gt;
    $imtDefaultRoleAdministrator[&amp;quot;write_in_NS_META&amp;quot;] = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This block can serve as a template for namespace definition. The four highlighted lines are mandatory. Also: Do not uses spaces in namespace names (use underscores instead).&lt;br /&gt;
&lt;br /&gt;
You can configure a namespace further by enabling subpages and setup a namespace protection. The latter will only allow users with the appropriate role to write in this namespace.&lt;br /&gt;
&lt;br /&gt;
==== ACLs ====&lt;br /&gt;
Access to certain features in mediawiki is governed by permissions. These are bound to groups and as soon as a user is in a certain group, he has all the appropriate rights. For more about the individiual permissions, please consult [[mw:Manual:User_rights#List_of_permissions|the documentation on mediawiki.org]].&lt;br /&gt;
&lt;br /&gt;
For ease of use, this plattform defines a list of roles with predefined permission sets. You can simply assign one of this roles to a group. The available groups are:&lt;br /&gt;
* {{code snippet|lang=php|$imtDefaultRoleReader}}, which has only read access&lt;br /&gt;
* {{code snippet|lang=php|$imtDefaultRoleContributor}}, which can do basic write operations&lt;br /&gt;
* {{code snippet|lang=php|$imtDefaultRoleCurator}}, which has elevated write permissions, and can also perform some gardening operations&lt;br /&gt;
* {{code snippet|lang=php|$imtDefaultRoleDeveloper}}, as above, but has also write access to the namespaces modules and templates. Also can configure the mediawiki interface&lt;br /&gt;
* {{code snippet|lang=php|$imtDefaultRoleAdministrator}}, as above, but can also perform adminitrative tasks like blocking users, protecting pages, batch deletes, etc.&lt;br /&gt;
* {{code snippet|lang=php|$imtDefaultRoleMaintenancebot}}, used for scripts and is based in the curator role.&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s have a look at the section:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=1 start=&amp;quot;96&amp;quot; highlight=&amp;quot;5,7,15,18,22&amp;quot;&amp;gt;&lt;br /&gt;
    ## Access control&lt;br /&gt;
    # public or not&lt;br /&gt;
    # by default, content can only be viewed after a successful login&lt;br /&gt;
    # with this setting, however, your wiki is free to READ for all:&lt;br /&gt;
    #$wgGroupPermissions[&amp;#039;*&amp;#039;] =&amp;amp; $imtDefaultRoleReader;&lt;br /&gt;
    # if you configured the use of img_auth above, you also have to uncomment this:&lt;br /&gt;
    #$wgImgAuthPublicTest = false;&lt;br /&gt;
&lt;br /&gt;
    # access roles: you can assign default roles or use an array with custom rights&lt;br /&gt;
    # default roles are: $imtDefaultRoleReader, $imtDefaultRoleContributor, $imtDefaultRoleCurator, $imtDefaultRoleDeveloper, $imtDefaultRoleAdministrator, or $imtDefaultRoleMaintenancebot&lt;br /&gt;
    # note:&lt;br /&gt;
    # * &amp;#039;user&amp;#039; (the group of authenticated user) already has the role contributor&lt;br /&gt;
    # * &amp;#039;imt-mediawiki-maintenance&amp;#039; (ldap bot accounts) already has the role maintenancebot&lt;br /&gt;
    # also remember: an ldap group used here must have the ldap group attribute &amp;#039;Wiki Gruppe&amp;#039;&lt;br /&gt;
    #$wgGroupPermissions[&amp;#039;sample group&amp;#039;] =&amp;amp; $imtDefaultRoleAdministrator;&lt;br /&gt;
&lt;br /&gt;
    # you can restrict login to a list of groups (each of which has its users added to wiki group &amp;#039;user&amp;#039; automatically)&lt;br /&gt;
    #$imtGrantAccessRoles = array( &amp;#039;sample_group&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
    # you can also deny access for a list of groups&lt;br /&gt;
    # remember: an ldap group used here also must have the ldap group attribute &amp;#039;Wiki Gruppe&amp;#039;&lt;br /&gt;
    #$imtDenyAccessRoles = array( &amp;#039;blacklist_group&amp;#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* 100,102: If you want your wiki to be public readable, uncomment these two lines&lt;br /&gt;
* 110: this line shows an example on how to define a permission group. If you use the ldap extension, name your ldap group here. &amp;#039;&amp;#039;&amp;#039;Pleae note the &amp;lt;code&amp;gt;=&amp;amp;&amp;lt;/code&amp;gt; operator!&amp;#039;&amp;#039;&amp;#039; Use it to make sure, changes to the roles later in &amp;#039;&amp;#039;LocalSettings_extensions.php&amp;#039;&amp;#039; is propagated back to your group.&lt;br /&gt;
* 113: If you want to restrict login to members of certain (ldap) groups, name them here. If you keep it commented, all valid accounts are able to login.&lt;br /&gt;
* 117: furthermore, if you want to deny login to certain (ldap) groups, name them here&lt;br /&gt;
{{ambox|type=notice|text=Note that the default user group has been stripped of all permissions. If you want to use this group, assign a role, e.g. {{code snippet|lang=php|code=$wgGroupPermissions[&amp;#039;user&amp;#039;] =&amp;amp; $imtDefaultRoleContributor;}}}}&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings_project_extensions.php ===&lt;br /&gt;
If you want your project to have additional extensions, configure them here and not in &amp;#039;&amp;#039;LocalSettings_extensions.php&amp;#039;&amp;#039;. For most of the shipped extensions there is an entry here (if they are not a default extension, that is). Just uncomment the include/loader command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
    # Nuke&lt;br /&gt;
    #wfLoadExtension( &amp;#039;Nuke&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
    # our otrsconnector&lt;br /&gt;
    #require_once( &amp;quot;$IP/extensions/OtrsConnector/OtrsConnector.php&amp;quot; );&lt;br /&gt;
    $wgOtrsConnectorMailtoAddress = &amp;quot;imt@uni-paderborn.de&amp;quot;;&lt;br /&gt;
    $wgOtrsConnectorOtrsAddress = &amp;quot;otrs.uni-paderborn.de&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to integrate additional extensions, place the sources inside the &amp;lt;code&amp;gt;_extensions&amp;lt;/code&amp;gt; directory and add the loader command in &amp;#039;&amp;#039;&amp;#039;LocalSettings_project_extensions.php&amp;#039;&amp;#039;&amp;#039;. It is recomended, to add extensions as submodules instead of downloading the sources. If you want to do this, venture in &amp;lt;code&amp;gt;_extensions&amp;lt;/code&amp;gt; and execute&lt;br /&gt;
{{code|lang=bash|code=&lt;br /&gt;
git submodule add https://gerrit.wikimedia.org/r/p/mediawiki/extensions/WikiEditor.git&lt;br /&gt;
}}&lt;br /&gt;
For more information about the configuration of a certain extension, please see its documentation page.&lt;br /&gt;
&lt;br /&gt;
== Configuring your host ==&lt;br /&gt;
You also need a host specific config file - at least for your database credentials and your session hash token.&lt;br /&gt;
&lt;br /&gt;
What you can also do with this config file is to override some (project-)defaults. For instance you could disable caching on a dev system, give your staging system a different logo or add additional permissions for your testing team. Every setting from &amp;#039;&amp;#039;LocalSettings.php&amp;#039;&amp;#039; and &amp;#039;&amp;#039;LocalSettings_project.php&amp;#039;&amp;#039; can be overwritten here. We will not show this in detail, just add the neccessary lines somewhere in the file.&lt;br /&gt;
&lt;br /&gt;
==== Not on productive system ====&lt;br /&gt;
When you are not on your main/live/productive, you maybe want to change some settings in addition to your host name (&amp;#039;&amp;#039;&amp;#039;which you have to set&amp;#039;&amp;#039;&amp;#039;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;35&amp;quot; highlight=&amp;quot;5,10,13,21,22&amp;quot;&amp;gt;&lt;br /&gt;
    ## Sitespecific information:&lt;br /&gt;
    ############################&lt;br /&gt;
    # Name of Site (and Project space).&lt;br /&gt;
    # Default for project is found in LocalSettings_project.php; overwrite in project or staging here&lt;br /&gt;
    $wgSitename = $wgSitename . &amp;quot; - staging&amp;quot;;&lt;br /&gt;
    #$wgMetaNamespace = &amp;quot;Project&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # The protocol and server name to use in fully-qualified URLs&lt;br /&gt;
    # Default for project is found in LocalSettings_project.php; overwrite in project or staging here&lt;br /&gt;
    $wgServer = &amp;quot;https://yourhostname-staging.domain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # note, that if you&amp;#039;re running a semantic media wiki, uncomment this and specify your host (w/o protocol) again&lt;br /&gt;
    enableSemantics( &amp;quot;yourhostname-staging.domain&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
    # The relative URL path to the logo. Make sure you change this from the default,&lt;br /&gt;
    # Default for project is found in LocalSettings_project.php; overwrite in project or staging here&lt;br /&gt;
    $wgLogo = &amp;quot;$wgScriptPath/images/common/logo-stage.jpg&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # Contact adresses&lt;br /&gt;
    # Default for project is found in LocalSettings_project.php; overwrite in project or staging here&lt;br /&gt;
    $wgEmergencyContact = &amp;quot;thatsme@domain&amp;quot;; // one of your email accounts&lt;br /&gt;
    $wgPasswordSender = &amp;quot;thatsme@domain&amp;quot;;   // one of your email accounts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changing credentials ====&lt;br /&gt;
The easiest way to do this, is to use [[Project:Software_features#reset_secrets|a script]]. If you want to do it manually, change the following lines:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;59&amp;quot; highlight=&amp;quot;4,8,11&amp;quot;&amp;gt;&lt;br /&gt;
    ## some secrets&lt;br /&gt;
    ###############&lt;br /&gt;
    # db password&lt;br /&gt;
    $wgDBpassword = &amp;quot;DBPASSWD&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # secret session fallback hash&lt;br /&gt;
    # Note: $wgSecretKey: [0-9a-z]{64}&lt;br /&gt;
    $wgSecretKey = &amp;quot;4207ee50e0e84aad131214b2ede66f206ca3b94a00fbecc3b25c62e4e38a96c9&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    # Changing this will log out all existing sessions.&lt;br /&gt;
    $wgAuthenticationTokenVersion = &amp;quot;1&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Disable caching ====&lt;br /&gt;
Find this line and uncomment the cache type:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; start=&amp;quot;29&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    ## Caching&lt;br /&gt;
    ##########&lt;br /&gt;
    # is per default active. you maybe want to disable this on dev or staging systems&lt;br /&gt;
    $wgMainCacheType = CACHE_NONE;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Debugging ====&lt;br /&gt;
There is a section at the end where you can add debugging output:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; start=&amp;quot;72&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    ## debug&lt;br /&gt;
    ########&lt;br /&gt;
#   error_reporting(E_ALL);&lt;br /&gt;
#   ini_set (&amp;quot;display_errors&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
#   $wgShowExceptionDetails = true;&lt;br /&gt;
#   $wgMainCacheType = CACHE_NONE;&lt;br /&gt;
#   $wgDebugToolbar = true;&lt;br /&gt;
##  $wgShowDebug = true;&lt;br /&gt;
#   $wgDevelopmentWarnings = false;&lt;br /&gt;
##  $wgShowSQLErrors = true;&lt;br /&gt;
##  $wgDebugDumpSql = true;&lt;br /&gt;
##  $wgShowDBErrorBacktrace = true;&lt;br /&gt;
#   $wgDebugLogFile = $wgTmpDirectory . &amp;quot;/project-debug.log&amp;quot;;&lt;br /&gt;
##  Lua debug log file is to be configured in LocalSettings_extensions.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings_extensions.php ===&lt;br /&gt;
This includes and configures all extensions of your platform. You can add and remove extensions here.&lt;br /&gt;
&lt;br /&gt;
Note: The first part (that one being about semantic) configures semantic media wiki and dependant extensions. Most of them are installed via composer, therefore you won&amp;#039;t find any file inclusions for these extensions here. Please see [[Project:Maintenance#Composer|Maintenance#Composer]] for more information on how to install, remove and upgrade composer dependant extensions.&lt;br /&gt;
&lt;br /&gt;
Second part containes the traditionally installed extensions in an alphabetical order. With each extensions comes their basic configuration. However, if they require certain access rights specify them in &amp;lt;code&amp;gt;LocalSettings_acls.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== External Components ==&lt;br /&gt;
There are some features of this platform, that needs &amp;quot;external&amp;quot; help to work:&lt;br /&gt;
&lt;br /&gt;
=== APC (Alternative PHP Cache) ===&lt;br /&gt;
Your wiki platform is configured to take advantage of php opcode caching. You can either install apc (recommended) or uncomment the corresponding line in &amp;lt;code&amp;gt;./_config/LocalSettings.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To install apc hit&lt;br /&gt;
{{code|bash|&lt;br /&gt;
apt-get apc&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
As a sample configuration you can use this:&lt;br /&gt;
&lt;br /&gt;
{{code|apache|code=&lt;br /&gt;
apc.enabled=1&lt;br /&gt;
&lt;br /&gt;
; If APC is configured with mmap it only uses 1 shm_segment&lt;br /&gt;
apc.shm_segments=1&lt;br /&gt;
&lt;br /&gt;
; just large memory example ##&lt;br /&gt;
apc.shm_size=200M&lt;br /&gt;
&lt;br /&gt;
; PHP file cache 1 hour ##&lt;br /&gt;
apc.ttl=3600&lt;br /&gt;
&lt;br /&gt;
; User cache 2 hour ##&lt;br /&gt;
apc.user_ttl=7200&lt;br /&gt;
&lt;br /&gt;
; Garbage collection 1 hour ##&lt;br /&gt;
apc.gc_ttl=3600&lt;br /&gt;
&lt;br /&gt;
apc.max_file_size=1M&lt;br /&gt;
&lt;br /&gt;
; Normally set to 1##&lt;br /&gt;
apc.stat=1&lt;br /&gt;
&lt;br /&gt;
; TYPO3-Empfehlung&lt;br /&gt;
apc.file_update_protection=0&lt;br /&gt;
}}&lt;br /&gt;
Just save this to &amp;lt;code&amp;gt;/etc/php5/conf.d/apc.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When at the imt, configure apc via bcfg2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lua ===&lt;br /&gt;
If you opt for the use of a lua sandbox (whiz more performant than the default standalone interpreter), you have to install it. If you can&amp;#039;t take advantage of the IMT infrastructure, you have to install and compile the lua-sandbox yourself. See [http://www.mediawiki.org/wiki/Extension:Scribunto#LuaSandbox here] for a how-to.&lt;br /&gt;
&lt;br /&gt;
You also have to add the following line to your &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt; or to &amp;lt;code&amp;gt;/etc/php5/conf.d/&amp;lt;/code&amp;gt;:&lt;br /&gt;
{{code|apache|code=&lt;br /&gt;
extension=luasandbox.so&lt;br /&gt;
}}&lt;br /&gt;
Some installations have more than one php.ini file. You have to add the line to both. For instance:&lt;br /&gt;
{{code|io|code=&lt;br /&gt;
/etc/php5/cli/php.ini&lt;br /&gt;
/etc/php5/apache2/php.ini&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
After you installed the sandbox, modify your &amp;lt;code&amp;gt;LocalSettings_extensions_project.php&amp;lt;/code&amp;gt; and add:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  $wgScribuntoDefaultEngine = &amp;#039;luasandbox&amp;#039;;&lt;br /&gt;
  $wgScribuntoEngineConf[&amp;#039;luasandbox&amp;#039;][&amp;#039;memoryLimit&amp;#039;] = 100 * 1024 * 1024;  // default is 50 * 1024 * 1024&lt;br /&gt;
  $wgScribuntoEngineConf[&amp;#039;luasandbox&amp;#039;][&amp;#039;cpuLimit&amp;#039;] = 10;    // default is 7&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ambox|type=notice|text=&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; Since Version 12 of this bundle, the module &amp;#039;&amp;#039;lua&amp;#039;&amp;#039; is configured for a sandbox by default. If you want to disable it, add {{code snippet|lang=php|code=$wgScribuntoDefaultEngine = &amp;#039;standalone&amp;#039;;}} instead.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Graphviz ===&lt;br /&gt;
If you want to use the installed GraphViz extension, you have to get two packages and install them as well. For linux systems use this line:&lt;br /&gt;
&lt;br /&gt;
{{code|bash|code=&lt;br /&gt;
sudo aptitude install graphviz graphviz-dev&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You can find more information about the configuration and installation at http://www.mediawiki.org/wiki/Extension:GraphViz#Common&lt;br /&gt;
&lt;br /&gt;
=== Disabling LDAP ===&lt;br /&gt;
If you don&amp;#039;t want to use LDAP, rename or remove &amp;#039;&amp;#039;LocalSettings_LDAPAuth.php&amp;#039;&amp;#039; in your &amp;lt;code&amp;gt;_config&amp;lt;/code&amp;gt; directory. As you can see, this will raise no warning or error (excerpt from &amp;#039;&amp;#039;LocalSettings.php&amp;#039;&amp;#039;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  # include and configure extension LDAPAuthentication&lt;br /&gt;
  @include_once(__DIR__.&amp;quot;/LocalSettings_LDAPAuth.php&amp;quot;);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Oetterer</name></author>
	</entry>
</feed>