Manual:Configuring file uploads/de

MediaWiki unterstützt das Hochladen und das Einbinden von Mediendateien. Diese Seite beschreibt die technischen Aspekte dieses Features. Siehe Manual:Image Administration/de und Help:Images/de für allgemeine Anwendungsinformationen.

Beginnend mit MediaWiki Version 1.1 ist das Hochladen aus Sicherheitsgründen standardmäßig abgeschaltet. Das Hochladen kann mit einer Konfigurationseinstellung angeschaltet werden. Es empfiehlt sich jedoch, zunächst mehrere Voraussetzungen zu überprüfen.

Stelle sicher, dass das Hochladen in PHP angeschaltet ist
Folgendes muss in der  gesetzt sein (die unter ,  ,   oder   (openSUSE 11.2),   oder bei Windows  unter   zu finden ist):

Wenn das nicht gesetzt ist, können PHP-Skripte nicht die Hochladen-Funktion nutzen und das Hochladen wird im MediaWiki nicht funktionieren.

Wenn der -Befehl gesetzt ist, muss er das Zielverzeichnis für das Hochladen in der MediaWiki-Installation  und das  -Verzeichnis (das ist das Standardverzeichnis, wenn nicht anders konfiguriert). The addition of the 'upload_tmp_dir' can avoid messages like "Could not find file "/var/tmp/php31aWnF" (where in this example the 'upload_tmp_dir' is '/var/tmp'). Lies mehr über das Hochladen von Dateien mit PHP in den File upload basics (englisch) und spezieller unter move_uploaded_file (englisch).

Note|Der formale Inhalt der Variablen ist ein boolscher Ausdruck. PHP liest jeden String, der nicht den Wert FALSCH hat als WAHR, deshalb führt der oft verwendete Wert ON zum gleichen Ergebnis.

Prüfungen für Windows- und IIS-Benutzer
Setze für %SystemRoot%\TEMP die Rechte als Internetgastaccount (IUSR_Rechnername, oder IUSR für IIS 7+): Lesen, Schreiben und Ausführen;

Prüfe die Verzeichnissicherheit
Das Hochladeverzeichnis muss so konfiguriert sein, dass es einem Endbenutzer (jemand, der sich das Wiki mit einem Browser ansieht) nicht möglich ist, andere Skripte hochzuladen und auszuführen, weil das sonst einen Exploit-Zugang zu Deinem Webverzeichnis ermöglichen könnte und das Wiki oder die Webseite zerstört werden könnten.

Setze das -Verzeichnis (oder das  -Verzeichnis in früheren Versionen) auf die Berechtigung  :
 * User kann lesen, schreiben und ausführen;
 * Group kann lesen und ausführen;
 * World kann lesen und ausführen.

Wenn Du  verwendest, stelle sicher, dass das Verzeichnis dem Benutzer gehört, der das PHP-Skript laufen lässt (das ist der Apache-Benutzer oder, bei suphp, der Skriptbesitzer).

If using CentOS 6 or Mageia the owner:group in the chown command should be "apache:apache" instead of "www-data:www-data".

Wenn Du SELinux verwendest, stelle sicher, dass die ACLs entsprechend eingestellt sind (siehe dort).

Wenn Du suphp verwendest, stelle sicher, dass  in der   auf   (oder weniger) gesetzt ist.

Beschränke die Anzeige von Verzeichnissen im Bilderverzeichnis
Wenn Du nicht allen Benutzern ermöglichen willst, Dein Bilderverzeichnis einzusehen, könntest Du das in Deiner Apachekonfiguration verhindern:

Das Hochladen An- und Ausschalten
In MediaWiki Version 1.5 und später steht das zu setzenden Attribut in der  und   wird so gesetzt:

Das ermöglicht das Hochladen. Um das Hochladen zu unterbinden, muss man das Attribut auf FALSE setzen:

In älteren Versionen der Software steht das zu setzende Attribut auch in der, wird aber andersherum verwendet, mittels. Der Standard sieht so aus:

Den Wert umkehren, um das Hochladen zu ermöglichen:

Using a central repository
InstantCommons is a feature, enabled with a configuration change, which gives you immediate access to the millions of free (freely licensed) files in Wikimedia Commons.

