Nginx + WordPress in Unterordner + Debian-Konfiguration

0

In einem Unterordner einer Domain möchte ich ein WordPress-Blog installieren. Ich benutze Nginx. Die URL für den Zugriff auf das Blog sollte folgendermaßen lauten:example.com/blog

Die Site-Konfiguration sieht wie folgt aus:

server {
        listen 80;
        listen [::]:80;
        root /var/www/example.com/html; 
        index index.php index.html index.htm index.nginx-debian.html;   
        server_name example.com www.example.com;

        location /blog {
                alias /var/www/example.comblog/html;
                index index.php;
                try_files $uri $uri/ /blog/index.php?q=$uri&$args;
        }

        location ~ /blog/.+\.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        location ~ /\.ht {
                deny all;
        }
}
  • Die WordPress-Dateien befinden sich im Ordner /var/www/example.comblog/html. Beim Zugriff example.com/blogzeigt der Browser einen 404-Fehler an.

  • In habe /etc/php5/fpm/php.iniich dies angepasst:cgi.fix_pathinfo=0

  • Nginx-Version: Nginx / 1.6.2

  • /var/log/nginx/error.log zeigt nichts von Interesse

UPDATE 1:

Nachdem Sie die Fehlerprotokollierung auf Debug eingestellt haben, werden (unter anderem) die folgenden Zeilen angezeigt. Vielleicht hilft das:

open index "/var/www/example.comblog/html/index.php"
internal redirect: "/blog/index.php?"
rewrite phase: 1
test location: "/blog"
test location: ~ "/blog/.+\.php$"
using configuration "/blog/.+\.php$"
http script var: "/blog/index.php"
trying to use file: "/blog/index.php" "/var/www/example.com/html/staat/index.php"

Die interne Weiterleitung scheint falsch? Und in der letzten Zeile sollte es /var/www/example.comblog/html/staat/index.phpstatt /var/www/example.com/html/staat/index.php. Ich vermute das ist der Grund für den 404. Weil der index.phpbei nicht existiert /var/www/example.com/html/staat/index.php.

Update 2:

Okay, es scheint ein langjähriges Problem mit der Verwendung von Alias ​​zusammen mit try_files zu geben .

Beta
quelle

Antworten:

0

Sie haben nicht das langjährige Problem mit der Verwendung von aliasmit try_files.

Sie verwenden einfach überhaupt nicht aliasdie entsprechenden location. Somit wird der Dokumentenstamm von der obigen Ebene geerbt.

Sie können die aliasDirektive entweder zum locationBlock hinzufügen oder sie locationwie in der Antwort, mit der Sie verknüpft haben, verschachteln .

Michael Hampton
quelle
Wie würde "Sie können entweder die Alias-Direktive zum Location-Block hinzufügen" aussehen?
Beta
Sie können es einfach kopieren und einfügen.
Michael Hampton