Я пытаюсь переместить приложение Yii2 с помощью apache в nginx. Я использую расширенный шаблон Yii2 в одном домене, поэтому я следую решению по этой ссылке, создавая символическую ссылку из frontend/web
на backend/web
. Это решение отлично работает, когда я использую apache, но когда я пытаюсь использовать nginx, я не могу открыть бэкэнд-приложение.
Приложение frontend прекрасно работает, но когда я пытаюсь открыть бэкэнд-приложение с помощью app.local/belakang
, оно перенаправляется на app.local/belakang/site/login
, но все еще застряло в приложении frontend и поэтому дает [yii\web\HttpException:404] exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "belakang/site/login".'
Вот символические ссылки, которые есть в frontend/web
каталоге:
lrwxrwxrwx 1 vagrant vagrant 17 Jun 24 14:03 belakang -> ../../backend/web
и это конфигурация vgin nginx, которую я использую:
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; } }
Может ли кто-нибудь помочь, чтобы я мог открыть бэкэнд-приложение из app.local/belakang
?
Исправьте его, добавив конфигурацию ниже
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; } }