Hochladerechte
Per Standard können alle registrierten Benutzer Dateien hochladen. Um das einzuschränken, musst Du die  ändern:


 * Um normale Benutzer am Hochladen zu hindern:


 * Um eine spezielle Gruppe namens "uploadaccess" anzulegen und den Mitglieder der Gruppe das Hochladen von Dateien zu erlauben:


 * Um automatisch bestätigten ("autoconfirmed") Benutzern ("non-newbie") zu erlauben, Dateien hochzuladen:

Das Recht, bestehende Dateien zu ersetzen wird mit einer anderen Berechtigung gesteuert, genannt :
 * Um normalen Benutzern zu verwehren, bestehende Dateien zu überschreiben:


 * Um automatisch bestätigten ("autoconfirmed") Benutzern ("non-newbie") zu erlauben, bestehende Dateien zu überschreiben:

Wenn ein ForeignFileRepo gesetzt ist, wird das Recht, diese Dateien lokal zu ersetzen mit einer speziellen Berechtigung gesteuert, genannt :
 * Um normalen Benutzern zu verwehren, filerepo-Dateien lokal zu überschreiben:


 * Um automatisch bestätigten ("autoconfirmed") Benutzern ("non-newbie") zu erlauben, filerepo-Dateien lokal zu überschreiben:

Siehe Manual:User rights für Details zu den Benutzerrechten und Manual:Preventing access für mehr Informationen zum Beschränken von Zugängen.

Konfiguration von Dateitypen
Du kannst  in der   hinzufügen, um das Hochladen von anderen Dateitypen zu erlauben. Beispielsweise kannst Du die -Zeile so ändern oder oder Mehrere Dateitypen stehen jedoch auf einer Schwarzen Liste ($wgFileBlacklist) und können auch nicht hochgeladen werden, wenn sie  hinzugefügt wurden. Um Dateien mit gesperrten Endungen hochladen zu können, musst Du die Schwarze Liste bearbeiten. Um beispielsweise ausführbare Dateien hochladen zu lassen: Zusätzlich sperrt  mehrere Dateien an Hand des MIME-Typ; .zip-Dateien zum Beispiel sind verboten basierend auf dem MIME-Typ (seit MediaWiki Version 1.14).

Du kannst außerdem  verändern Das erlaubt, die meisten Dateitypen hochzuladen. An Hand der Schwarzen Liste und des MIME-Typs gesperrte Dateitypen können dann aber immer noch nicht hochgeladen werden.

Wenn Sie den Fehler "The file is corrupt or has an incorrect extension" erhalten, stellen Sie sicher, dass die MIME-Typ-Erkennung korrekt funktioniert.

Wenn Du jeden Dateityp zulässt, stelle sicher, dass Deine MIME-Typ-Erkennung funktioniert und denke darüber nach, Virusscans für hochgeladene Dateien zu ermöglichen.

To enable zip extension (tested in MediaWiki v1.19.23) the following will be necessary in the LocalSettings.php file:

Login
Per Standard können nicht angemeldete Benutzer keine Dateien hochladen. Sie müssen sich registrieren und anmelden, bevor die Dateihochladeoption im Menü erscheint

Thumbnailing. Das Erstellen von kleinen Vorschaubildern
Für Informationen zum automatischen Erstellen von Vorschaubildern siehe Manual:Image_thumbnailing. Bei Problemen mit dem Thumbnailing siehe Image Thumbnails not working and/or appearing.

Wenn die Datei nicht visuell ist (also keine Bilder oder Videos), wird an Stelle der Datei ein Icon angezeigt. Diese werden mit der -Funktion in der Dateiklasse in der FileRepo-Gruppe erzeugt. Die Icons werden in  im  -Format gespeichert.

Die Maximalgröße für hochzuladene Dateien setzen
Per Standard erlaubt PHP das Hochladen von Dateien mit nicht mehr als 2 Megabyte Größe. Wenn Du größere Dateien hochladen willst, ändere zwei Parameter in der :
 * 8 Megabyte als Standard
 * 2 Megabyte als Standard

Das kann Root-Zugriff auf den Server voraussetzen. (Wenn Du einen Shared Host hast, kontaktiere Deinen Serveradministrator.) For Ubuntu:

Die -Datei finden Der Ort der  variiert je nach verwendeter Distribution. (Versuche  um den Ort Deiner Konfigurationsdatei zu finden.)
 * Locating the php.ini file

