Instalação

Pré-Requisitos

O requisito mínimo deste template de projetos é que seu servidor Web suporte PHP 5.4.0.

Instalação utilizando Vagrant

Esta é a forma mais simples porém, mais demorada (~20 min).

Esta forma de instalação não necessita de nenhum software pré-instalado (web-server, PHP, MySQL, etc.) - basta apenas seguir as etapas!

Manual para usuários Linux/Unix

  1. Instale o VirtualBox
  2. Instale o Vagrant
  3. Crie um token de API pessoal do GitHub
  4. Prepare o projeto:

    git clone https://github.com/yiisoft/yii2-app-advanced.git
    cd yii2-app-advanced/vagrant/config
    cp vagrant-local.example.yml vagrant-local.yml
    
  5. Introduza seu token de API pessoal no arquivo vagrant-local.yml
  6. Entre no diretório raiz do projeto:

    cd yii2-app-advanced
    
  7. Execute os comandos:

    vagrant plugin install vagrant-hostmanager
    vagrant up
    

Isso é tudo. Basta aguardar a conclusão! Após isso você pode acessar o projeto localmente pelas URLs:

Manual para usuários Windows

  1. Instale o VirtualBox
  2. Instale o Vagrant
  3. Reinicie
  4. Crie um token de API pessoal do GitHub
  5. Prepare o projeto:

    • faça do download do repositório yii2-app-advanced
    • descompacte o arquivo
    • entre no diretório yii2-app-advanced-master/vagrant/config
    • copie o arquivo vagrant-local.example.yml para vagrant-local.yml
  6. Introduza seu token de API pessoal no arquivo vagrant-local.yml
  7. Adicione as seguintes linhas no arquivo de hosts:

    192.168.83.137 y2aa-frontend.dev
    192.168.83.137 y2aa-backend.dev
    
  8. Abra o terminal (cmd.exe), entre no diretório raiz do projeto e execute os comandos:

    vagrant plugin install vagrant-hostmanager
    vagrant up
    

    (Você pode ler aqui como alterar diretórios no prompt de comando)

Isso é tudo. Basta aguardar a conclusão! Após isso você pode acessar o projeto localmente pelas URLs:

Instalação utilizando Composer

Caso você não tenha o Composer instalado, siga as instruções na seção Instalando o Yii do guia definitivo para Yii 2.0 para instala-lo.

Com o Composer instalado, você pode então instalar o template de projetos usando os seguintes comandos:

composer global require "fxp/composer-asset-plugin:~1.1.1"
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

O primeiro comando instala o composer asset plugin que permite o gerenciamento de dependências de pacotes bower e npm através do Composer. Este comando só precisa ser executado uma vez, no momento da instalação. O segundo comando instala o template avançado de projetos no diretório yii-application. Você pode escolher um diretório diferente se desejar.

Instalação a partir de um arquivo

Descompacte o arquivo baixado de yiiframework.com para um diretório com nome de advanced no diretório raiz do servidor Web.

Então siga as instruções presentes na próxima subseção.

Preparando a aplicação

