احسان رضایی

یک توسعه دهنده

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

در yii2 , / تاریخ ارسال 05-10-1395 / 0 نظر / آخرین ویرایش 27-07-1402

به منظور پیکره بندی 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;
    }
}

پیشنهاد

کتاب‌ها

کتاب الگوهای طراحی به بیان ساده(design patterns / دیزاین پترن)

در مهندسی نرم افزار، design patterns(الگوهای طراحی) راه حل‌های قابل استفاده برای مشکلاتی هستند که معمولاً در طراحی نرم‌افزار اتفاق می افتند.

طرح های از پیش ساخته شده‌ای که می‌توانید برای حل مشکلات آن‌ها را سفارشی کنید. شما نمی‌توانید یک الگو را با جستجو در stackoverflow پیدا و در برنامه خود کپی کنید. الگو ها یک قطعه کد خاص نیستند، مفاهیم کلی برای حل مشکلات خاص هستند. شما باید با درک این مفاهیم آن‌ها را در برنامه خود پیاده‌سازی کنید.

کتاب refactoring / ریفکتورینگ

Refactoring مجموعه‌ای از تکنیک‌هاست که به منظور اصلاح و بهبود کدهای قبلی بدون تغییر در عملکرد و رفتارشان جهت خوانایی، کارامدی و قابلیت نگهداری بیشتر انجام می‌شود.

در کتاب Refactoring اثر Martin Fowler نوشته شده: refactoring تکنیک مرتب/منظم سازی برای تجدید ساختار کد موجود است. تغییر ساختار داخلی کد بدون تغییر رفتار خارجی آن.

refactoring یک سرمایه‌گذاری و راه حلی برای مقابله با کد کثیف و بدهی فنی است که باعث کاهش هزینه‌های توسعه نرم‌افزار در آینده خواهد شد.

ارسال نظر