Minimalne wymagania tego szablonu projektu dla serwera to obsługa PHP 5.6.0.
Jeśli nie posiadasz zainstalowanego Composera, zapoznaj się najpierw z rozdziałem Przewodnika Instalacja Yii.
Po zainstalowaniu Composera możesz zainstalować aplikację korzystając z poniższych komend:
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application
Komenda instaluje zaawansowaną aplikację w folderze o nazwie yii-application. Możesz, rzecz jasna, wybrać 
dowolną inną nazwę.
Wypakuj plik archiwum pobrany ze strony yiiframework.com do folderu advanced, 
znajdującego się bezpośrednio w głównym folderze serwera Web.
Następnie przejdź do instrukcji w sekcji poniżej.
Po zainstalowaniu aplikacji konieczne jest wykonanie poniższych kroków, aby ją poprawnie zainicjalizować. Należy to zrobić raz na każdym nowym środowisku.
Otwórz terminal konsoli, uruchom komendę init i wybierz dev dla środowiska deweloperskiego (lub prod dla produkcyjnego).
/path/to/php-bin/php /path/to/yii-application/init
W przypadku zautomatyzowanego procesu z użyciem skryptu, możesz uruchomić init w trybie nieinteraktywnym.
/path/to/php-bin/php /path/to/yii-application/init --env=Production --overwrite=All --delete=All
Stwórz nową bazę danych i zmodyfikuj odpowiednio jej dane w kluczu components['db'] w pliku common/config/main-local.php.
Uruchom migrację w terminalu konsoli za pomocą komendy /path/to/php-bin/php /path/to/yii-application/yii migrate.
Ustaw docelowe foldery serwera Web:
/path/to/yii-application/frontend/web/ z użyciem adresu URL http://frontend.test//path/to/yii-application/backend/web/ z użyciem adresu URL http://backend.test/W przypadku serwera Apache konfiguracja może wyglądać następująco:
    <VirtualHost *:80>
        ServerName frontend.test
        DocumentRoot "/path/to/yii-application/frontend/web/"
           
        <Directory "/path/to/yii-application/frontend/web/">
            # uruchom mod_rewrite dla obslugi 'ladnych' adresow URL
            RewriteEngine on
            # jesli folder lub plik istnieje, po prostu wywolaj go
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            # w pozostalych przypadkach przekieruj na index.php
            RewriteRule . index.php
            # ustaw index.php jako plik indeksowy
            DirectoryIndex index.php
            # ...pozostale ustawienia...
            # Apache 2.4
            Require all granted
               
            ## Apache 2.2
            # Order allow,deny
            # Allow from all
        </Directory>
    </VirtualHost>
       
    <VirtualHost *:80>
        ServerName backend.test
        DocumentRoot "/path/to/yii-application/backend/web/"
           
        <Directory "/path/to/yii-application/backend/web/">
            # uruchom mod_rewrite dla obslugi 'ladnych' adresow URL
            RewriteEngine on
            # jesli folder lub plik istnieje, po prostu wywolaj go
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            # w pozostalych przypadkach przekieruj na index.php
            RewriteRule . index.php
            # ustaw index.php jako plik indeksowy
            DirectoryIndex index.php
            # ...pozostale ustawienia...
            # Apache 2.4
            Require all granted
               
            ## Apache 2.2
            # Order allow,deny
            # Allow from all
        </Directory>
    </VirtualHost>