Es ist wichtig, die -Datei im apache2-Verzeichnis zu ändern. Es kann zum Beispiel eine Basis- unter   und zusätzlich eine unter   geben. Es ist die -Datei unter , die vorrangig geändert werden muss. For php-fastcgi, edit /etc/php5/cgi/php.ini.

Wenn Du mehr als eine Webseite auf einem Server hast und Du Änderungen nur für MediaWiki vornehmen willst, füge in Deine  in Deine   ein:
 * Mehrere Webseiten auf einem Server

Beide obigen Einstellungen funktionieren auch in einer -Datei. If your site uses PHP >= 5.3 and allows it, you can place php.ini directives in .user.ini files instead.


 * Webserver-Grenzen

Dein Webserver kann weitere Grenzen für hochzuladene Dateien verhängt haben. Für Apache ist eine der relevanten Einstellungen. Für Nginx ist  eine relevante Einstellung.

Note|Du könntest Apache oder IIS neu starten müssen, nachdem Du Deine PHP- oder Webserver-Konfiguration geändert hast. ( unter Linux, zum Beispiel.)

You may also need to restart php5-fpm after altering your PHP (or ngingx server?) configuration. (sudo /etc/init.d/php5-fpm restart in Linux, for example.)


 * Die Warnung beim Hochladen zu großer Dateien

MediaWiki selbst gibt eine Warnung aus, wenn Du versuchst, Dateien größer als spezifiziert durch die -Option hochzuladen. Das ist unabhängig von der hart durch PHP gesetzten Grenze. MediaWiki hat zudem eine -Option, aber das wird derzeit für normales Hochladen (lokales Hochladen einer Datei) nicht erzwungen. Der einzige Weg für eine Begrenzung der Hochladegröße ist die Änderung der PHP-Konfiguration.

Zeitweise Änderungen der Hochladebegrenzung (bei multiplen Wikis in einer Farm zum Beispiel) können durch das Hinzufügen dieser Zeilen:
 * Temporäre Hochladebegrenzungen

in der MediaWiki- -Datei für jedes Wiki gesetzt werden. In diesem Beispiel steht das PHP-Limit bei 50 Megabyte. Beachte, dass diese Einstellungen nicht die oben gesetzte Maximalgröße überschreiben werden (, weil die Basis- und die apache2-  das absolute Maximum setzen). Diese Methode setzt Maxima, die kleiner sind als das absolute Maximum.


 * IIS7-Hochladebegrenzung

Note|Per Standard erlaubt IIS7 unter Windows 2008, dass von einer Webanwendung nur 30 MB hochgeladen werden. Größere Dateien geben nach dem Hochladen den Fehler 404 zurück. Wenn Du dieses Problem hast, kannst Du es lösen, indem Du die maximale Dateigröße unter  in der  -Datei setzt:

  

Mit der obigen  können Benutzer Dateien hochladen, die 50.000.000 Bytes (50 MB) groß sind. Diese Einstellung wird sofort funktionieren, ohne dass Du die IIS-Dienste neu starten musst. Die -Datei befindet sich im root-Verzeichnis Deiner Webseite.

Dateien größer als 2 GB hochladen

Füge folgende Zeile der  hinzu:

Ändere außerdem folgende Zeilen in der :

In der IIS- -Datei überschreibe den Wert von. Der folgende Eintrag in der  erlaubt beispielsweise, Dateien kleiner oder gleich 2 Gigabytes (GB) hochzuladen:



Im IIS 7 musst Du außerdem das Hochladen von großen Dateien erlauben. Du findest das, wenn Du auf “Request Filtering > Edit Feature Settings” im IIS-Abschnitt in der Mitte des Fensters klickst. Sette das ”Maximum allowed content length (Bytes)”-Feld auf 2147482624. Wenn Die "Request Filtering" im IIS-Abschnitt nicht findest, muss es unter “Internet Information Services > World Wide Web Services > Security” im “Turn Windows features on or off”-Feld in den Systemeinstellungen angeschaltet werden.

Wenn obiger Tip nicht das Hochladen großer Dateien ermöglicht, dann öffne eine Kommandozeile und gib dieses Kommando ein:

%windir%\system32\inetsrv\appcmd set config -section:requestFiltering -requestLimits.maxAllowedContentLength: 2147482624

