2017-02-20 26 views
0

Я пытаюсь перенести свой личный стербер от apache на nginx, но я не могу найти место для работы.Nginx работает с apache-подобными местоположениями

Мой сервер имеет несколько приложений, имеющиеся в некоторых/что-то от корня, как url.com/git url.com/mediaWiki, url.com/vnstat url.com/redmine

В апач есть куча из конфигурационных файлов для каждого приложения:

redmine.conf

<Location "/redmine"> 
    Options none 
    Require all granted 

    PassengerEnabled On 
    RailsBaseURI /redmine 
    RailsEnv production 
</Location> 

vnstat_php.conf

Alias /vnstat /var/www/vnstat_php 

<Directory /var/www/vnstat_php> 
     DirectoryIndex index.php 
     Require all granted 
</Directory> 

Я пытаюсь реплицировать это на nginx, но моя лучшая попытка до сих пор в конечном итоге со странным URL. Я только управлять вещь, чтобы работать писать на главном ngix конфигурационном файле:

server { 
    listen  8123 default_server; 
    listen  [::]:8123 default_server; 
    server_name _; 
    root   /var/www/html; 

    location/{ 
    } 

    location /vnstat/ { 
     root /var/www/vnstat_php/; 
     index index.php; 
    } 
} 

Корневая страница работает нормально, но ссылка/vnstat отправить меня в

2017/02/20 11:37:19 [error] 27538#0: *1 "/var/www/vnstat_php/vnstat/index.php" is not found (2: No such file or directory), client: 177.92.59.216, server: _, request: "GET /vnstat/ HTTP/1.1", host: "url.com:8123" 

Он ищет vnstat каталог внутри/var/www/vnstat_php/вместо этого используется как root. Может кто-то указать мне верное направление?

+0

Вы должны '' alias' не root'. Что-то вроде этого (http://stackoverflow.com/questions/42176020/nginx-yii2-configuration-in-different-folders/42203734#42203734) возможно. –

ответ

0

Как описано в http://nginx.org/en/docs/http/ngx_http_core_module.html#root

Путь к файлу строится путем простого добавления URI к значению директивы корня. Если URI необходимо изменить, следует использовать директиву alias.

вы должны использовать псевдоним для этого случая:

http://nginx.org/en/docs/http/ngx_http_core_module.html#alias

location /vnstat/ { 
    alias /var/www/vnstat_php/; 
} 

Но с помощью PHP с Nginx, вы должны рассмотреть возможность работы с FastCGI: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/

+0

open() "/ var/www/html/vnstat" failed (2: Нет такого файла или каталога), клиент: 177.92.59.216, server: _, request: "GET/vnstat HTTP/1.1 ", host:" url.com:8123 ", referrer:" http://url.com:8123/frame.html " – Techmago