W przypadku serwera nginx:
    server {
        charset utf-8;
        client_max_body_size 128M;
        listen 80; ## nasluchuj dla ipv4
        #listen [::]:80 default_server ipv6only=on; ## nasluchuj dla ipv6
        server_name frontend.test;
        root        /path/to/yii-application/frontend/web/;
        index       index.php;
        access_log  /path/to/yii-application/log/frontend-access.log;
        error_log   /path/to/yii-application/log/frontend-error.log;
        location / {
            # przekieruj wszystko, co nie jest rzeczywistym plikiem, na index.php
            try_files $uri $uri/ /index.php$is_args$args;
        }
        # odkomentuj ponizsze, aby uniknac przetwarzania wywolan nieistniejacych statycznych plikow przez Yii
        #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        #    try_files $uri =404;
        #}
        #error_page 404 /404.html;
        # zablokuj wywolywanie plikow php w folderze /assets
        location ~ ^/assets/.*\.php$ {
            deny all;
        }
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass 127.0.0.1:9000;
            #fastcgi_pass unix:/var/run/php5-fpm.sock;
            try_files $uri =404;
        }
       
        location ~* /\. {
            deny all;
        }
    }
        
    server {
        charset utf-8;
        client_max_body_size 128M;
       
        listen 80; ## nasluchuj dla ipv4
        #listen [::]:80 default_server ipv6only=on; ## nasluchuj dla ipv6
       
        server_name backend.test;
        root        /path/to/yii-application/backend/web/;
        index       index.php;
       
        access_log  /path/to/yii-application/log/backend-access.log;
        error_log   /path/to/yii-application/log/backend-error.log;
       
        location / {
            # przekieruj wszystko, co nie jest rzeczywistym plikiem, na index.php
            try_files $uri $uri/ /index.php$is_args$args;
        }
       
        # odkomentuj ponizsze, aby uniknac przetwarzania wywolan nieistniejacych statycznych plikow przez Yii
        #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        #    try_files $uri =404;
        #}
        #error_page 404 /404.html;
        # zablokuj wywolywanie plikow php w folderze /assets
        location ~ ^/assets/.*\.php$ {
            deny all;
        }
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass 127.0.0.1:9000;
            #fastcgi_pass unix:/var/run/php5-fpm.sock;
            try_files $uri =404;
        }
       
        location ~* /\. {
            deny all;
        }
    }
Zmodyfikuj plik hostów, aby wskazać domenę na serwerze.
c:\Windows\System32\Drivers\etc\hosts/etc/hostsDodaj poniżesz linie:
127.0.0.1   frontend.test
127.0.0.1   backend.test
Aby zalogować się do aplikacji, najpierw musisz się zarejestrować używając dowolnego adresu email, nazwy użytkwnika i hasła. Po udanej rejestracji możesz się zalogować używając podanych danych.
Note: jeśli chcesz używać zaawansowanego szablonu w pojedynczej domenie (gdzie
/wskazuje na front-end, a/adminna back-end), zapoznaj się z rozdziałem Korzystanie z zaawansowanego szablonu projektu w środowisku współdzielonym.
Poniższy sposób jest najłatwiejszy, ale za to długi (ok. 20 minut).
Ten sposób nie wymaga instalowania odpowiedniego oprogramowania (tj. serwera Web, PHP, MySQL itp.) - po prostu wykonuj kolejne kroki!
Przygotuj projekt:
git clone https://github.com/yiisoft/yii2-app-advanced.git
cd yii2-app-advanced/vagrant/config
cp vagrant-local.example.yml vagrant-local.yml
vagrant-local.ymlZmień folder na główny folder projektu:
cd yii2-app-advanced
Uruchom komendy:
vagrant plugin install vagrant-hostmanager
vagrant up
To wszystko. Teraz tylko musisz poczekać na zakończenie procesu! Po wszystkim możesz przejść do lokalnego projektu za pomocą adresów URL:
Przygotuj projekt:
yii2-app-advanced-master/vagrant/configvagrant-local.example.yml do vagrant-local.ymlvagrant-local.ymlDodaj poniższe linie do pliku hostów:
192.168.83.137 y2aa-frontend.test
192.168.83.137 y2aa-backend.test
Otwórz terminal (cmd.exe), zmień folder na folder główny projektu i uruchom komendy:
vagrant plugin install vagrant-hostmanager
vagrant up
(Przeczytaj tutaj, w jaki sposób zmienić foldery w terminalu konsoli)
To wszystko. Teraz tylko musisz poczekać na zakończenie procesu! Po wszystkim możesz przejść do lokalnego projektu za pomocą adresów URL: