LocalSetup.php Sicherung 20250805-16:54
Erscheinungsbild
Vor neuer Struktur im Aufbau
<?php
# This file was automatically generated by the MediaWiki 1.43.0
# installer. If you make manual changes, please keep track in case you
# need to recreate them later.
#
# See includes/MainConfigSchema.php for all configurable settings
# and their default values, but don't forget to make changes in _this_
# file, not there.
#
# Further documentation for configuration settings may be found at:
# https://www.mediawiki.org/wiki/Manual:Configuration_settings
# Protect against web entry
if ( !defined( 'MEDIAWIKI' ) ) {
exit;
}
## Uncomment this to disable output compression // "true" Apache übernimmt Kompression
$wgDisableOutputCompression = true;
$wgSitename = "AufEinWort";
$wgMetaNamespace = "AufEinWort";
$wgNamespaceAliases['Wikipedia'] = NS_PROJECT; // Setzt "Wikipedia:" als Alias für den Projekt-Namensraum
$wgNamespaceAliases['Wikipedia Diskussion'] = NS_PROJECT_TALK;
## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/mediawiki";
# $wgArticlePath = "/wiki/$1";
$wgArticlePath = "/$1";
$wgUsePathInfo = true; // Aktiviert die Nutzung von Short-URLs
## The protocol and server name to use in fully-qualified URLs
$wgServer = "//wiki.aewi.de";
$wgCanonicalServer = "https://wiki.aewi.de"; // Use HTTPS for links.
$wgFavicon = "/aewi/favicon.png";
$wgAppleTouchIcon = "/aewi/aewiicon.png";
## The URL path to static resources (images, scripts, etc.)
$wgResourceBasePath = $wgScriptPath;
## pandoc für den Export (PDF, DOCX, HTML, Markdown)
$wgPandocPath = "/opt/homebrew/bin/pandoc";
## The URL paths to the logo. Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogos = [
'1x' => "/aewi/aewilogo.png",
'icon' => "/aewi/aewiicon.png",
];
# Folgendes beeinflußt Verhalten von 'TextExtracts', 'PageImages','Popups'
$wgPopupsHideOptInOnPreferencesPage = true;
$wgPopupsReferencePreviewsBetaFeature = false;
$wgCapitalLinks = false;
$wgCookiePrefix = "aewi"; // Eindeutiger Präfix für alle Cookies
$wgCookieSecure = true;
$wgCookieSameSite = "Lax";
## UPO means: this is also a user preference option
$wgEnableEmail = true;
$wgEnableUserEmail = true; # Ermöglicht das Versenden von E-Mails zwischen Benutzern
$wgEmergencyContact = "klaus.feldmann@online.de"; # E-Mail-Adresse für Notfallkontakte
$wgPasswordSender = "klaus.feldmann@online.de"; # Absenderadresse für automatisch gesendete E-Mails
$wgEnotifUserTalk = true; # E-Mail-Benachrichtigung für Benutzer-Diskussionsseiten
$wgEnotifWatchlist = true; # E-Mail-Benachrichtigung für beobachtete Seiten
$wgEmailAuthentication = true; # Benutzer müssen ihre E-Mail bestätigen
# Falls du ein SMTP-Relay nutzen möchtest:
$wgSMTP = [
'host' => "smtp.1und1.de", # Dein SMTP-Server
'IDHost' => "online.de", # Deine Domain
'port' => 587, # SMTP-Port (465 für SSL, 587 für TLS)
'auth' => true, # Authentifizierung aktivieren
'username' => "klaus.feldmann@online.de", # Dein SMTP-Benutzername
'password' => "44%%55Einsund1", # Dein SMTP-Passwort
'secure' => "tls" # "tls" oder "ssl", je nach Server
];
## Database settings
$wgDBtype = "mysql";
# $wgDBserver = "127.0.0.1"; # or localhost
$wgDBname = "mediawiki";
$wgDBuser = "root";
$wgDBpassword = "44%%55Aufeinwort";
# with MediaWiki developers to help guide future development efforts.
$wgPingback = false;
# MySQL specific settings
$wgDBprefix = "wiki_";
$wgDBssl = false;
# MySQL table options to use during installation or update
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=utf8mb4";
# Shared database table
# This has no effect unless $wgSharedDB is also set.
$wgSharedTables[] = "actor";
## Shared memory settings
# $wgMainCacheType = CACHE_NONE;
$wgMainCacheType = CACHE_ACCEL;
$wgCacheDirectory = "$IP/cache";
$wgMemCachedServers = [];
# Object Caching mit APCu aktivieren:
$wgParserCacheType = CACHE_ACCEL;
$wgMessageCacheType = CACHE_ACCEL;
$wgUseGzip = true;
## To enable image uploads, make sure the 'images' directory is writable, then set this to true:
# $wgUploadPath = "/mediawiki/images"; // URL-Pfad
# $wgUploadDirectory = "$IP/images"; // Physischer Pfad
# $wgTmpDirectory = "$IP/images/temp"; // Temporärer Pfad
$wgEnableUploads = true;
$wgMaxUploadSize = 200000000;
$wgUseImageMagick = true;
# $wgImageMagickConvertCommand = "/usr/local/bin/convert";
$wgImageMagickConvertCommand = "/opt/homebrew/bin/convert";
# InstantCommons allows wiki to use images from https://commons.wikimedia.org
$wgUseInstantCommons = true;
# Periodically send a pingback to https://www.mediawiki.org/ with basic data
# about this MediaWiki instance. The Wikimedia Foundation shares this data
# with MediaWiki developers to help guide future development efforts.
# $wgPingback = true;
# Site language code, should be one of the list in ./includes/languages/data/Names.php
$wgLanguageCode = "de";
# Time zone
$wgLocaltimezone = "UTC";
## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publicly accessible from the web.
$wgCacheDirectory = "$IP/cache";
$wgSecretKey = "e84e88c618bf5c6d7c3afe0d7d77abbbca708d20b42355eac528421f224da9ae";
# Changing this will log out all existing sessions.
$wgAuthenticationTokenVersion = "1";
# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place
$wgUpgradeKey = "f49fde2861743285";
## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = "";
# Path to the GNU diff3 utility. Used for conflict resolution.
$wgDiff3 = "/opt/homebrew/bin/diff3";
# The following permissions were set based on your choice in the installer
$wgGroupPermissions['*']['read'] = false; // Verhindert den Zugriff auf Inhalte für Gäste
$wgGroupPermissions['*']['edit'] = false; // Verhindert Bearbeitungen für Gäste
$wgGroupPermissions['user']['read'] = true; // Erlaubt angemeldeten Benutzern den Zugriff
$wgGroupPermissions['user']['edit'] = true; // Erlaubt angemeldeten Benutzern Bearbeitungen
$wgGroupPermissions['user']['upload'] = true;
$wgGroupPermissions['user']['reupload'] = true;
$wgWhitelistRead = ['Hauptseite', 'Spezial:Anmelden', 'Spezial:PasswortZurücksetzen'];
# Kein Zugriff auf API für Gäste
# The user groups who should be able to use VisualEditor must have access to the MediaWiki write API.
$wgGroupPermissions['user']['writeapi'] = true;
$wgGroupPermissions['*']['readapi'] = true;
$wgGroupPermissions['bot']['read'] = true; # Falls Wortbot als "bot" markiert ist
$wgGroupPermissions['bot']['edit'] = true; // Verhindert Bearbeitungen für Gäste
# $wgGroupPermissions['Chatgpt']['createpage'] = true;
# $wgGroupPermissions['Chatgpt']['writeapi'] = true;
# $wgGroupPermissions['Chatgpt']['read'] = true;
## Default skin: you can change the default skin. Use the internal symbolic
# Enabled skins.
# The following skins were automatically enabled:
# wfLoadSkin( 'MinervaNeue' );
# wfLoadSkin( 'MonoBook' );
# wfLoadSkin( 'Timeless' );
wfLoadSkin( 'Vector' );
$wgDefaultSkin = 'vector-2022';
# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtension( 'ExtensionName' );
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled and modifeied by admin:
wfLoadExtension( 'Cargo' );
# ennable CateoryTree – needs ajax before loading
$wgUseAjax = true;
wfLoadExtension( 'CategoryTree' );
## $wgCategoryTreeMaxDepth = 4;
wfLoadExtension( 'Cite' );
$wgCiteBookReferencing = true;
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'Comments' );
wfLoadExtension( 'CreatePageUw' );
wfLoadExtension( 'DataTransfer' );
wfLoadExtension( 'DiscussionTools' );
wfLoadExtension( 'DisplayTitle' );
wfLoadExtension( 'DynamicPageList3' );
$wgDplSettings['allowUnlimitedCategories'] = true;
wfLoadExtension( 'Echo' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'HideSection' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
// To grant a group (e.g., the "sysop" group) permission to edit interwiki data
$wgGroupPermissions['sysop']['interwiki'] = true;
wfLoadExtension( 'Linter' );
wfLoadExtension( 'LoginNotify' );
wfLoadExtension( 'Math' );
# $wgMathValidModes = [ 'mathml', 'svg', 'png', 'mathjax' ]; // Erlaubte Modi
$wgDefaultUserOptions['math'] = 'mathjax';
$wgUseMathJax = true;
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'NumerAlpha' );
wfLoadExtension( 'PageImages' );
wfLoadExtension( 'PageProperties' );
wfLoadExtension( 'PageSchemas' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Popups' );
# $wgReplaceTextUser = "Wortroboter";
wfLoadExtension( 'Scribunto' );
$wgScribuntoDefaultEngine = 'luastandalone';
# wfLoadExtension( 'SecureLinkFixer' );
wfLoadExtension( 'SubPageList3' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TemplateData' );
wfLoadExtension( 'TemplateStyles' );
wfLoadExtension( 'TemplateStylesExtender' );
wfLoadExtension( 'CSS' );
wfLoadExtension( 'TemplateWizard' );
wfLoadExtension( 'TextExtracts' );
$wgWikiPreviewLength = 1000;
wfLoadExtension( 'TinyMCE' );
$wgTinyMCEEnabled = true;
wfLoadExtension( 'UploadWizard' );
$wgGroupPermissions['autoconfirmed']['upload_by_url'] = true;
$wgAllowCopyUploads = true;
$wgCopyUploadsFromSpecialUpload = true;
$wgExtensionFunctions[] = function() {
$GLOBALS['wgUploadNavigationUrl'] = SpecialPage::getTitleFor( 'UploadWizard' )->getLocalURL();
return true;
};
$wgUploadWizardConfig = [
'debug' => false,
'altUploadForm' => 'Special:Upload',
'enableFormData' => true, // Enable FileAPI uploads be used on supported browsers
'enableMultipleFiles' => true,
'enableMultiFileSelect' => true,
'uwLanguages' => [
'de' => 'Deutsch',
'en' => 'English'
], // Selectable languages for file descriptions - defaults to 'en'
'tutorial' => [
'skip' => true
], // Skip the tutorial
'maxUploads' => 15, // Number of uploads with one form - defaults to 50
'fileExtensions' => $wgFileExtensions // omitting this may cause errors
];
// Activate ONLY the 2017 wikitext editor by default
wfLoadExtension( 'VisualEditor' );
// VisualEditor aktivieren (opt-out: standardmäßig aktiv)
$wgDefaultUserOptions['visualeditor-enable'] = 1;
$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
$wgDefaultUserOptions['visualeditor-newwikitext'] = 1;
$wgVisualEditorEnableBetaFeature = false; // ← wichtig für „opt-out“ statt „Beta“
// VisualEditor in zusätzlichen Namensräumen aktivieren
$wgVisualEditorAvailableNamespaces = [
NS_TALK => true,
NS_USER => true,
NS_USER_TALK => true,
NS_HELP => true,
NS_PROJECT_TALK => true,
NS_FILE_TALK => true,
NS_MEDIAWIKI_TALK => true,
NS_TEMPLATE_TALK => true
];
$wgGroupPermissions['*']['viewedittab'] = true;
wfLoadExtension( 'WikiEditor' );
# End of automatically generated settings.
# Add more configuration options below.
# Semantic MediaWiki:
# run Queue Jobs 0.01 entspricht 1:100 Seitenaufrufe
$wgJobRunRate = 1;
wfLoadExtension( 'SemanticMediaWiki' );
enableSemantics( 'https://wiki.aewi.de' );
# Extension PageForm muß wegen dem Laden der Klassen nach SMW geladen werden
wfLoadExtension( 'PageForms' );
$wgGroupPermissions['sysop']['viewedittab'] = true;
# deaktiveren von googlemaps, leaflet, openlayers:
$wgPageFormsDisableOutsideServices = true;
# Standard Deutsch Sortierung:
# $smwgEntityCollation = 'uca-de-u-kn';
# wfLoadExtension( 'SemanticFormsSelect' );
# Suchdatenbank für Semantic MediaWiki:
# Verwende den Fuseki-Connector
$smwgSparqlRepositoryConnector = 'fuseki';
# Setze den SPARQLStore als Standard – damit speichert SMW seine Daten nicht mehr in der SQL-Datenbank.
$smwgDefaultStore = 'SMW\SPARQLStore\SPARQLStore';
# Setze die Endpunkte – passe diese Werte an, wenn dein Fuseki-Server ein anderes Dataset oder einen anderen Port verwendet.
$smwgSparqlQueryEndpoint = 'http://localhost:3030/dataset/sparql';
$smwgSparqlUpdateEndpoint = 'http://localhost:3030/dataset/update';
$smwgSparqlDataEndpoint = '';
# piwikibot
$wgEnableAPI = true;
$wgEnableWriteAPI = true;
$wgEnableBotPasswords = true;
# https://ose.aewi.de/opensearch/
wfLoadExtension('Elastica');
wfLoadExtension( 'CirrusSearch' );
$wgSearchType = 'CirrusSearch';
# $wgDisableSearchUpdate = true; ## nur im Besonderen by Update kurz aktivieren
$wgDebugLogGroups['CirrusSearch'] = "/var/log/mediawiki/cirrussearch.log";
// Elasticsearch-Konfigurationsparameter
# $wgCirrusSearchClusters = [
# 'default' => [ '127.0.0.1' ]
# ];
# $wgCirrusSearchConnectionAttempts = 3;
# $wgCirrusSearchMaxShardsPerNode = 1;
# $wgCirrusSearchSearchShardCount = 1;
$wgCirrusSearchEnableSearchSuggest = true;
$wgCirrusSearchUseCompletionSuggester = 'yes';
$wgCirrusSearchCompletionSuggesterSubphrases = true;
$wgCirrusSearchUseIcuFolding = true;
$wgCirrusSearchPrefixSearchIgnoreCase = true;
$wgCirrusSearchLanguage = 'de';
$wgCirrusSearchExtraLanguageAnalyzers = [ 'en', 'la', 'grc' ];
$wgCirrusSearchUsePerFieldLanguageAnalysis = true;
$wgCirrusSearchUseMultiTextField = true;
## KI-Anbindung
## MediaWiki sendet POST-Request an M2 für SentenceTransformers Embedding und Qdrant Vektordatenbank:
# $wgHooks['RecentChange_save'][] = function( $recentChange ) {
# $url = 'http://192.168.3.4:5002/update'; // WebHook auf M2
# $data = json_encode([
# "title" => $recentChange->mTitle->getText(),
# "timestamp" => wfTimestamp( TS_ISO_8601, $recentChange->mTimestamp ),
# ]);
#
# $opts = [
# 'http' => [
# 'method' => 'POST',
# 'header' => "Content-Type: application/json\r\n",
# 'content' => $data,
# ]
# ];
#
# $context = stream_context_create( $opts );
# file_get_contents( $url, false, $context );
#
# return true;
# };
wfLoadExtension('Lingo');
wfLoadExtension( 'SemanticGlossary' );
$wgexLingoPage = 'Wortverzeichnisseite';
$wgexLingoDisplayOnce = true;
$wgSemanticGlossaryNamespaces = [ NS_MAIN ];
# Rechtevergabe für Admin zur Bearbeitung aller SMW-Seiten
$wgGroupPermissions['sysop']['smw-admin'] = true;
# Sofortiges Abarbeiten des SWM-Queue
$smwgDeferredUpdates = false;
# $smwgConfigFileDir = "$IP/SemanticMediaWiki/cache";
# For some reason this helps show less wikitext markdown in the results.
$wgAdvancedSearchHighlighting = true;
wfLoadExtension( '3DAlloy' );
$wgFileExtensions = array_merge(
$wgFileExtensions, array(
'json', '3dj', '3djson', 'three',
'buff', 'buffjson',
'obj',
'stl', 'stlb'
)
);
// Sicherheit: Erlaube SVG-Uploads
// Definition des neuen Namensraums "Werke" und seiner Talk-Seite
define('NS_WERK', 3000);
define('NS_WERK_TALK', 3001);
// Registrierung des Namensraums in MediaWiki
$wgExtraNamespaces[NS_WERK] = "Werk";
$wgExtraNamespaces[NS_WERK_TALK] = "Werk_Erörterung";
// Integration in SemanticMediaWiki: semantische Funktionen in diesem Namensraum aktivieren
$smwgNamespacesWithSemanticLinks[NS_WERK] = true;
// Optional: Suchindex aktivieren, wenn dieser Raum durchsuchbar sein soll
$wgNamespacesToBeSearchedDefault[NS_WERK] = true;
// Definition des neuen Namensraums "Gespräche" und seiner Talk-Seite
define("NS_GESPRAECH", 3002);
define("NS_GESPRAECH_TALK", 3003);
$wgExtraNamespaces[NS_GESPRAECH] = "Gespräch";
$wgGroupPermissions['user']['NS_GESPRAECH'] = true;
$wgExtraNamespaces[NS_GESPRAECH_TALK] = "Gespräch_Erörterung";
$wgGroupPermissions['user']['NS_GESPRAECH_TALK'] = true;
// Optional: Content Namespace (wichtig für Artikel-ähnliches Verhalten)
$wgContentNamespaces = [ NS_MAIN, NS_HELP, NS_PROJECT, NS_WERK, NS_GESPRAECH ];
// Optional: Suchindex aktivieren, wenn dieser Raum durchsuchbar sein soll
# $wgNamespacesToBeSearchedDefault[NS_GESPRAECH] = true;
// Optional: Semantic MediaWiki aktivieren für diesen Namespace
$smwgNamespacesWithSemanticLinks[NS_GESPRAECH] = true;
define("NS_ANMERKUNG", 3004);
define("NS_ANMERKUNG_TALK", 3005);
$wgExtraNamespaces[NS_ANMERKUNG] = "Anmerkung";
$wgGroupPermissions['user']['NS_ANMERKUNG'] = true;
$wgExtraNamespaces[NS_ANMERKUNG_TALK] = "Anmerkung_Erörterung";
$wgGroupPermissions['user']['NS_ANMERKUNG_TALK'] = true;
$smwgNamespacesWithSemanticLinks[NS_ANMERKUNG] = true;
$wgNamespacesWithSubpages = [
NS_MAIN => true,
NS_TALK => true,
NS_USER => true,
NS_USER_TALK => true,
NS_PROJECT => true,
NS_PROJECT_TALK => true,
NS_FILE_TALK => true,
NS_MEDIAWIKI => true,
NS_MEDIAWIKI_TALK => true,
NS_TEMPLATE => true,
NS_TEMPLATE_TALK => true,
NS_HELP => true,
NS_HELP_TALK => true,
NS_CATEGORY_TALK => true,
NS_TEMPLATE => true,
NS_ANMERKUNG => true,
NS_GESPRAECH => true,
NS_WERK => true
];
// Anfang Videohandhabung
wfLoadExtension( 'TimedMediaHandler' );
$wgFFmpegLocation = '/opt/homebrew/bin/ffmpeg';
$wgMaxShellMemory = 512000; // TimedMediaHandler You may need to increase the allowed memory
$wgUseImageResize = true;
// If mp3 source assets can be ingested:
# $wgTmhEnableMp3Uploads = true;
// If mp4 source assets can be ingested:
# $wgTmhEnableMp4Uploads = true;
// If you use ffmpeg 2 can be set it to true
$wgUseFFmpeg2 = true;
$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'doc', 'pdf',
'xls', 'mpp', 'ppt', 'tiff', 'bmp', 'docx', 'xlsx', 'pages', 'numbers', 'otf',
'pptx', 'ps', 'odt', 'ods', 'odp', 'odg', 'ogv', 'ogg', 'mp3', 'mp4', 'm4v','mov', 'wav'
];
$wgEnableTranscode = true;
// Ende Videohandhabung
# Debug und Error
$wgShowExceptionDetails = true;
$wgDebugToolbar = true;
# $wgDevelopmentWarnings = true;
# Debug und Error MySQL
$wgShowSQLErrors = true;
$wgDebugDumpSql = true;
$wgDebugLogFile = "/Library/WebServer/Documents/mediawiki/logs/debug.log";
// Folgende Exstension führen zum Fehler das Links nicht bearbeitbar sind
# wfLoadExtension( 'LinkTitles' );
# $wgLinkTitlesParseOnEdit = false;
# $wgLinkTitlesParseOnRender = false;
# $wgLinkTitlesParseHeadings = false;
# wfLoadExtension( 'Theme' );
wfLoadSkin( 'Citizen' );
$wgDefaultMobileSkin = 'citizen';
$wgAllowSiteCSSOnRestrictedPages = true;
wfLoadExtension( 'Mermaid' );
wfLoadExtension( 'LabeledSectionTransclusion' );
$smwgEditProtectionRight = "smw-pageedit";
$wgGroupPermissions['smwcurator']['smw-pageedit'] = true;
# $wgGroupPermissions['sysop']['smw-pageedit'] = true;
$wgAllowUserJs = true;
$wgDisableHardRedirects = false;
# $smwgChangePropagationProtection = false;
# $wgWatchlistExpiry = true;
# pageproperties-semantic ist ein Rest aus VisualData, welcher in MariaDB
# in Tabelle wiki_content_models für manche Seiten eingetragen ist.
# ohne den ContenHandler sind mit VisualData zuvor bearbeitete Seiten
# nicht auf wikitext eingestellt und daher nicht lesbar.
$wgContentHandlers['pageproperties-semantic'] = 'TextContentHandler';
# $wgContentHandlers['visualdata-jsondata'] = 'TextContentHandler';
# Am Schluß zu ladende Extensions
wfLoadExtension( 'ReplaceText' );