Handbuch: Kurz-URL/Seitentitel - nginx, Root Access, PHP als CGI-Modul
Diese Konfiguration:
- Funktioniert bekanntermaßen und wurde mit MediaWiki 1.21 bis 1.27 getestet.
- Dieses Kurz-URL-Format wurde zwei Jahre lang im öffentlichen Umfeld ausgiebig getestet. Es wurde auch angepasst, um in der Wiki-Farm von Gamepedia verwendet zu werden.
- Ist für eine Ubuntu-Linux-Distribution konzipiert. Es sollte unter anderen Linux-Distributionen mit geringfügigen Anpassungen funktionieren. Es sollte auch unter Windows funktionieren, wenn du die Ordnerpfade weiter optimierst.
- Das Wiki wird im Stammverzeichnis html/http installiert. Beispiel:
/home/user/public_html
oder/var/www
für andere Linux-Distributionen. - Auf die Seiten wird bei
example.com/Page_Title or www.example.com/Page_Title
zugegriffen. Dies funktioniert auch alswiki.example.com/Page_Title
, da jede Subdomain unter der server_name-Direktive und einer kleinen Änderung an LocalSettings.php funktionieren sollte. - Auf die Seite kann weiterhin mit
example.com/index.php/Page_Title and example.com/index.php?title=Page_Title
zugegriffen werden. Dies ist großartig, da alte Suchmaschinenlinks und Lesezeichen weiterhin funktionieren, wenn Ihr Wiki zuvor aktualisiert wurde. - Das Anzeigen von
File:Image.jpg
-Dateien und ähnlichem mit einem Punkt im Namen funktioniert mit diesem Setup. - Statische Dateien werden mit dem Header für maximales Ablaufdatum bereitgestellt, um die Belastung des Servers zu verringern.
- Diese Konfiguration funktioniert mit
robots.txt
und anderen Dateien, die im Stammverzeichnis hängen bleiben. Dieses Skript prüft, ob die zu liefernde Datei existiert, bevor es die URI-Anforderung an MediaWiki weiterleitet.
nginx-Konfiguration
Die folgende nginx-Konfiguration kann direkt in die /etc/nginx/nginx.conf
-Datei für einen Server, der eine Site hostet, oder in eine /etc/nginx/sites-available/example.com
-Dateieinrichtung für einen Server mit mehreren Sites hinzugefügt werden.
Achte darauf, dass du den server_name
, den root
und die Namen der Zugriffs-/Fehlerprotokolldateien änderst.
Der Inhalt dieser Seite ist sehr unvollständig! Sie enthält keine wichtigen Einstellungen. Wenn du z.B. die unten stehenden Informationen verwendest, wird dein Wiki private Daten für die Öffentlichkeit preisgeben. Verwende stattdessen den Kurz-URL-Dienst von Redwerks, um automatisch eine Konfiguration zu erstellen, die diese Probleme löst. Ein Beispiel für eine solche Konfiguration sollte hier hinzugefügt werden!
server {
server_name www.example.com example.com;
listen 80;
root /home/user/public_html;
index index.php index.html index.htm;
access_log /var/log/nginx/access-example.log;
error_log /var/log/nginx/error-example.log;
location ~ \.ht {
deny all;
}
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php;
}
location ^~ /maintenance/ {
return 403;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri @rewrite;
}
}
- Bearbeite die Datei LocalSettings.php im html-Stammverzeichnis und füge diese Einstellungen hinzu/aktualisiere sie:
$wgScriptPath = "";
$wgArticlePath = "/$1";
$wgUsePathInfo = true;
$wgScriptExtension = ".php";
Wenn du die Konfiguration in den Ordner sites-available hinzugefügt hast, stelle sicher, dass du den Symlink in den Ordner sites-enabled erstellst.
Lade deine nginx-Konfiguration neu, indem du eintippst: /etc/init.d/nginx reload