Jump to content
Froxlor Forum
  • 0

Unterverzeichnis extra root zuweisen (nginx)


BadMax

Question

Ich m?chte ein Unterverzeichnis auf ein PHP Script umleiten. Laut Nginx Anleitung ist das ja super einfach.

In der Froxlor-Domaineinstellung hab ich den Code eingef?gt.
 

 

 location /cc {
                index index.php index.html index.htm;
                root /var/customers/webs/username/_domains/domain1.com/phpscript/;
        }

 

 

Wird auch in der vHost-Datei so ?bernommen, aber es funktioniert nicht.
Mir f?llt langsam nichts mehr ein was ich noch ausprobieren k?nnte.

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

Heisst dass, es geht nicht?

Das Script liegt in diesem Verzeichnis, wenn ich jetzt index.php angeben w?rde, dann h?tte ich vermutlich ein Problem.

Ich w?rde keine weitere Unterseite bzw. den Adminbereich nicht aufrufen k?nnen.

Gibts ne L?sung f?r mein Problem ? ^_^

Link to comment
Share on other sites

Naja, wenn das so ist, stimmt das nat?rlich, du hast halt geschrieben, du willst auf eine Datei leiten. Das sollte dann eigentlich klappen. Liegt das Verzeichnis vllt nicht im Customer-Docroot? Wie ?u?ert sich denn das "funktioniert nicht"? Steht was in den Logs?

Link to comment
Share on other sites

Ja, ich meinte nat?rlich das Verzeichnis in dem das Script liegt.

 

Keine Fehlermeldung, es wird die Index der Domain angezeigt ohne CSS/Bilder, vermutlich weil der Pfad dann nicht stimmt.

In der Log kann ich keinen Fehler entdecken, ausser die CSS und Bilder nicht gefunden werden.

Was k?nnte ich denn noch versuchen?

 

EDIT: Doch Verzeichnis liegt im Customer-Docroot

Link to comment
Share on other sites

Gib mal als Location nicht /cc ein sondern /cc/ - das k?nnte was sein. auch bitte nicht vergessen, dass nginx da etwas anders arbeitet als apache, d.h. ein request auf:

/cc/image.gif

resultiert in einem gesamtpfad wie folgt:

/var/customers/webs/username/_domains/domain1.com/phpscript/cc/image.gif

Wenn das nicht so beabsichtigt ist, musst du statt root eher ein alias verwenden, das w?rde so aussehen:

location /cc/ {
    index index.php index.html index.htm;
    alias /var/customers/webs/username/_domains/domain1.com/phpscript/;
}

Danach w?rde ein Request auf /cc/image.gif tats?chlich in dem gesamtpfad wie folgt enden:

/var/customers/webs/username/_domains/domain1.com/phpscript/image.gif
Link to comment
Share on other sites

Danke, f?r deine Hilfe.

 

Also das komische ist, es funktioniert wenn ich die Zeile "index index.php index.html index.htm;" weglasse!

Aber dann funktioniert kein PHP mehr, liegt eine index.html im Verzeichnis wird sie aufgerufen.

Die index.php kann man auch nicht aufrufen, sonst kommt die Startseite. Irgendow ist der Wurm drin.

 

Ist vielleicht vorher was falsch eingestellt und es wird vorher abgefangen.

Der Location-Block von /webalizer ist ja nach dem gleichen Muster aufgebaut, bist auf das Login.

 

Hier die vHost Datei (etwas abge?ndert):

server {
        listen X.X.X.14:80;
        server_name top-domain.net *.top-domain.net;
        access_log /var/customers/logs/user-access.log combined;
        error_log /var/customers/logs/user-error.log error;
        root /var/customers/webs/user/_domains/top-domain.net/;
        location / {
                index index.php index.html index.htm;
                try_files $uri $uri/ @rewrites;
        }
        location @rewrites {
                rewrite ^ /index.php last;
        }
        location /webalizer {
                alias /var/customers/webs/user/webalizer/top-domain.net/;
                auth_basic "Restricted Area";
                auth_basic_user_file /etc/nginx/froxlor-htpasswd/1-888be35520ba2c9d29f03f7444bf0574.htpasswd;
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/nginx/user-top-domain.net-php-fpm.socket;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
        location /script {
                 alias /var/customers/webs/user/_sub/_script/;
        }
       
Link to comment
Share on other sites

Das problem k?nnte sein, dass der php-block vor deinem location-block ist - ist allerdings nur eine idee, wie genau nginx das parsed und macht kann ich dir nicht sagen. aber testen kannst du es ja mal, wenn du den block "location ~ \.php$ { [...] } unter deinen alias packst...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...