Allowing Java JAR Uploads
By default, MediaWiki will scan all uploads that appear to be ZIP archives and reject any that contain Java .class files. This is a security measure to prevent users uploading a malicious Java applet. For non-public sites only, use the following to disable this check:

This setting can be used as a work around for allowing mimetypes to be accepted indiscriminately. For example, if you attempt to upload a .doc file created by Word 2007, no matter the ext list you provide and mimetype checking you invoke or prohibit, you will receive the message:


 * The file is a corrupt or otherwise unreadable ZIP file. It cannot be properly checked for security.

.doc files saved by Word 2007 (and possibly later versions) contain a small embedded ZIP archive storing metadata that is not representable in the binary .doc format as used by earlier versions of Word. This embedded ZIP data confuses the Java archive scanner, causing the .doc file to be rejected. Files in the newer .docx file format are valid ZIP archives in their entirety, and can be uploaded successfully without setting $wgAllowJavaUploads.

Uploading directly from a URL ("Sideloading")
If you want to allow a user to directly upload files from a URL, instead of from a file on their local computer, set $wgAllowCopyUploads = true.

By default, upload by URL are only possible using the API (or extensions such as UploadWizard). To make the option usable from Special:Upload, you need to set $wgCopyUploadsFromSpecialUpload to true as well. On the upload form, you will then see an additional field for the URL, below the usual filename field. The URL field is greyed out per default, but can be activated by activating the radiobutton (checkbox) to the left of the field.

In order to use this feature, users must have the user right upload_by_url. This right was granted to sysops by default until MediaWiki 1.20 but it now needs to be granted explicitly. To allow this to normal users, set Keep in mind that allowing uploads directly from an arbitrary location on the web makes it easier to upload random, unwanted material, and it might be misunderstood as an invitation to upload anything that people might come across on the web.

Undeleting images
Undeleting images is possible as an option since MediaWiki 1.8, and enabled by default since MediaWiki 1.11.

Prior to MediaWiki 1.11, you can enable undeletion of images by setting $wgSaveDeletedFiles = true. Since version 1.11, the behavior is controlled by $wgFileStore, and deleted files are per default stored in $wgUploadDirectory/deleted. Since version 1.17, $wgFileStore has been deprecated and $wgDeletedDirectory should be used instead.

Mass uploading
A number of tools are available for uploading multiple files in one go rather than each file separately:

Upload directory
Whenever an image is uploaded, several things are created:


 * 1) An article in the file namespace with the name of the file, e.g. File:MyPicture.png. This page is stored and can be edited like any other page.
 * 2) The file itself is stored in a folder on the file system.
 * 3) If necessary and thumbnailing is available, thumbnailed versions of the file will be created when necessary (such as for the usage on the file description page. These are stored in the thumb directory of the image directory, in a separate directory for each main file.

If $wgHashedUploadDirectory is enabled (by default), MediaWiki creates several subdirectories in the images directory.

If $wgHashedUploadDirectory is set to true</tt>, uploaded files will be distributed into sub-directories of $wgUploadDirectory based on the first two characters of the md5 hash of the filename. (e.g. $IP/images/a/ab/foo.jpg) Creation of such subdirectories is handled automatically. This is used to avoid having too many files in one folder because some filesystems don't perform well with large numbers of files in one folder.

If you only maintain a small wiki with few uploaded images, you could turn this off by setting $wgHashedUploadDirectory = false</tt>, all images are uploaded in $wgUploadDirectory itself. (e.g. $IP/images/foo.jpg)

Multiwiki sites
Not doing so will mysteriously break image uploads.
 * Make sure you've changed the site location in LocalSettings.php from, e.g. /var/lib/mediawiki to wherever your installation is, and created a writeable images directory (most of the rest can be symlinked).

Known problems on Windows
Running MediaWiki on Windows server has some restrictions in allowed filenames, due to a PHP bug. PHP can't handle filenames with non-ascii characters on it correctly, and MediaWiki will refuse to upload files containing such characters to prevent broken uploads, with the message .

Known problems with database names having non-alphanumeric characters
If $wgDBname contains non-alphanumeric characters, uploads may fail with errors like Could not create directory "mwstore://local-backend/local-public/&lt;path&gt;". . This is caused by an internal check for valid container name for file backend, but it's constructed using $wgDBname.

Since MediaWiki 1.26, it allows uploads when $wgDBname contains dots.