
Ich habe gerade WikkaWiki auf meinem Server eingerichtet und versucht, die Links von wiki.mysite.info/wikka.php?wakka=Start
in zu verschieben wiki.mysite.info/DotMG
.
Ich habe versucht, ihrer Anleitung zu folgen beihttp://docs.wikkawiki.org/ModRewrite, es scheint jedoch unvollständig und veraltet zu sein. Darüber hinaus ist ab Version1.3.2
base_url
wikka.config.php
ist aus der Datei nicht einmal manuell konfigurierbar .
Ich verwende die Version 1.3.2
von WikkaWiki. Meine virtuelle Hostdatei für Nginx enthält:
server {
listen 80;
server_name wiki.mysite.info;
root /usr/share/nginx/wikka/;
access_log /usr/share/nginx/.access/wikka;
error_log /usr/share/nginx/.error/wikka error;
location / {
index index.php;
try_files $uri $uri/ @wikka;
}
location @wikka {
rewrite ^(.*/[^\./]*[^/])$ $1/ last;
rewrite ^(.*)$ /wikka.php?wakka=$1 last;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}
Bisher funktioniert es, ich kann dorthin gehen wiki.mysite.info/APage
und die Seite wird angezeigt. Es funktioniert jedoch nicht auf allen Seiten. Manchmal lädt der Browser die Seite einfach herunter (aus irgendeinem Grund lädt er die Start
Seite immer herunter).
Auch wenn ich hingehe, wiki.mysite.info/
wird die wikka.php
Datei heruntergeladen ...
Darüber hinaus haben die Links im Wiki das , wikka.php?wakka=
sodass jedes Mal, wenn ich im Wiki navigiere, wieder der Status angezeigt wird wiki.mysite.info/wikka.php?wakka=APage
.
Ich glaube, mit mir stimmt etwas nicht rewrite
, aber ich kann es nicht genau sagen.
Inhalt der fastcgi_params
:
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $server_https;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
Antwort1
Ändern Sie diese Zeile:
fastcgi_param SCRIPT_FILENAME $request_filename;
Zu:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
und versuche es erneut.
Antwort2
Ich bin über Google hierher gekommen, und obwohl ich die Lösung selbst finden musste und dieser Thread sogar über ein Jahr alt ist, denke ich, dass ich hier meine Lösung für andere Leute posten muss, die über die Suchmaschine hierher gekommen sind.
Ich denke, dass in nginx das Umschreiben an den Speicherort @wikka durch try_files den Aufruf des Blocks kurzschließtlocation ~ \.php
Das erneute Kopieren aller Elemente aus dem Block location ~ \.php
in den Block location @wikka
löste das Problem für mich. Mehr dazuhttp://blog.dot.mg/?t=20
Antwort3
Ich habe gerade die Migration einer alten Wikka-Installation von 1.3.5
und zu Apache nach Nginx/php-fpm abgeschlossen.
Als Referenz hier meine Vhost-Definition mit den entsprechenden Umschreiberegeln:
server {
listen 80;
server_name wiki.domain.com;
root /var/www/wiki.domain.com;
access_log /var/log/nginx/wiki.domain.com.access.log;
error_log /var/log/nginx/wiki.domain.com.error.log;
location / {
index wikka.php;
try_files $uri $uri/ @wikka;
}
location @wikka {
rewrite (.*) /wikka.php?wakka=$1;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}