2016-06-24 2 views
1

Ich versuche, meine Yii2 App von Apache zu nginx zu bewegen. Ich verwende die erweiterte Yii2-Vorlage für eine einzige Domäne, daher befolge ich die Lösung von this link, indem ich einen symbolischen Link von frontend/web zu backend/web erstelle. Diese Lösung funktioniert gut, wenn ich Apache benutze, aber wenn ich nginx benutze, kann ich die Backend-App nicht öffnen.Migrieren von Yii2 von Apache zu Nginx - gescheitert auf Back-End-App

Das Frontend app funktioniert gut, aber wenn ich versuche, das Back-End-App zu öffnen app.local/belakang verwendet wird, wird es zu app.local/belakang/site/login umgeleitet, aber immer noch im Frontend App stecken und damit ein [yii\web\HttpException:404] exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "belakang/site/login".'

Hier gab, sind die symbolischen Links, die ich haben auf dem frontend/web Verzeichnis:

lrwxrwxrwx 1 vagrant vagrant 17 Jun 24 14:03 belakang -> ../../backend/web 

und das ist die nginx vHost Config, die ich benutze:

server { 
    charset utf-8; 
    client_max_body_size 128M; 

    listen 80; ## listen for ipv4 

    server_name app.local; 
    root  /var/www/html/frontend/web; 
    index  index.php; 

    location/{ 
     # Redirect everything that isn't a real file to index.php 
     try_files $uri $uri/ /index.php$is_args$args; 
    } 

    # deny accessing php files for the /assets directory 
    location ~ ^/assets/.*\.php$ { 
     deny all; 
    } 

    location ~ \.php$ { 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     try_files $uri =404; 
    } 

    location ~* /\. { 
     deny all; 
    } 
} 

Kann mir jemand helfen, damit ich die Backend-App von app.local/belakang öffnen kann?

+0

Ich habe für meine yii2 erweiterte App für Back-End spezielle Sub-Domain gemacht. Ich denke, es ist besser, separate Subdomain für Admin anstelle von Unterordner zu haben. – Taras

Antwort

0

Fix es selbst durch Config-Zugabe unter

location ^~ /belakang { 
     try_files $uri $uri/ /belakang/index.php$is_args$args; 

     location ~ /\.(ht|svn|git) { 
      deny all; 
     } 

     location ~ \.php$ { 
      include fastcgi_params; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      fastcgi_pass unix:/var/run/php/php5-fpm.sock; 
      try_files $uri =404; 
     } 
    }