Handbuch: Kurz-URL/Seitentitel - nginx, Root Access, PHP als CGI-Modul

This page is a translated version of the page Manual:Short URL/Page title - nginx, Root Access, PHP as a CGI module and the translation is 100% complete.

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 als wiki.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

Siehe auch