Após instalar o template avançado de projetos, você deve seguir os seguintes passos para inicializar a aplicação, sendo necessário realizá-los apenas uma vez no momento da instalação.

  1. Abra um terminal de console, execute comando init e selecione a opção dev.

    /caminho/para/binario-php/php /caminho/para/aplicacao-yii/init
    

    Caso queria realizar a automação do processo por meio de um script, você pode executar o comando init em modo não interativo.

    /caminho/para/binario-php/php /caminho/para/aplicacao-yii/init --env=Production --overwrite=All
    
  2. Crie um novo banco de dados e ajuste a configuração components['db'] em common/config/main-local.php adequadamente.

  3. Abra um terminal de console e aplique as migrações de dados utilizando o comando /caminho/para/binario-php/php /caminho/para/aplicacao-yii/yii migrate.

  4. Configure a raiz dos documentos do seu servidor Web:

    • para o frontend /caminho/para/aplicacao-yii/frontend/web/ usando URL http://frontend.dev/
    • para o backend /caminho/para/aplicacao-yii/backend/web/ usando URL http://backend.dev/

    Exemplo de configuração para servidores Apache

    `apache

        <VirtualHost *:80>
            ServerName frontend.dev
            DocumentRoot "/caminho/para/aplicacao-yii/frontend/web/"
               
            <Directory "/caminho/para/aplicacao-yii/frontend/web/">
                # Utilize o mod_rewrite para suporte a URL amigável
                RewriteEngine on
                # Se um diretório ou arquivo existe, usa a requisição diretamente
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                # Caso contrário, encaminha a requisição para index.php
                RewriteRule . index.php
    
                # usar index.php com arquivo index
                DirectoryIndex index.php
    
                # ...outras configurações...
            </Directory>
        </VirtualHost>
           
        <VirtualHost *:80>
            ServerName backend.dev
            DocumentRoot "/caminho/para/aplicacao-yii/backend/web/"
               
            <Directory "/caminho/para/aplicacao-yii/backend/web/">
                # Utilize o mod_rewrite para suporte a URL amigável
                RewriteEngine on
                # Se um diretório ou arquivo existe, usa a requisição diretamente
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                # Caso contrário, encaminha a requisição para index.php
                RewriteRule . index.php
    
                # usar index.php com arquivo index
                DirectoryIndex index.php
    
                # ...outras configurações...
            </Directory>
        </VirtualHost>
    

    `

    Exemplo de configuração para servidores nginx:

    `nginx

        server {
            charset utf-8;
            client_max_body_size 128M;
           
            listen 80; ## listen for ipv4
            #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
           
            server_name frontend.dev;
            root        /caminho/para/aplicacao-yii/frontend/web/;
            index       index.php;
           
            access_log  /caminho/para/aplicacao-yii/log/frontend-access.log;
            error_log   /caminho/para/aplicacao-yii/log/frontend-error.log;
           
            location / {
                # Redireciona tudo que não é um arquivo real para index.php
                try_files $uri $uri/ /index.php$is_args$args;
            }
           
            # descomente para evitar o processamento de chamadas a arquivos estáticos não existentes pelo Yii
            #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
            #    try_files $uri =404;
            #}
            #error_page 404 /404.html;
           
            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 ~ /\.(ht|svn|git) {
                deny all;
            }
        }
            
        server {
            charset utf-8;
            client_max_body_size 128M;
           
            listen 80; ## listen for ipv4
            #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
           
            server_name backend.dev;
            root        /caminho/para/aplicacao-yii/backend/web/;
            index       index.php;
           
            access_log  /caminho/para/aplicacao-yii/log/backend-access.log;
            error_log   /caminho/para/aplicacao-yii/log/backend-error.log;
           
            location / {
                # Redireciona tudo que não é um arquivo real para index.php
                try_files $uri $uri/ /index.php$is_args$args;
            }
           
            # descomente para evitar o processamento de chamadas a arquivos estáticos não existentes pelo Yii
            #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
            #    try_files $uri =404;
            #}
            #error_page 404 /404.html;
           
            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 ~ /\.(ht|svn|git) {
                deny all;
            }
        }
    

    `

  5. Altere o arquivo de hosts para apontar o domínio do seu servidor.

    • Windows: c:\Windows\System32\Drivers\etc\hosts
    • Linux: /etc/hosts

    Adicione as seguintes linhas:

    127.0.0.1   frontend.dev
    127.0.0.1   backend.dev
    

Para se autenticar na aplicação é necessário que primeiro, você se registre com qualquer um dos seus endereços de e-mail, usuário e senha. Então, você pode se autenticar na aplicação com o mesmo endereço de e-mail e senha a qualquer momento.

PS: caso queira que o template avançado de projetos utilize um único domínio, sendo / o frontend e /admin o backend, consulte as configurações e documentações por Oleg Belostotskiy (apenas inglês).