7 * To customize your installation, edit "LocalSettings.php". If you make
8 * changes here, they will be lost on next upgrade of MediaWiki!
10 * Note that since all these string interpolations are expanded
11 * before LocalSettings is included, if you localize something
12 * like $wgScriptPath, you must also localize everything that
15 * Documentation is in the source and on:
16 * http://www.mediawiki.org/wiki/Help:Configuration_settings
21 # This is not a valid entry point, perform no further processing unless MEDIAWIKI is defined
22 if( !defined( 'MEDIAWIKI' ) ) {
23 echo "This file is part of MediaWiki and is not a valid entry point\n";
28 * Create a site configuration object
29 * Not used for much in a default install
31 require_once( 'includes/SiteConfiguration.php' );
32 $wgConf = new SiteConfiguration
;
34 /** MediaWiki version number */
35 $wgVersion = '1.7alpha';
37 /** Name of the site. It must be changed in LocalSettings.php */
38 $wgSitename = 'MediaWiki';
40 /** Will be same as you set @see $wgSitename */
41 $wgMetaNamespace = FALSE;
44 /** URL of the server. It will be automatically built including https mode */
47 if( isset( $_SERVER['SERVER_NAME'] ) ) {
48 $wgServerName = $_SERVER['SERVER_NAME'];
49 } elseif( isset( $_SERVER['HOSTNAME'] ) ) {
50 $wgServerName = $_SERVER['HOSTNAME'];
51 } elseif( isset( $_SERVER['HTTP_HOST'] ) ) {
52 $wgServerName = $_SERVER['HTTP_HOST'];
53 } elseif( isset( $_SERVER['SERVER_ADDR'] ) ) {
54 $wgServerName = $_SERVER['SERVER_ADDR'];
56 $wgServerName = 'localhost';
59 # check if server use https:
60 $wgProto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ?
'https' : 'http';
62 $wgServer = $wgProto.'://' . $wgServerName;
63 # If the port is a non-standard one, add it to the URL
64 if( isset( $_SERVER['SERVER_PORT'] )
65 && ( ( $wgProto == 'http' && $_SERVER['SERVER_PORT'] != 80 )
66 ||
( $wgProto == 'https' && $_SERVER['SERVER_PORT'] != 443 ) ) ) {
68 $wgServer .= ":" . $_SERVER['SERVER_PORT'];
73 * The path we should point to.
74 * It might be a virtual path in case with use apache mod_rewrite for example
76 $wgScriptPath = '/wiki';
79 * Whether to support URLs like index.php/Page_title
80 * @global bool $wgUsePathInfo
82 $wgUsePathInfo = ( strpos( php_sapi_name(), 'cgi' ) === false );
86 * Script users will request to get articles
87 * ATTN: Old installations used wiki.phtml and redirect.phtml -
88 * make sure that LocalSettings.php is correctly set!
92 * @global string $wgScript
94 $wgScript = "{$wgScriptPath}/index.php";
96 * @global string $wgRedirectScript
98 $wgRedirectScript = "{$wgScriptPath}/redirect.php";
106 * style path as seen by users
107 * @global string $wgStylePath
109 $wgStylePath = "{$wgScriptPath}/skins";
111 * filesystem stylesheets directory
112 * @global string $wgStyleDirectory
114 $wgStyleDirectory = "{$IP}/skins";
115 $wgStyleSheetPath = &$wgStylePath;
116 $wgArticlePath = "{$wgScript}?title=$1";
117 $wgUploadPath = "{$wgScriptPath}/upload";
118 $wgUploadDirectory = "{$IP}/upload";
119 $wgHashedUploadDirectory = true;
120 $wgLogo = "{$wgUploadPath}/wiki.png";
121 $wgFavicon = '/favicon.ico';
122 $wgMathPath = "{$wgUploadPath}/math";
123 $wgMathDirectory = "{$wgUploadDirectory}/math";
124 $wgTmpDirectory = "{$wgUploadDirectory}/tmp";
125 $wgUploadBaseUrl = "";
130 * By default deleted files are simply discarded; to save them and
131 * make it possible to undelete images, create a directory which
132 * is writable to the web server but is not exposed to the internet.
134 * Set $wgSaveDeletedFiles to true and set up the save path in
135 * $wgFileStore['deleted']['directory'].
137 $wgSaveDeletedFiles = false;
140 * New file storage paths; currently used only for deleted files.
143 * $wgFileStore['deleted']['directory'] = '/var/wiki/private/deleted';
146 $wgFileStore = array();
147 $wgFileStore['deleted']['directory'] = null; // Don't forget to set this.
148 $wgFileStore['deleted']['url'] = null; // Private
149 $wgFileStore['deleted']['hash'] = 3; // 3-level subdirectory split
152 * Allowed title characters -- regex character class
153 * Don't change this unless you know what you're doing
155 * Problematic punctuation:
156 * []{}|# Are needed for link syntax, never enable these
157 * % Enabled by default, minor problems with path to query rewrite rules, see below
158 * + Doesn't work with path to query rewrite rules, corrupted by apache
159 * ? Enabled by default, but doesn't work with path to PATH_INFO rewrites
161 * All three of these punctuation problems can be avoided by using an alias, instead of a
162 * rewrite rule of either variety.
164 * The problem with % is that when using a path to query rewrite rule, URLs are
165 * double-unescaped: once by Apache's path conversion code, and again by PHP. So
166 * %253F, for example, becomes "?". Our code does not double-escape to compensate
167 * for this, indeed double escaping would break if the double-escaped title was
168 * passed in the query string rather than the path. This is a minor security issue
169 * because articles can be created such that they are hard to view or edit.
171 * Theoretically 0x80-0x9F of ISO 8859-1 should be disallowed, but
172 * this breaks interlanguage links
174 $wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF";
178 * The external URL protocols
180 $wgUrlProtocols = array(
186 'telnet://', // Well if we're going to support the above.. -ævar
187 'nntp://', // @bug 3808 RFC 1738
193 /** internal name of virus scanner. This servers as a key to the $wgAntivirusSetup array.
194 * Set this to NULL to disable virus scanning. If not null, every file uploaded will be scanned for viruses.
195 * @global string $wgAntivirus
199 /** Configuration for different virus scanners. This an associative array of associative arrays:
200 * it contains on setup array per known scanner type. The entry is selected by $wgAntivirus, i.e.
201 * valid values for $wgAntivirus are the keys defined in this array.
203 * The configuration array for each scanner contains the following keys: "command", "codemap", "messagepattern";
205 * "command" is the full command to call the virus scanner - %f will be replaced with the name of the
206 * file to scan. If not present, the filename will be appended to the command. Note that this must be
207 * overwritten if the scanner is not in the system path; in that case, plase set
208 * $wgAntivirusSetup[$wgAntivirus]['command'] to the desired command with full path.
210 * "codemap" is a mapping of exit code to return codes of the detectVirus function in SpecialUpload.
211 * An exit code mapped to AV_SCAN_FAILED causes the function to consider the scan to be failed. This will pass
212 * the file if $wgAntivirusRequired is not set.
213 * An exit code mapped to AV_SCAN_ABORTED causes the function to consider the file to have an usupported format,
214 * which is probably imune to virusses. This causes the file to pass.
215 * An exit code mapped to AV_NO_VIRUS will cause the file to pass, meaning no virus was found.
216 * All other codes (like AV_VIRUS_FOUND) will cause the function to report a virus.
217 * You may use "*" as a key in the array to catch all exit codes not mapped otherwise.
219 * "messagepattern" is a perl regular expression to extract the meaningful part of the scanners
220 * output. The relevant part should be matched as group one (\1).
221 * If not defined or the pattern does not match, the full message is shown to the user.
223 * @global array $wgAntivirusSetup
225 $wgAntivirusSetup= array(
229 'command' => "clamscan --no-summary ",
232 "0"=> AV_NO_VIRUS
, #no virus
233 "1"=> AV_VIRUS_FOUND
, #virus found
234 "52"=> AV_SCAN_ABORTED
, #unsupported file format (probably imune)
235 "*"=> AV_SCAN_FAILED
, #else scan failed
238 'messagepattern'=> '/.*?:(.*)/sim',
243 'command' => "f-prot ",
246 "0"=> AV_NO_VIRUS
, #no virus
247 "3"=> AV_VIRUS_FOUND
, #virus found
248 "6"=> AV_VIRUS_FOUND
, #virus found
249 "*"=> AV_SCAN_FAILED
, #else scan failed
252 'messagepattern'=> '/.*?Infection:(.*)$/m',
257 /** Determines if a failed virus scan (AV_SCAN_FAILED) will cause the file to be rejected.
258 * @global boolean $wgAntivirusRequired
260 $wgAntivirusRequired= true;
262 /** Determines if the mime type of uploaded files should be checked
263 * @global boolean $wgVerifyMimeType
265 $wgVerifyMimeType= true;
267 /** Sets the mime type definition file to use by MimeMagic.php.
268 * @global string $wgMimeTypeFile
270 #$wgMimeTypeFile= "/etc/mime.types";
271 $wgMimeTypeFile= "includes/mime.types";
272 #$wgMimeTypeFile= NULL; #use built-in defaults only.
274 /** Sets the mime type info file to use by MimeMagic.php.
275 * @global string $wgMimeInfoFile
277 $wgMimeInfoFile= "includes/mime.info";
278 #$wgMimeInfoFile= NULL; #use built-in defaults only.
280 /** Switch for loading the FileInfo extension by PECL at runtime.
281 * This should be used only if fileinfo is installed as a shared object / dynamic libary
282 * @global string $wgLoadFileinfoExtension
284 $wgLoadFileinfoExtension= false;
286 /** Sets an external mime detector program. The command must print only the mime type to standard output.
287 * the name of the file to process will be appended to the command given here.
288 * If not set or NULL, mime_content_type will be used if available.
290 $wgMimeDetectorCommand= NULL; # use internal mime_content_type function, available since php 4.3.0
291 #$wgMimeDetectorCommand= "file -bi"; #use external mime detector (Linux)
293 /** Switch for trivial mime detection. Used by thumb.php to disable all fance things,
294 * because only a few types of images are needed and file extensions can be trusted.
296 $wgTrivialMimeDetection= false;
299 * To set 'pretty' URL paths for actions other than
300 * plain page views, add to this array. For instance:
301 * 'edit' => "$wgScriptPath/edit/$1"
303 * There must be an appropriate script or rewrite rule
304 * in place to handle these URLs.
306 $wgActionPaths = array();
309 * If you operate multiple wikis, you can define a shared upload path here.
310 * Uploads to this wiki will NOT be put there - they will be put into
311 * $wgUploadDirectory.
312 * If $wgUseSharedUploads is set, the wiki will look in the shared repository if
313 * no file of the given name is found in the local repository (for [[Image:..]],
314 * [[Media:..]] links). Thumbnails will also be looked for and generated in this
317 $wgUseSharedUploads = false;
318 /** Full path on the web server where shared uploads can be found */
319 $wgSharedUploadPath = "http://commons.wikimedia.org/shared/images";
320 /** Fetch commons image description pages and display them on the local wiki? */
321 $wgFetchCommonsDescriptions = false;
322 /** Path on the file system where shared uploads can be found. */
323 $wgSharedUploadDirectory = "/var/www/wiki3/images";
324 /** DB name with metadata about shared directory. Set this to false if the uploads do not come from a wiki. */
325 $wgSharedUploadDBname = false;
326 /** Optional table prefix used in database. */
327 $wgSharedUploadDBprefix = '';
328 /** Cache shared metadata in memcached. Don't do this if the commons wiki is in a different memcached domain */
329 $wgCacheSharedUploads = true;
332 * Point the upload navigation link to an external URL
333 * Useful if you want to use a shared repository by default
334 * without disabling local uploads (use $wgEnableUploads = false for that)
335 * e.g. $wgUploadNavigationUrl = 'http://commons.wikimedia.org/wiki/Special:Upload';
337 $wgUploadNavigationUrl = false;
340 * Give a path here to use thumb.php for thumbnail generation on client request, instead of
341 * generating them on render and outputting a static URL. This is necessary if some of your
342 * apache servers don't have read/write access to the thumbnail path.
345 * $wgThumbnailScriptPath = "{$wgScriptPath}/thumb.php";
347 $wgThumbnailScriptPath = false;
348 $wgSharedThumbnailScriptPath = false;
351 * Set the following to false especially if you have a set of files that need to
352 * be accessible by all wikis, and you do not want to use the hash (path/a/aa/)
355 $wgHashedSharedUploadDirectory = true;
358 * Base URL for a repository wiki. Leave this blank if uploads are just stored
359 * in a shared directory and not meant to be accessible through a separate wiki.
360 * Otherwise the image description pages on the local wiki will link to the
361 * image description page on this wiki.
363 * Please specify the namespace, as in the example below.
365 $wgRepositoryBaseUrl="http://commons.wikimedia.org/wiki/Image:";
373 * Site admin email address
374 * Default to wikiadmin@SERVER_NAME
375 * @global string $wgEmergencyContact
377 $wgEmergencyContact = 'wikiadmin@' . $wgServerName;
380 * Password reminder email address
381 * The address we should use as sender when a user is requesting his password
382 * Default to apache@SERVER_NAME
383 * @global string $wgPasswordSender
385 $wgPasswordSender = 'MediaWiki Mail <apache@' . $wgServerName . '>';
388 * dummy address which should be accepted during mail send action
389 * It might be necessay to adapt the address or to set it equal
390 * to the $wgEmergencyContact address
392 #$wgNoReplyAddress = $wgEmergencyContact;
393 $wgNoReplyAddress = 'reply@not.possible';
396 * Set to true to enable the e-mail basic features:
397 * Password reminders, etc. If sending e-mail on your
398 * server doesn't work, you might want to disable this.
399 * @global bool $wgEnableEmail
401 $wgEnableEmail = true;
404 * Set to true to enable user-to-user e-mail.
405 * This can potentially be abused, as it's hard to track.
406 * @global bool $wgEnableUserEmail
408 $wgEnableUserEmail = true;
412 * For using a direct (authenticated) SMTP server connection.
413 * Default to false or fill an array :
415 * "host" => 'SMTP domain',
416 * "IDHost" => 'domain for MessageID',
418 * "auth" => true/false,
419 * "username" => user,
420 * "password" => password
423 * @global mixed $wgSMTP
431 /** database host name or ip address */
432 $wgDBserver = 'localhost';
433 /** name of the database */
434 $wgDBname = 'wikidb';
436 $wgDBconnection = '';
437 /** Database username */
438 $wgDBuser = 'wikiuser';
440 * "mysql" for working code and "PostgreSQL" for development/broken code
444 * Leave as null to select the default search engine for the
445 * selected database type (eg SearchMySQL4), or set to a class
446 * name to override to a custom search engine.
448 $wgSearchType = null;
449 /** Table name prefix */
452 * on some databases this allows separate
453 * logical namespace for application data
455 $wgDBschema = 'mediawiki';
458 /** Live high performance sites should disable this - some checks acquire giant mysql locks */
459 $wgCheckDBSchema = true;
463 * Shared database for multiple wikis. Presently used for storing a user table
464 * for single sign-on. The server for this database must be the same as for the
470 # Database load balancer
471 # This is a two-dimensional array, an array of server info structures
474 # dbname: Default database name
476 # password: DB password
477 # type: "mysql" or "pgsql"
478 # load: ratio of DB_SLAVE load, must be >=0, the sum of all loads must be >0
479 # groupLoads: array of load ratios, the key is the query group name. A query may belong
480 # to several groups, the most specific group defined here is used.
483 # DBO_DEFAULT -- turns on DBO_TRX only if !$wgCommandLineMode (recommended)
484 # DBO_DEBUG -- equivalent of $wgDebugDumpSql
485 # DBO_TRX -- wrap entire request in a transaction
486 # DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
487 # DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)
489 # max lag: (optional) Maximum replication lag before a slave will taken out of rotation
490 # max threads: (optional) Maximum number of running threads
492 # These and any other user-defined properties will be assigned to the mLBInfo member
493 # variable of the Database object.
495 # Leave at false to use the single-server variables above
496 $wgDBservers = false;
498 /** How long to wait for a slave to catch up to the master */
499 $wgMasterWaitTimeout = 10;
501 /** File to log MySQL errors to */
502 $wgDBerrorLog = false;
504 /** When to give an error message */
505 $wgDBClusterTimeout = 10;
509 * MySQL 3.x : used to discard words that MySQL will not return any results for
510 * shorter values configure mysql directly.
511 * MySQL 4.x : ignore it and configure mySQL
512 * See: http://dev.mysql.com/doc/mysql/en/Fulltext_Fine-tuning.html
515 /** Set to true if using InnoDB tables */
516 $wgDBtransactions = false;
517 /** Set to true for compatibility with extensions that might be checking.
518 * MySQL 3.23.x is no longer supported. */
522 * Set to true to engage MySQL 4.1/5.0 charset-related features;
523 * for now will just cause sending of 'SET NAMES=utf8' on connect.
525 * WARNING: THIS IS EXPERIMENTAL!
527 * May break if you're not using the table defs from mysql5/tables.sql.
528 * May break if you're upgrading an existing wiki if set differently.
529 * Broken symptoms likely to include incorrect behavior with page titles,
530 * usernames, comments etc containing non-ASCII characters.
531 * Might also cause failures on the object cache and other things.
533 * Even correct usage may cause failures with Unicode supplementary
534 * characters (those not in the Basic Multilingual Plane) unless MySQL
535 * has enhanced their Unicode support.
540 * Other wikis on this site, can be administered from a single developer
542 * Array numeric key => database name
544 $wgLocalDatabases = array();
547 * Object cache settings
548 * See Defines.php for types
550 $wgMainCacheType = CACHE_NONE
;
551 $wgMessageCacheType = CACHE_ANYTHING
;
552 $wgParserCacheType = CACHE_ANYTHING
;
554 $wgParserCacheExpireTime = 86400;
556 $wgSessionsInMemcached = false;
557 $wgLinkCacheMemcached = false; # Not fully tested
560 * Memcached-specific settings
561 * See docs/memcached.txt
563 $wgUseMemCached = false;
564 $wgMemCachedDebug = false; # Will be set to false in Setup.php, if the server isn't working
565 $wgMemCachedServers = array( '127.0.0.1:11000' );
566 $wgMemCachedDebug = false;
567 $wgMemCachedPersistent = false;
570 * Directory for local copy of message cache, for use in addition to memcached
572 $wgLocalMessageCache = false;
574 * Defines format of local cache
575 * true - Serialized object
576 * false - PHP source file (Warning - security risk)
578 $wgLocalMessageCacheSerialized = true;
581 * Directory for compiled constant message array databases
582 * WARNING: turning anything on will just break things, aaaaaah!!!!
584 $wgCachedMessageArrays = false;
588 /** Site language code, should be one of ./languages/Language(.*).php */
589 $wgLanguageCode = 'en';
592 * Some languages need different word forms, usually for different cases.
593 * Used in Language::convertGrammar().
595 $wgGrammarForms = array();
596 #$wgGrammarForms['en']['genitive']['car'] = 'car\'s';
598 /** Treat language links as magic connectors, not inline links */
599 $wgInterwikiMagic = true;
601 /** Hide interlanguage links from the sidebar */
602 $wgHideInterlanguageLinks = false;
605 /** We speak UTF-8 all the time now, unless some oddities happen */
606 $wgInputEncoding = 'UTF-8';
607 $wgOutputEncoding = 'UTF-8';
608 $wgEditEncoding = '';
610 # Set this to eg 'ISO-8859-1' to perform character set
611 # conversion when loading old revisions not marked with
612 # "utf-8" flag. Use this when converting wiki to UTF-8
613 # without the burdensome mass conversion of old text data.
615 # NOTE! This DOES NOT touch any fields other than old_text.
616 # Titles, comments, user names, etc still must be converted
617 # en masse in the database before continuing as a UTF-8 wiki.
618 $wgLegacyEncoding = false;
621 * If set to true, the MediaWiki 1.4 to 1.5 schema conversion will
622 * create stub reference rows in the text table instead of copying
623 * the full text of all current entries from 'cur' to 'text'.
625 * This will speed up the conversion step for large sites, but
626 * requires that the cur table be kept around for those revisions
627 * to remain viewable.
629 * maintenance/migrateCurStubs.php can be used to complete the
630 * migration in the background once the wiki is back online.
632 * This option affects the updaters *only*. Any present cur stub
633 * revisions will be readable at runtime regardless of this setting.
635 $wgLegacySchemaConversion = false;
637 $wgMimeType = 'text/html';
638 $wgJsMimeType = 'text/javascript';
639 $wgDocType = '-//W3C//DTD XHTML 1.0 Transitional//EN';
640 $wgDTD = 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd';
642 /** Enable to allow rewriting dates in page text.
643 * DOES NOT FORMAT CORRECTLY FOR MOST LANGUAGES */
644 $wgUseDynamicDates = false;
645 /** Enable dates like 'May 12' instead of '12 May', this only takes effect if
646 * the interface is set to English
648 $wgAmericanDates = false;
650 * For Hindi and Arabic use local numerals instead of Western style (0-9)
651 * numerals in interface.
653 $wgTranslateNumerals = true;
656 # Translation using MediaWiki: namespace
657 # This will increase load times by 25-60% unless memcached is installed
658 # Interface messages will be loaded from the database.
659 $wgUseDatabaseMessages = true;
660 $wgMsgCacheExpiry = 86400;
662 # Whether to enable language variant conversion.
663 $wgDisableLangConversion = false;
665 # Whether to use zhdaemon to perform Chinese text processing
666 # zhdaemon is under developement, so normally you don't want to
667 # use it unless for testing
668 $wgUseZhdaemon = false;
669 $wgZhdaemonHost="localhost";
670 $wgZhdaemonPort=2004;
672 /** Normally you can ignore this and it will be something
673 like $wgMetaNamespace . "_talk". In some languages, you
674 may want to set this manually for grammatical reasons.
675 It is currently only respected by those languages
676 where it might be relevant and where no automatic
677 grammar converter exists.
679 $wgMetaNamespaceTalk = false;
681 # Miscellaneous configuration settings
684 $wgLocalInterwiki = 'w';
685 $wgInterwikiExpiry = 10800; # Expiry time for cache of interwiki table
687 /** Interwiki caching settings.
688 $wgInterwikiCache specifies path to constant database file
689 This cdb database is generated by dumpInterwiki from maintenance
690 and has such key formats:
691 dbname:key - a simple key (e.g. enwiki:meta)
692 _sitename:key - site-scope key (e.g. wiktionary:meta)
693 __global:key - global-scope key (e.g. __global:meta)
694 __sites:dbname - site mapping (e.g. __sites:enwiki)
695 Sites mapping just specifies site name, other keys provide
696 "local url" data layout.
697 $wgInterwikiScopes specify number of domains to check for messages:
698 1 - Just wiki(db)-level
699 2 - wiki and global levels
701 $wgInterwikiFallbackSite - if unable to resolve from cache
703 $wgInterwikiCache = false;
704 $wgInterwikiScopes = 3;
705 $wgInterwikiFallbackSite = 'wiki';
708 * If local interwikis are set up which allow redirects,
709 * set this regexp to restrict URLs which will be displayed
710 * as 'redirected from' links.
712 * It might look something like this:
713 * $wgRedirectSources = '!^https?://[a-z-]+\.wikipedia\.org/!';
715 * Leave at false to avoid displaying any incoming redirect markers.
716 * This does not affect intra-wiki redirects, which don't change
719 $wgRedirectSources = false;
722 $wgShowIPinHeader = true; # For non-logged in users
723 $wgMaxNameChars = 255; # Maximum number of bytes in username
724 $wgMaxArticleSize = 2048; # Maximum article size in kilobytes
726 $wgExtraSubtitle = '';
727 $wgSiteSupportPage = ''; # A page where you users can receive donations
729 $wgReadOnlyFile = "{$wgUploadDirectory}/lock_yBgMBwiR";
732 * The debug log file should be not be publicly accessible if it is used, as it
733 * may contain private data. */
734 $wgDebugLogFile = '';
739 $wgDebugRedirects = false;
740 $wgDebugRawPage = false; # Avoid overlapping debug entries by leaving out CSS
742 $wgDebugComments = false;
744 $wgLogQueries = false;
747 * Write SQL queries to the debug log
749 $wgDebugDumpSql = false;
752 * Set to an array of log group keys to filenames.
753 * If set, wfDebugLog() output for that group will go to that file instead
754 * of the regular $wgDebugLogFile. Useful for enabling selective logging
757 $wgDebugLogGroups = array();
760 * Whether to show "we're sorry, but there has been a database error" pages.
761 * Displaying errors aids in debugging, but may display information useful
764 $wgShowSQLErrors = false;
767 * If true, some error messages will be colorized when running scripts on the
768 * command line; this can aid picking important things out when debugging.
769 * Ignored when running on Windows or when output is redirected to a file.
771 $wgColorErrors = true;
774 * disable experimental dmoz-like category browsing. Output things like:
775 * Encyclopedia > Music > Style of Music > Jazz
777 $wgUseCategoryBrowser = false;
780 * Keep parsed pages in a cache (objectcache table, turck, or memcached)
781 * to speed up output of the same page viewed by another user with the
784 * This can provide a significant speedup for medium to large pages,
785 * so you probably want to keep it on.
787 $wgEnableParserCache = true;
790 * If on, the sidebar navigation links are cached for users with the
791 * current language set. This can save a touch of load on a busy site
792 * by shaving off extra message lookups.
794 * However it is also fragile: changing the site configuration, or
795 * having a variable $wgArticlePath, can produce broken links that
796 * don't update as expected.
798 $wgEnableSidebarCache = false;
801 * Under which condition should a page in the main namespace be counted
802 * as a valid article? If $wgUseCommaCount is set to true, it will be
803 * counted if it contains at least one comma. If it is set to false
804 * (default), it will only be counted if it contains at least one [[wiki
805 * link]]. See http://meta.wikimedia.org/wiki/Help:Article_count
807 * Retroactively changing this variable will not affect
808 * the existing count (cf. maintenance/recount.sql).
810 $wgUseCommaCount = false;
815 * wgHitcounterUpdateFreq sets how often page counters should be updated, higher
816 * values are easier on the database. A value of 1 causes the counters to be
817 * updated on every hit, any higher value n cause them to update *on average*
818 * every n hits. Should be set to either 1 or something largish, eg 1000, for
819 * maximum efficiency.
821 $wgHitcounterUpdateFreq = 1;
823 # Basic user rights and block settings
824 $wgSysopUserBans = true; # Allow sysops to ban logged-in users
825 $wgSysopRangeBans = true; # Allow sysops to ban IP ranges
826 $wgAutoblockExpiry = 86400; # Number of seconds before autoblock entries expire
827 $wgBlockAllowsUTEdit = false; # Blocks allow users to edit their own user talk page
829 # Pages anonymous user may see as an array, e.g.:
830 # array ( "Main Page", "Special:Userlogin", "Wikipedia:Help");
831 # NOTE: This will only work if $wgGroupPermissions['*']['read']
832 # is false -- see below. Otherwise, ALL pages are accessible,
833 # regardless of this setting.
834 # Also note that this will only protect _pages in the wiki_.
835 # Uploaded files will remain readable. Make your upload
836 # directory name unguessable, or use .htaccess to protect it.
837 $wgWhitelistRead = false;
840 * Should editors be required to have a validated e-mail
841 * address before being allowed to edit?
843 $wgEmailConfirmToEdit=false;
846 * Permission keys given to users in each group.
847 * All users are implicitly in the '*' group including anonymous visitors;
848 * logged-in users are all implicitly in the 'user' group. These will be
849 * combined with the permissions of all groups that a given user is listed
850 * in in the user_groups table.
852 * Functionality to make pages inaccessible has not been extensively tested
853 * for security. Use at your own risk!
855 * This replaces wgWhitelistAccount and wgWhitelistEdit
857 $wgGroupPermissions = array();
859 // Implicit group for all visitors
860 $wgGroupPermissions['*' ]['createaccount'] = true;
861 $wgGroupPermissions['*' ]['read'] = true;
862 $wgGroupPermissions['*' ]['edit'] = true;
863 $wgGroupPermissions['*' ]['createpage'] = true;
864 $wgGroupPermissions['*' ]['createtalk'] = true;
866 // Implicit group for all logged-in accounts
867 $wgGroupPermissions['user' ]['move'] = true;
868 $wgGroupPermissions['user' ]['read'] = true;
869 $wgGroupPermissions['user' ]['edit'] = true;
870 $wgGroupPermissions['user' ]['createpage'] = true;
871 $wgGroupPermissions['user' ]['createtalk'] = true;
872 $wgGroupPermissions['user' ]['upload'] = true;
873 $wgGroupPermissions['user' ]['reupload'] = true;
874 $wgGroupPermissions['user' ]['reupload-shared'] = true;
875 $wgGroupPermissions['user' ]['minoredit'] = true;
877 // Implicit group for accounts that pass $wgAutoConfirmAge
878 $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true;
880 // Users with bot privilege can have their edits hidden
881 // from various log pages by default
882 $wgGroupPermissions['bot' ]['bot'] = true;
883 $wgGroupPermissions['bot' ]['autoconfirmed'] = true;
885 // Most extra permission abilities go to this group
886 $wgGroupPermissions['sysop']['block'] = true;
887 $wgGroupPermissions['sysop']['createaccount'] = true;
888 $wgGroupPermissions['sysop']['delete'] = true;
889 $wgGroupPermissions['sysop']['deletedhistory'] = true; // can view deleted history entries, but not see or restore the text
890 $wgGroupPermissions['sysop']['editinterface'] = true;
891 $wgGroupPermissions['sysop']['import'] = true;
892 $wgGroupPermissions['sysop']['importupload'] = true;
893 $wgGroupPermissions['sysop']['move'] = true;
894 $wgGroupPermissions['sysop']['patrol'] = true;
895 $wgGroupPermissions['sysop']['protect'] = true;
896 $wgGroupPermissions['sysop']['proxyunbannable'] = true;
897 $wgGroupPermissions['sysop']['rollback'] = true;
898 $wgGroupPermissions['sysop']['trackback'] = true;
899 $wgGroupPermissions['sysop']['upload'] = true;
900 $wgGroupPermissions['sysop']['reupload'] = true;
901 $wgGroupPermissions['sysop']['reupload-shared'] = true;
902 $wgGroupPermissions['sysop']['unwatchedpages'] = true;
903 $wgGroupPermissions['sysop']['autoconfirmed'] = true;
905 // Permission to change users' group assignments
906 $wgGroupPermissions['bureaucrat']['userrights'] = true;
908 // Experimental permissions, not ready for production use
909 //$wgGroupPermissions['sysop']['deleterevision'] = true;
910 //$wgGroupPermissions['bureaucrat']['hiderevision'] = true;
913 * The developer group is deprecated, but can be activated if need be
914 * to use the 'lockdb' and 'unlockdb' special pages. Those require
915 * that a lock file be defined and creatable/removable by the web
918 # $wgGroupPermissions['developer']['siteadmin'] = true;
921 * Set of available actions that can be restricted via Special:Protect
922 * You probably shouldn't change this.
923 * Translated trough restriction-* messages.
925 $wgRestrictionTypes = array( 'edit', 'move' );
928 * Set of permission keys that can be selected via Special:Protect.
929 * 'autoconfirm' allows all registerd users if $wgAutoConfirmAge is 0.
931 $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' );
935 * Number of seconds an account is required to age before
936 * it's given the implicit 'autoconfirm' group membership.
937 * This can be used to limit privileges of new accounts.
939 * Accounts created by earlier versions of the software
940 * may not have a recorded creation date, and will always
941 * be considered to pass the age test.
943 * When left at 0, all registered accounts will pass.
945 $wgAutoConfirmAge = 0;
946 //$wgAutoConfirmAge = 600; // ten minutes
947 //$wgAutoConfirmAge = 3600*24; // one day
951 # Proxy scanner settings
955 * If you enable this, every editor's IP address will be scanned for open HTTP
958 * Don't enable this. Many sysops will report "hostile TCP port scans" to your
959 * ISP and ask for your server to be shut down.
961 * You have been warned.
963 $wgBlockOpenProxies = false;
964 /** Port we want to scan for a proxy */
965 $wgProxyPorts = array( 80, 81, 1080, 3128, 6588, 8000, 8080, 8888, 65506 );
966 /** Script used to scan */
967 $wgProxyScriptPath = "$IP/proxy_check.php";
969 $wgProxyMemcExpiry = 86400;
970 /** This should always be customised in LocalSettings.php */
971 $wgSecretKey = false;
972 /** big list of banned IP addresses, in the keys not the values */
973 $wgProxyList = array();
977 /** Number of accounts each IP address may create, 0 to disable.
978 * Requires memcached */
979 $wgAccountCreationThrottle = 0;
981 # Client-side caching:
983 /** Allow client-side caching of pages */
984 $wgCachePages = true;
987 * Set this to current time to invalidate all prior cached pages. Affects both
988 * client- and server-side caching.
989 * You can get the current date on your server by using the command:
992 $wgCacheEpoch = '20030516000000';
995 # Server-side caching:
998 * This will cache static pages for non-logged-in users to reduce
999 * database traffic on public sites.
1000 * Must set $wgShowIPinHeader = false
1002 $wgUseFileCache = false;
1003 /** Directory where the cached page will be saved */
1004 $wgFileCacheDirectory = "{$wgUploadDirectory}/cache";
1007 * When using the file cache, we can store the cached HTML gzipped to save disk
1008 * space. Pages will then also be served compressed to clients that support it.
1009 * THIS IS NOT COMPATIBLE with ob_gzhandler which is now enabled if supported in
1010 * the default LocalSettings.php! If you enable this, remove that setting first.
1012 * Requires zlib support enabled in PHP.
1016 # Email notification settings
1019 /** For email notification on page changes */
1020 $wgPasswordSender = $wgEmergencyContact;
1022 # true: from page editor if s/he opted-in
1023 # false: Enotif mails appear to come from $wgEmergencyContact
1024 $wgEnotifFromEditor = false;
1026 // TODO move UPO to preferences probably ?
1027 # If set to true, users get a corresponding option in their preferences and can choose to enable or disable at their discretion
1028 # If set to false, the corresponding input form on the user preference page is suppressed
1029 # It call this to be a "user-preferences-option (UPO)"
1030 $wgEmailAuthentication = true; # UPO (if this is set to false, texts referring to authentication are suppressed)
1031 $wgEnotifWatchlist = false; # UPO
1032 $wgEnotifUserTalk = false; # UPO
1033 $wgEnotifRevealEditorAddress = false; # UPO; reply-to address may be filled with page editor's address (if user allowed this in the preferences)
1034 $wgEnotifMinorEdits = true; # UPO; false: "minor edits" on pages do not trigger notification mails.
1035 # # Attention: _every_ change on a user_talk page trigger a notification mail (if the user is not yet notified)
1038 /** Show watching users in recent changes, watchlist and page history views */
1039 $wgRCShowWatchingUsers = false; # UPO
1040 /** Show watching users in Page views */
1041 $wgPageShowWatchingUsers = false;
1043 * Show "Updated (since my last visit)" marker in RC view, watchlist and history
1044 * view for watched pages with new changes */
1045 $wgShowUpdatedMarker = true;
1047 $wgCookieExpiration = 2592000;
1049 /** Clock skew or the one-second resolution of time() can occasionally cause cache
1050 * problems when the user requests two pages within a short period of time. This
1051 * variable adds a given number of seconds to vulnerable timestamps, thereby giving
1054 $wgClockSkewFudge = 5;
1056 # Squid-related settings
1059 /** Enable/disable Squid */
1060 $wgUseSquid = false;
1062 /** If you run Squid3 with ESI support, enable this (default:false): */
1065 /** Internal server name as known to Squid, if different */
1066 # $wgInternalServer = 'http://yourinternal.tld:8000';
1067 $wgInternalServer = $wgServer;
1070 * Cache timeout for the squid, will be sent as s-maxage (without ESI) or
1071 * Surrogate-Control (with ESI). Without ESI, you should strip out s-maxage in
1072 * the Squid config. 18000 seconds = 5 hours, more cache hits with 2678400 = 31
1075 $wgSquidMaxage = 18000;
1078 * A list of proxy servers (ips if possible) to purge on changes don't specify
1079 * ports here (80 is default)
1081 # $wgSquidServers = array('127.0.0.1');
1082 $wgSquidServers = array();
1083 $wgSquidServersNoPurge = array();
1085 /** Maximum number of titles to purge in any one client operation */
1086 $wgMaxSquidPurgeTitles = 400;
1088 /** HTCP multicast purging */
1090 $wgHTCPMulticastTTL = 1;
1091 # $wgHTCPMulticastAddress = "224.0.0.85";
1096 * Set to set an explicit domain on the login cookies eg, "justthis.domain. org"
1097 * or ".any.subdomain.net"
1099 $wgCookieDomain = '';
1100 $wgCookiePath = '/';
1101 $wgCookieSecure = ($wgProto == 'https');
1102 $wgDisableCookieCheck = false;
1104 /** Whether to allow inline image pointing to other websites */
1105 $wgAllowExternalImages = false;
1107 /** If the above is false, you can specify an exception here. Image URLs
1108 * that start with this string are then rendered, while all others are not.
1109 * You can use this to set up a trusted, simple repository of images.
1112 * $wgAllowExternalImagesFrom = 'http://127.0.0.1/';
1114 $wgAllowExternalImagesFrom = '';
1116 /** Disable database-intensive features */
1117 $wgMiserMode = false;
1118 /** Disable all query pages if miser mode is on, not just some */
1119 $wgDisableQueryPages = false;
1120 /** Generate a watchlist once every hour or so */
1121 $wgUseWatchlistCache = false;
1122 /** The hour or so mentioned above */
1123 $wgWLCacheTimeout = 3600;
1124 /** Number of links to a page required before it is deemed "wanted" */
1125 $wgWantedPagesThreshold = 1;
1128 * To use inline TeX, you need to compile 'texvc' (in the 'math' subdirectory of
1129 * the MediaWiki package and have latex, dvips, gs (ghostscript), andconvert
1130 * (ImageMagick) installed and available in the PATH.
1131 * Please see math/README for more information.
1134 /** Location of the texvc binary */
1135 $wgTexvc = './math/texvc';
1138 # Profiling / debugging
1140 # You have to create a 'profiling' table in your database before using
1141 # profiling see maintenance/archives/patch-profiling.sql .
1143 /** Enable for more detailed by-function times in debug log */
1144 $wgProfiling = false;
1145 /** Only record profiling info for pages that took longer than this */
1146 $wgProfileLimit = 0.0;
1147 /** Don't put non-profiling info into log file */
1148 $wgProfileOnly = false;
1149 /** Log sums from profiling into "profiling" table in db. */
1150 $wgProfileToDatabase = false;
1151 /** Only profile every n requests when profiling is turned on */
1152 $wgProfileSampleRate = 1;
1153 /** If true, print a raw call tree instead of per-function report */
1154 $wgProfileCallTree = false;
1155 /** If not empty, specifies profiler type to load */
1156 $wgProfilerType = '';
1157 /** Should application server host be put into profiling table */
1158 $wgProfilePerHost = false;
1160 /** Settings for UDP profiler */
1161 $wgUDPProfilerHost = '127.0.0.1';
1162 $wgUDPProfilerPort = '3811';
1164 /** Detects non-matching wfProfileIn/wfProfileOut calls */
1165 $wgDebugProfiling = false;
1166 /** Output debug message on every wfProfileIn/wfProfileOut */
1167 $wgDebugFunctionEntry = 0;
1168 /** Lots of debugging output from SquidUpdate.php */
1169 $wgDebugSquid = false;
1171 $wgDisableCounters = false;
1172 $wgDisableTextSearch = false;
1173 $wgDisableSearchContext = false;
1175 * If you've disabled search semi-permanently, this also disables updates to the
1176 * table. If you ever re-enable, be sure to rebuild the search table.
1178 $wgDisableSearchUpdate = false;
1179 /** Uploads have to be specially set up to be secure */
1180 $wgEnableUploads = false;
1182 * Show EXIF data, on by default if available.
1183 * Requires PHP's EXIF extension: http://www.php.net/manual/en/ref.exif.php
1185 $wgShowEXIF = function_exists( 'exif_read_data' );
1188 * Set to true to enable the upload _link_ while local uploads are disabled.
1189 * Assumes that the special page link will be bounced to another server where
1192 $wgRemoteUploads = false;
1193 $wgDisableAnonTalk = false;
1195 * Do DELETE/INSERT for link updates instead of incremental
1197 $wgUseDumbLinkUpdate = false;
1200 * Anti-lock flags - bitfield
1202 * Preload links during link update for save
1203 * ALF_PRELOAD_EXISTENCE
1204 * Preload cur_id during replaceLinkHolders
1206 * Don't use locking reads when updating the link table. This is
1207 * necessary for wikis with a high edit rate for performance
1208 * reasons, but may cause link table inconsistency
1210 * As for ALF_LINK_LOCK, this flag is a necessity for high-traffic
1213 $wgAntiLockFlags = 0;
1216 * Path to the GNU diff3 utility. If the file doesn't exist, edit conflicts will
1217 * fall back to the old behaviour (no merging).
1219 $wgDiff3 = '/usr/bin/diff3';
1222 * We can also compress text in the old revisions table. If this is set on, old
1223 * revisions will be compressed on page save if zlib support is available. Any
1224 * compressed revisions will be decompressed on load regardless of this setting
1225 * *but will not be readable at all* if zlib support is not available.
1227 $wgCompressRevisions = false;
1230 * This is the list of preferred extensions for uploading files. Uploading files
1231 * with extensions not in this list will trigger a warning.
1233 $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' );
1235 /** Files with these extensions will never be allowed as uploads. */
1236 $wgFileBlacklist = array(
1237 # HTML may contain cookie-stealing JavaScript and web bugs
1238 'html', 'htm', 'js', 'jsb',
1239 # PHP scripts may execute arbitrary code on the server
1240 'php', 'phtml', 'php3', 'php4', 'phps',
1241 # Other types that may be interpreted by some servers
1242 'shtml', 'jhtml', 'pl', 'py', 'cgi',
1243 # May contain harmful executables for Windows victims
1244 'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' );
1246 /** Files with these mime types will never be allowed as uploads
1247 * if $wgVerifyMimeType is enabled.
1249 $wgMimeTypeBlacklist= array(
1250 # HTML may contain cookie-stealing JavaScript and web bugs
1251 'text/html', 'text/javascript', 'text/x-javascript', 'application/x-shellscript',
1252 # PHP scripts may execute arbitrary code on the server
1253 'application/x-php', 'text/x-php',
1254 # Other types that may be interpreted by some servers
1255 'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh',
1256 # Windows metafile, client-side vulnerability on some systems
1257 'application/x-msmetafile'
1260 /** This is a flag to determine whether or not to check file extensions on upload. */
1261 $wgCheckFileExtensions = true;
1264 * If this is turned off, users may override the warning for files not covered
1265 * by $wgFileExtensions.
1267 $wgStrictFileExtensions = true;
1269 /** Warn if uploaded files are larger than this */
1270 $wgUploadSizeWarning = 150 * 1024;
1272 /** For compatibility with old installations set to false */
1273 $wgPasswordSalt = true;
1275 /** Which namespaces should support subpages?
1276 * See Language.php for a list of namespaces.
1278 $wgNamespacesWithSubpages = array(
1281 NS_USER_TALK
=> true,
1282 NS_PROJECT_TALK
=> true,
1283 NS_IMAGE_TALK
=> true,
1284 NS_MEDIAWIKI_TALK
=> true,
1285 NS_TEMPLATE_TALK
=> true,
1286 NS_HELP_TALK
=> true,
1287 NS_CATEGORY_TALK
=> true
1290 $wgNamespacesToBeSearchedDefault = array(
1294 /** If set, a bold ugly notice will show up at the top of every page. */
1302 /** dynamic server side image resizing ("Thumbnails") */
1303 $wgUseImageResize = false;
1306 * Resizing can be done using PHP's internal image libraries or using
1307 * ImageMagick or another third-party converter, e.g. GraphicMagick.
1308 * These support more file formats than PHP, which only supports PNG,
1309 * GIF, JPG, XBM and WBMP.
1311 * Use Image Magick instead of PHP builtin functions.
1313 $wgUseImageMagick = false;
1314 /** The convert command shipped with ImageMagick */
1315 $wgImageMagickConvertCommand = '/usr/bin/convert';
1318 * Use another resizing converter, e.g. GraphicMagick
1319 * %s will be replaced with the source path, %d with the destination
1320 * %w and %h will be replaced with the width and height
1322 * An example is provided for GraphicMagick
1323 * Leave as false to skip this
1325 #$wgCustomConvertCommand = "gm convert %s -resize %wx%h %d"
1326 $wgCustomConvertCommand = false;
1328 # Scalable Vector Graphics (SVG) may be uploaded as images.
1329 # Since SVG support is not yet standard in browsers, it is
1330 # necessary to rasterize SVGs to PNG as a fallback format.
1332 # An external program is required to perform this conversion:
1333 $wgSVGConverters = array(
1334 'ImageMagick' => '$path/convert -background white -geometry $width $input $output',
1335 'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
1336 'inkscape' => '$path/inkscape -z -w $width -f $input -e $output',
1337 'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input',
1338 'rsvg' => '$path/rsvg -w$width -h$height $input $output',
1340 /** Pick one of the above */
1341 $wgSVGConverter = 'ImageMagick';
1342 /** If not in the executable PATH, specify */
1343 $wgSVGConverterPath = '';
1344 /** Don't scale a SVG larger than this */
1345 $wgSVGMaxSize = 1024;
1347 * Don't thumbnail an image if it will use too much working memory
1348 * Default is 50 MB if decompressed to RGBA form, which corresponds to
1349 * 12.5 million pixels or 3500x3500
1351 $wgMaxImageArea = 1.25e7
;
1353 * If rendered thumbnail files are older than this timestamp, they
1354 * will be rerendered on demand as if the file didn't already exist.
1355 * Update if there is some need to force thumbs and SVG rasterizations
1356 * to rerender, such as fixes to rendering bugs.
1358 $wgThumbnailEpoch = '20030516000000';
1361 * If set, inline scaled images will still produce <img> tags ready for
1362 * output instead of showing an error message.
1364 * This may be useful if errors are transitory, especially if the site
1365 * is configured to automatically render thumbnails on request.
1367 * On the other hand, it may obscure error conditions from debugging.
1368 * Enable the debug log or the 'thumbnail' log group to make sure errors
1369 * are logged to a file for review.
1371 $wgIgnoreImageErrors = false;
1374 /** Set $wgCommandLineMode if it's not set already, to avoid notices */
1375 if( !isset( $wgCommandLineMode ) ) {
1376 $wgCommandLineMode = false;
1381 # Recent changes settings
1384 /** Log IP addresses in the recentchanges table */
1385 $wgPutIPinRC = true;
1388 * Recentchanges items are periodically purged; entries older than this many
1390 * For one week : 7 * 24 * 3600
1392 $wgRCMaxAge = 7 * 24 * 3600;
1395 # Send RC updates via UDP
1396 $wgRC2UDPAddress = false;
1397 $wgRC2UDPPort = false;
1398 $wgRC2UDPPrefix = '';
1401 # Copyright and credits settings
1404 /** RDF metadata toggles */
1405 $wgEnableDublinCoreRdf = false;
1406 $wgEnableCreativeCommonsRdf = false;
1408 /** Override for copyright metadata.
1409 * TODO: these options need documentation
1411 $wgRightsPage = NULL;
1412 $wgRightsUrl = NULL;
1413 $wgRightsText = NULL;
1414 $wgRightsIcon = NULL;
1416 /** Set this to some HTML to override the rights icon with an arbitrary logo */
1417 $wgCopyrightIcon = NULL;
1419 /** Set this to true if you want detailed copyright information forms on Upload. */
1420 $wgUseCopyrightUpload = false;
1422 /** Set this to false if you want to disable checking that detailed copyright
1423 * information values are not empty. */
1424 $wgCheckCopyrightUpload = true;
1427 * Set this to the number of authors that you want to be credited below an
1428 * article text. Set it to zero to hide the attribution block, and a negative
1429 * number (like -1) to show all authors. Note that this will require 2-3 extra
1430 * database hits, which can have a not insignificant impact on performance for
1435 /** If there are more than $wgMaxCredits authors, show $wgMaxCredits of them.
1436 * Otherwise, link to a separate credits page. */
1437 $wgShowCreditsIfMax = true;
1442 * Set this to false to avoid forcing the first letter of links to capitals.
1443 * WARNING: may break links! This makes links COMPLETELY case-sensitive. Links
1444 * appearing with a capital at the beginning of a sentence will *not* go to the
1445 * same place as links in the middle of a sentence using a lowercase initial.
1447 $wgCapitalLinks = true;
1450 * List of interwiki prefixes for wikis we'll accept as sources for
1451 * Special:Import (for sysops). Since complete page history can be imported,
1452 * these should be 'trusted'.
1454 * If a user has the 'import' permission but not the 'importupload' permission,
1455 * they will only be able to run imports through this transwiki interface.
1457 $wgImportSources = array();
1460 * If set to false, disables the full-history option on Special:Export.
1461 * This is currently poorly optimized for long edit histories, so is
1462 * disabled on Wikimedia's sites.
1464 $wgExportAllowHistory = true;
1465 $wgExportAllowListContributors = false ;
1468 /** Text matching this regular expression will be recognised as spam
1469 * See http://en.wikipedia.org/wiki/Regular_expression */
1470 $wgSpamRegex = false;
1471 /** Similarly if this function returns true */
1472 $wgFilterCallback = false;
1474 /** Go button goes straight to the edit screen if the article doesn't exist. */
1475 $wgGoToEdit = false;
1477 /** Allow limited user-specified HTML in wiki pages?
1478 * It will be run through a whitelist for security. Set this to false if you
1479 * want wiki pages to consist only of wiki markup. Note that replacements do not
1480 * yet exist for all HTML constructs.*/
1483 /** Allow raw, unchecked HTML in <html>...</html> sections.
1484 * THIS IS VERY DANGEROUS on a publically editable site, so USE wgGroupPermissions
1485 * TO RESTRICT EDITING to only those that you trust
1490 * $wgUseTidy: use tidy to make sure HTML output is sane.
1491 * This should only be enabled if $wgUserHtml is true.
1492 * tidy is a free tool that fixes broken HTML.
1493 * See http://www.w3.org/People/Raggett/tidy/
1494 * $wgTidyBin should be set to the path of the binary and
1495 * $wgTidyConf to the path of the configuration file.
1496 * $wgTidyOpts can include any number of parameters.
1498 * $wgTidyInternal controls the use of the PECL extension to use an in-
1499 * process tidy library instead of spawning a separate program.
1500 * Normally you shouldn't need to override the setting except for
1501 * debugging. To install, use 'pear install tidy' and add a line
1502 * 'extension=tidy.so' to php.ini.
1505 $wgAlwaysUseTidy = false;
1506 $wgTidyBin = 'tidy';
1507 $wgTidyConf = $IP.'/extensions/tidy/tidy.conf';
1509 $wgTidyInternal = function_exists( 'tidy_load_config' );
1511 /** See list of skins and their symbolic names in languages/Language.php */
1512 $wgDefaultSkin = 'monobook';
1515 * Settings added to this array will override the language globals for the user
1516 * preferences used by anonymous visitors and newly created accounts. (See names
1517 * and sample values in languages/Language.php)
1518 * For instance, to disable section editing links:
1519 * $wgDefaultUserOptions ['editsection'] = 0;
1522 $wgDefaultUserOptions = array();
1524 /** Whether or not to allow and use real name fields. Defaults to true. */
1525 $wgAllowRealName = true;
1527 /** Use XML parser? */
1528 $wgUseXMLparser = false ;
1531 $wgSkinExtensionFunctions = array();
1532 $wgExtensionFunctions = array();
1534 * An array of extension types and inside that their names, versions, authors
1535 * and urls, note that the version and url key can be omitted.
1538 * $wgExtensionCredits[$type][] = array(
1539 * 'name' => 'Example extension',
1541 * 'author' => 'Foo Barstein',
1542 * 'url' => 'http://wwww.example.com/Example%20Extension/',
1546 * Where $type is 'specialpage', 'parserhook', or 'other'.
1548 $wgExtensionCredits = array();
1551 * Allow user Javascript page?
1552 * This enables a lot of neat customizations, but may
1553 * increase security risk to users and server load.
1555 $wgAllowUserJs = false;
1558 * Allow user Cascading Style Sheets (CSS)?
1559 * This enables a lot of neat customizations, but may
1560 * increase security risk to users and server load.
1562 $wgAllowUserCss = false;
1564 /** Use the site's Javascript page? */
1565 $wgUseSiteJs = true;
1567 /** Use the site's Cascading Style Sheets (CSS)? */
1568 $wgUseSiteCss = true;
1570 /** Filter for Special:Randompage. Part of a WHERE clause */
1571 $wgExtraRandompageSQL = false;
1573 /** Allow the "info" action, very inefficient at the moment */
1574 $wgAllowPageInfo = false;
1576 /** Maximum indent level of toc. */
1577 $wgMaxTocLevel = 999;
1579 /** Name of the external diff engine to use */
1580 $wgExternalDiffEngine = false;
1582 /** Use RC Patrolling to check for vandalism */
1583 $wgUseRCPatrol = true;
1585 /** Set maximum number of results to return in syndication feeds (RSS, Atom) for
1586 * eg Recentchanges, Newpages. */
1589 /** _Minimum_ timeout for cached Recentchanges feed, in seconds.
1590 * A cached version will continue to be served out even if changes
1591 * are made, until this many seconds runs out since the last render.
1593 * If set to 0, feed caching is disabled. Use this for debugging only;
1594 * feed generation can be pretty slow with diffs.
1596 $wgFeedCacheTimeout = 60;
1598 /** When generating Recentchanges RSS/Atom feed, diffs will not be generated for
1599 * pages larger than this size. */
1600 $wgFeedDiffCutoff = 32768;
1604 * Additional namespaces. If the namespaces defined in Language.php and
1605 * Namespace.php are insufficient, you can create new ones here, for example,
1606 * to import Help files in other languages.
1607 * PLEASE NOTE: Once you delete a namespace, the pages in that namespace will
1608 * no longer be accessible. If you rename it, then you can access them through
1609 * the new namespace name.
1611 * Custom namespaces should start at 100 to avoid conflicting with standard
1612 * namespaces, and should always follow the even/odd main/talk pattern.
1614 #$wgExtraNamespaces =
1615 # array(100 => "Hilfe",
1616 # 101 => "Hilfe_Diskussion",
1618 # 103 => "Discussion_Aide"
1620 $wgExtraNamespaces = NULL;
1623 * Limit images on image description pages to a user-selectable limit. In order
1624 * to reduce disk usage, limits can only be selected from a list. This is the
1625 * list of settings the user can choose from:
1627 $wgImageLimits = array (
1633 array(10000,10000) );
1636 * Adjust thumbnails on image pages according to a user setting. In order to
1637 * reduce disk usage, the values can only be selected from a list. This is the
1638 * list of settings the user can choose from:
1640 $wgThumbLimits = array(
1650 * On category pages, show thumbnail gallery for images belonging to that
1651 * category instead of listing them as articles.
1653 $wgCategoryMagicGallery = true;
1656 * Paging limit for categories
1658 $wgCategoryPagingLimit = 200;
1661 * Browser Blacklist for unicode non compliant browsers
1662 * Contains a list of regexps : "/regexp/" matching problematic browsers
1664 $wgBrowserBlackList = array(
1666 * Netscape 2-4 detection
1667 * The minor version may contain strings such as "Gold" or "SGoldC-SGI"
1668 * Lots of non-netscape user agents have "compatible", so it's useful to check for that
1669 * with a negative assertion. The [UIN] identifier specifies the level of security
1670 * in a Netscape/Mozilla browser, checking for it rules out a number of fakers.
1671 * The language string is unreliable, it is missing on NS4 Mac.
1673 * Reference: http://www.psychedelix.com/agents/index.shtml
1675 '/^Mozilla\/2\.[^ ]+ .*?\((?!compatible).*; [UIN]/',
1676 '/^Mozilla\/3\.[^ ]+ .*?\((?!compatible).*; [UIN]/',
1677 '/^Mozilla\/4\.[^ ]+ .*?\((?!compatible).*; [UIN]/',
1680 * MSIE on Mac OS 9 is teh sux0r, converts þ to <thorn>, ð to <eth>, Þ to <THORN> and Ð to <ETH>
1683 * - Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC)
1684 * - Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC)
1685 * - Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
1688 * @link http://en.wikipedia.org/w/index.php?title=User%3A%C6var_Arnfj%F6r%F0_Bjarmason%2Ftestme&diff=12356041&oldid=12355864
1689 * @link http://en.wikipedia.org/wiki/Template%3AOS9
1691 '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/'
1695 * Fake out the timezone that the server thinks it's in. This will be used for
1696 * date display and not for what's stored in the DB. Leave to null to retain
1697 * your server's OS-based timezone value. This is the same as the timezone.
1699 * This variable is currently used ONLY for signature formatting, not for
1702 # $wgLocaltimezone = 'GMT';
1703 # $wgLocaltimezone = 'PST8PDT';
1704 # $wgLocaltimezone = 'Europe/Sweden';
1705 # $wgLocaltimezone = 'CET';
1706 $wgLocaltimezone = null;
1709 * Set an offset from UTC in minutes to use for the default timezone setting
1710 * for anonymous users and new user accounts.
1712 * This setting is used for most date/time displays in the software, and is
1713 * overrideable in user preferences. It is *not* used for signature timestamps.
1715 * You can set it to match the configured server timezone like this:
1716 * $wgLocalTZoffset = date("Z") / 60;
1718 * If your server is not configured for the timezone you want, you can set
1719 * this in conjunction with the signature timezone and override the TZ
1720 * environment variable like so:
1721 * $wgLocaltimezone="Europe/Berlin";
1722 * putenv("TZ=$wgLocaltimezone");
1723 * $wgLocalTZoffset = date("Z") / 60;
1725 * Leave at NULL to show times in universal time (UTC/GMT).
1727 $wgLocalTZoffset = null;
1731 * When translating messages with wfMsg(), it is not always clear what should be
1732 * considered UI messages and what shoud be content messages.
1734 * For example, for regular wikipedia site like en, there should be only one
1735 * 'mainpage', therefore when getting the link of 'mainpage', we should treate
1736 * it as content of the site and call wfMsgForContent(), while for rendering the
1737 * text of the link, we call wfMsg(). The code in default behaves this way.
1738 * However, sites like common do offer different versions of 'mainpage' and the
1739 * like for different languages. This array provides a way to override the
1740 * default behavior. For example, to allow language specific mainpage and
1741 * community portal, set
1743 * $wgForceUIMsgAsContentMsg = array( 'mainpage', 'portal-url' );
1745 $wgForceUIMsgAsContentMsg = array();
1749 * Authentication plugin.
1754 * Global list of hooks.
1755 * Add a hook by doing:
1756 * $wgHooks['event_name'][] = $function;
1758 * $wgHooks['event_name'][] = array($function, $data);
1760 * $wgHooks['event_name'][] = array($object, 'method');
1765 * The logging system has two levels: an event type, which describes the
1766 * general category and can be viewed as a named subset of all logs; and
1767 * an action, which is a specific kind of event that can exist in that
1770 $wgLogTypes = array( '', 'block', 'protect', 'rights', 'delete', 'upload', 'move' );
1773 * Lists the message key string for each log type. The localized messages
1774 * will be listed in the user interface.
1776 * Extensions with custom log types may add to this array.
1778 $wgLogNames = array(
1780 'block' => 'blocklogpage',
1781 'protect' => 'protectlogpage',
1782 'rights' => 'rightslog',
1783 'delete' => 'dellogpage',
1784 'upload' => 'uploadlogpage',
1785 'move' => 'movelogpage' );
1788 * Lists the message key string for descriptive text to be shown at the
1789 * top of each log type.
1791 * Extensions with custom log types may add to this array.
1793 $wgLogHeaders = array(
1794 '' => 'alllogstext',
1795 'block' => 'blocklogtext',
1796 'protect' => 'protectlogtext',
1797 'rights' => 'rightslogtext',
1798 'delete' => 'dellogpagetext',
1799 'upload' => 'uploadlogpagetext',
1800 'move' => 'movelogpagetext' );
1803 * Lists the message key string for formatting individual events of each
1804 * type and action when listed in the logs.
1806 * Extensions with custom log types may add to this array.
1808 $wgLogActions = array(
1809 'block/block' => 'blocklogentry',
1810 'block/unblock' => 'unblocklogentry',
1811 'protect/protect' => 'protectedarticle',
1812 'protect/unprotect' => 'unprotectedarticle',
1814 // TODO: This whole section should be moved to extensions/Makesysop/SpecialMakesysop.php
1815 'rights/rights' => 'rightslogentry',
1816 'rights/addgroup' => 'addgrouplogentry',
1817 'rights/rngroup' => 'renamegrouplogentry',
1818 'rights/chgroup' => 'changegrouplogentry',
1820 'delete/delete' => 'deletedarticle',
1821 'delete/restore' => 'undeletedarticle',
1822 'delete/revision' => 'revdelete-logentry',
1823 'upload/upload' => 'uploadedimage',
1824 'upload/revert' => 'uploadedimage',
1825 'move/move' => '1movedto2',
1826 'move/move_redir' => '1movedto2_redir' );
1829 * Experimental preview feature to fetch rendered text
1830 * over an XMLHttpRequest from JavaScript instead of
1831 * forcing a submit and reload of the whole page.
1832 * Leave disabled unless you're testing it.
1834 $wgLivePreview = false;
1837 * Disable the internal MySQL-based search, to allow it to be
1838 * implemented by an extension instead.
1840 $wgDisableInternalSearch = false;
1843 * Set this to a URL to forward search requests to some external location.
1844 * If the URL includes '$1', this will be replaced with the URL-encoded
1847 * For example, to forward to Google you'd have something like:
1848 * $wgSearchForwardUrl = 'http://www.google.com/search?q=$1' .
1849 * '&domains=http://example.com' .
1850 * '&sitesearch=http://example.com' .
1851 * '&ie=utf-8&oe=utf-8';
1853 $wgSearchForwardUrl = null;
1856 * If true, external URL links in wiki text will be given the
1857 * rel="nofollow" attribute as a hint to search engines that
1858 * they should not be followed for ranking purposes as they
1859 * are user-supplied and thus subject to spamming.
1861 $wgNoFollowLinks = true;
1864 * Namespaces in which $wgNoFollowLinks doesn't apply.
1865 * See Language.php for a list of namespaces.
1867 $wgNoFollowNsExceptions = array();
1870 * Robot policies for namespaces
1871 * e.g. $wgNamespaceRobotPolicies = array( NS_TALK => 'noindex' );
1873 $wgNamespaceRobotPolicies = array();
1876 * Specifies the minimal length of a user password. If set to
1877 * 0, empty passwords are allowed.
1879 $wgMinimalPasswordLength = 0;
1882 * Activate external editor interface for files and pages
1883 * See http://meta.wikimedia.org/wiki/Help:External_editors
1885 $wgUseExternalEditor = true;
1887 /** Whether or not to sort special pages in Special:Specialpages */
1889 $wgSortSpecialPages = true;
1892 * Specify the name of a skin that should not be presented in the
1893 * list of available skins.
1894 * Use for blacklisting a skin which you do not want to remove
1895 * from the .../skins/ directory
1898 $wgSkipSkins = array(); # More of the same
1901 * Array of disabled article actions, e.g. view, edit, dublincore, delete, etc.
1903 $wgDisabledActions = array();
1906 * Disable redirects to special pages and interwiki redirects, which use a 302 and have no "redirected from" link
1908 $wgDisableHardRedirects = false;
1911 * Use http.dnsbl.sorbs.net to check for open proxies
1913 $wgEnableSorbs = false;
1916 * Proxy whitelist, list of addresses that are assumed to be non-proxy despite what the other
1919 $wgProxyWhitelist = array();
1922 * Simple rate limiter options to brake edit floods.
1923 * Maximum number actions allowed in the given number of seconds;
1924 * after that the violating client receives HTTP 500 error pages
1925 * until the period elapses.
1927 * array( 4, 60 ) for a maximum of 4 hits in 60 seconds.
1929 * This option set is experimental and likely to change.
1930 * Requires memcached.
1932 $wgRateLimits = array(
1934 'anon' => null, // for any and all anonymous edits (aggregate)
1935 'user' => null, // for each logged-in user
1936 'newbie' => null, // for each recent account; overrides 'user'
1937 'ip' => null, // for each anon and recent account
1938 'subnet' => null, // ... with final octet removed
1946 'mailpassword' => array(
1952 * Set to a filename to log rate limiter hits.
1954 $wgRateLimitLog = null;
1957 * Array of groups which should never trigger the rate limiter
1959 $wgRateLimitsExcludedGroups = array( 'sysop', 'bureaucrat' );
1962 * On Special:Unusedimages, consider images "used", if they are put
1963 * into a category. Default (false) is not to count those as used.
1965 $wgCountCategorizedImagesAsUsed = false;
1968 * External stores allow including content
1969 * from non database sources following URL links
1971 * Short names of ExternalStore classes may be specified in an array here:
1972 * $wgExternalStores = array("http","file","custom")...
1974 * CAUTION: Access to database might lead to code execution
1976 $wgExternalStores = false;
1979 * An array of external mysql servers, e.g.
1980 * $wgExternalServers = array( 'cluster1' => array( 'srv28', 'srv29', 'srv30' ) );
1982 $wgExternalServers = array();
1985 * The place to put new revisions, false to put them in the local text table.
1986 * Part of a URL, e.g. DB://cluster1
1988 * Can be an array instead of a single string, to enable data distribution. Keys
1989 * must be consecutive integers, starting at zero. Example:
1991 * $wgDefaultExternalStore = array( 'DB://cluster1', 'DB://cluster2' );
1994 $wgDefaultExternalStore = false;
1997 * list of trusted media-types and mime types.
1998 * Use the MEDIATYPE_xxx constants to represent media types.
1999 * This list is used by Image::isSafeFile
2001 * Types not listed here will have a warning about unsafe content
2002 * displayed on the images description page. It would also be possible
2003 * to use this for further restrictions, like disabling direct
2004 * [[media:...]] links for non-trusted formats.
2006 $wgTrustedMediaFormats= array(
2007 MEDIATYPE_BITMAP
, //all bitmap formats
2008 MEDIATYPE_AUDIO
, //all audio formats
2009 MEDIATYPE_VIDEO
, //all plain video formats
2010 "image/svg", //svg (only needed if inline rendering of svg is not supported)
2011 "application/pdf", //PDF files
2012 #"application/x-shockwafe-flash", //flash/shockwave movie
2016 * Allow special page inclusions such as {{Special:Allpages}}
2018 $wgAllowSpecialInclusion = true;
2021 * Timeout for HTTP requests done via CURL
2026 * Proxy to use for CURL requests.
2028 $wgHTTPProxy = false;
2031 * Enable interwiki transcluding. Only when iw_trans=1.
2033 $wgEnableScaryTranscluding = false;
2035 * Expiry time for interwiki transclusion
2037 $wgTranscludeCacheExpiry = 3600;
2040 * Support blog-style "trackbacks" for articles. See
2041 * http://www.sixapart.com/pronet/docs/trackback_spec for details.
2043 $wgUseTrackbacks = false;
2046 * Enable filtering of categories in Recentchanges
2048 $wgAllowCategorizedRecentChanges = false ;
2051 * Number of jobs to perform per request. May be less than one in which case
2052 * jobs are performed probabalistically. If this is zero, jobs will not be done
2053 * during ordinary apache requests. In this case, maintenance/doJobs.php should
2054 * be run periodically.
2059 * Log file for job execution
2061 $wgJobLogFile = false;
2064 * Enable use of AJAX features, currently auto suggestion for the search bar
2069 * List of Ajax-callable functions
2071 $wgAjaxExportList = array( 'wfSajaxSearch' );
2074 * Allow DISPLAYTITLE to change title display
2076 $wgAllowDisplayTitle = false ;
2079 * Array of usernames which may not be registered or logged in from
2080 * Maintenance scripts can still use these
2082 $wgReservedUsernames = array( 'MediaWiki default', 'Conversion script' );
2085 * MediaWiki will reject HTMLesque tags in uploaded files due to idiotic browsers which can't
2086 * perform basic stuff like MIME detection and which are vulnerable to further idiots uploading
2087 * crap files as images. When this directive is on, <title> will be allowed in files with
2088 * an "image/svg" MIME type. You should leave this disabled if your web server is misconfigured
2089 * and doesn't send appropriate MIME types for SVG images.
2091 $wgAllowTitlesInSVG = false;
2094 * Array of namespaces which can be deemed to contain valid "content", as far
2095 * as the site statistics are concerned. Useful if additional namespaces also
2096 * contain "content" which should be considered when generating a count of the
2097 * number of articles in the wiki.
2099 $wgContentNamespaces = array( NS_MAIN
);