احسان رضایی

یک توسعه دهنده، شاید هم نه.

درس های yii2 شماره 10: پیکره بندی nginx برای yii2 advanced

در yii2 / تاریخ ارسال 19:20 05-10-1395 / 0 نظر / 1427 بازدید / آخرین ویرایش 17:25 08-01-1397

به منظور پیکره بندی nginx برای yii2 مراحل زیر را باید انجام دهید:

1) برای backend پیوند نمادین(symlink) ایجاد کنید.

cd /path/to/project/frontend/webln -s ../../backend/web backend

2) frontend/config/main.php نیاز به تغییر دارد.

....
'components' => [
    ....
    'request'=>[
        'baseUrl'=>'',
    ],
    'urlManager'=>[
        'scriptUrl'=>'/index.php',
    ],
    ....
],

3) backend/config/main.php هم باید کمی اصلاح شود.

....
'components' => [
    ....
    'request'=>[
        'baseUrl'=>'/backend',
    ],
    'urlManager'=>[
        'scriptUrl'=>'/backend/index.php',
    ],
    ....
],

4) و در آخر پیکره بندی زیر را به nginx.conf اضافه کنید با توجه به اینکه project_root و server_name مورد نظر شما باید در پیکره بندی قرار بگیرد.

server {
    set $project_root /var/www/advanced;
    set $fcgi_server 127.0.0.1:9000;
    
    charset utf-8;
    client_max_body_size 128M;
    listen 80;
    
    
    server_name X.X.X.X;
    root $project_root/frontend/web;
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location /backend {
        index /backend/web/index.php;
        try_files $uri $uri/ /backend/web/index.php?$args;
    
        location ~ ^/backend/.*\.php$ {
            rewrite ^/backend/(.*)$ /backend/web/$1;
        }
    }
    
    location ^~ /backend/web {
        root $project_root;
    
        location ~ /\.(ht|svn|git) {
            deny all;
        }
    
        location ~ \.php$ {
            #try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

مرتبط ها

ارسال نظر