Nginx-Neufassung für Wikkawiki

Nginx-Neufassung für Wikkawiki

Ich habe gerade WikkaWiki auf meinem Server eingerichtet und versucht, die Links von wiki.mysite.info/wikka.php?wakka=Startin 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_urlwikka.config.phpist aus der Datei nicht einmal manuell konfigurierbar .

Ich verwende die Version 1.3.2von 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/APageund 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 StartSeite immer herunter).

Auch wenn ich hingehe, wiki.mysite.info/wird die wikka.phpDatei 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 ~ \.phpin den Block location @wikkalö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.5und 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;
    }
}

verwandte Informationen