<?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-05-01T22:53:35Z</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't accidently push your customizations into origin/master. If you don't have access to a clean master, copy an existing project and remove ''LocalSettings_host.php'' and ''LocalSettings_extensions.php''. Also take extra care not to keep settings from the original project in ''LocalSettings_project.php''&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'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'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 'images' 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's open_basedir, but not necessary below DOCUMENT_ROOT&lt;br /&gt;
    #$wgUploadDirectory = '/var/www/&amp;lt;yourwikiname&amp;gt;/_images'&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 ''LocalSettings_host.php'', 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( 'write_in_NS_META' );&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'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;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;
    # * 'user' (the group of authenticated user) already has the role contributor&lt;br /&gt;
    # * 'imt-mediawiki-maintenance' (ldap bot accounts) already has the role maintenancebot&lt;br /&gt;
    # also remember: an ldap group used here must have the ldap group attribute 'Wiki Gruppe'&lt;br /&gt;
    #$wgGroupPermissions['sample group'] =&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 'user' automatically)&lt;br /&gt;
    #$imtGrantAccessRoles = array( 'sample_group' );&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 'Wiki Gruppe'&lt;br /&gt;
    #$imtDenyAccessRoles = array( 'blacklist_group' );&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. '''Pleae note the &amp;lt;code&amp;gt;=&amp;amp;&amp;lt;/code&amp;gt; operator!''' Use it to make sure, changes to the roles later in ''LocalSettings_extensions.php'' 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['user'] =&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 ''LocalSettings_extensions.php''. 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( 'Nuke' );&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 '''LocalSettings_project_extensions.php'''. 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 ''LocalSettings.php'' and ''LocalSettings_project.php'' 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 ('''which you have to set'''):&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'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'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'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 = 'luasandbox';&lt;br /&gt;
  $wgScribuntoEngineConf['luasandbox']['memoryLimit'] = 100 * 1024 * 1024;  // default is 50 * 1024 * 1024&lt;br /&gt;
  $wgScribuntoEngineConf['luasandbox']['cpuLimit'] = 10;    // default is 7&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ambox|type=notice|text='''Note:''' Since Version 12 of this bundle, the module ''lua'' is configured for a sandbox by default. If you want to disable it, add {{code snippet|lang=php|code=$wgScribuntoDefaultEngine = 'standalone';}} 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't want to use LDAP, rename or remove ''LocalSettings_LDAPAuth.php'' 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 ''LocalSettings.php''):&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>