Instalando o Yii

Você pode instalar o Yii de duas maneiras, usando o Composer ou baixando um arquivo compactado. O primeiro modo é o preferido, já que permite que você instale novas extensões ou atualize o Yii simplesmente executando um único comando.

A instalação do Yii padrão resulta no download e instalação tanto do framework quanto de um template de aplicação. Um template de aplicação é uma aplicação do Yii implementando algumas recursos básicos, como a autenticação, o formulário de contato, etc. Este código é organizado de uma forma recomendada. No entanto, ele pode servir como ponto de partida para seus projetos.

Nesta e nas próximas seções, iremos descrever como instalar o Template Básico de Aplicação do Yii e como implementar novas funcionalidades em cima deste template. O Yii também fornece um outro template chamado de Template Avançado de Aplicação que é melhor usado em uma equipe de desenvolvimento que desenvolvem aplicações de multiplas camadas.

Informação: O Template Básico de Aplicação é adequado para o desenvolvimento de cerca de 90% das aplicações Web. Este template difere do Template Avançado de Aplicação principalmente na forma de como o seu código é organizado. Se você é novo no Yii, recomendamos fortemente em escolher o Template Básico de Aplicação pela sua simplicidade além de ter funcionalidades o suficiente.

Instalando via Composer

Se você já não tiver o Composer instalado, você pode fazê-lo seguindo as instruções em getcomposer.org. No Linux e no Mac OS X, você executará os seguintes comandos:

curl -s http://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

No Windows, você baixará e executará o Composer-Setup.exe.

Por favor consulte a Documentação do Composer se você encontrar quaisquer problemas ou se quiser aprender mais sobre o uso do Composer.

Se você já estiver com o Composer instalado, certifique-se de usar uma versão atualizada. Você pode atualizar o Composer executando o comando composer self-update.

Com o Composer instalado, você pode instalar o Yii executando o seguinte comando em um diretório acessível pela Web:

composer global require "fxp/composer-asset-plugin:1.0.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

O primeiro comando instaka o composer asset plugin o que permite gerenciar dependências via bower e npm package por meio do Composer. Você apenas precisa rodar este comando uma vez. O segundo comando instala o Yii em um diretório chamado basic. Você pode escolher um diretório diferente se quiser.

Observação: Durante a instalação, o Composer pode pedir suas credenciais de login do Github. Isto é normal, pelo fato do Composer precisar obter a taxa limite (rate-limit) da API para recuperar as informações de dependência de pacotes do Github. Para mais detalhes, consulte a documentação do Composer.

Dica: Se você quiser instalar a última versão de desenvolvimento do Yii, você pode usar o seguinte comando, que adiciona uma opção de estabilidade:

composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic

Perceba que a versão de desenvolvimento do Yii não deve ser usada para produção, uma vez que ela pode quebrar o seu código que está rodando.

Instalando a partir de um Arquivo Compactado

A instalação do Yii a partir de um arquivo compactado envolve três passos:

  1. Baixe o arquivo compactado em yiiframework.com.
  2. Descompacte o arquivo baixado em um diretório acessível pela Web.
  3. Modifique o arquivo config/web.php informando uma chave secreta no item de configuração cookieValidationKey (isto é feito automaticamente se você instalar o Yii pelo Composer):

    php // !!! Informe a chave secreta no item a seguir (se estiver vazio) - isto é requerido para a validação do cookie 'cookieValidationKey' => 'enter your secret key here',

Outras Opções de Instalação

As instruções de instalação acima mostram como instalar o Yii, que também cria uma aplicação Web básica que funciona imediatamente sem qualquer configuração ou modificação (out of the box). Esta abordagem é um bom ponto de partida para a maioria dos projetos, seja ele pequeno ou grande. É especialmente adequado se você acabou de começar a aprender Yii.

No entanto, existem outras opções de instalação disponíveis:

  • Se você só quer instalar o core do framework e gostaria de construir uma aplicação inteira do zero, você pode seguir as instruções conforme explicadas em Construindo uma Aplicação a Partir do Zero.
  • Se você quiser começar com uma aplicação mais sofisticada, mais adequada ao ambiente de desenvolvimento de equipes, você pode considerar instalar o Modelo de Aplicação Avançada.

Verificando a Instalação

Após a instalação, você pode usar o seu navegador para acessar a aplicação do Yii instalada através da seguinte URL:

http://localhost/basic/web/index.php

Essa URL presume que você tenha instalado o Yii em um diretório chamado de basic, diretamente no diretório raiz do servidor Web, e que o servidor Web está rodando em sua máquina local (localhost). Você pode precisar ajustá-la ao seu ambiente de instalação.

Instalação do Yii com Sucesso

Você deve ver acima a página de "Congratulations!" em seu navegador. Se não vê-la, por favor verifique se a sua instalação do PHP satisfaz os requisitos do Yii. Você pode verificar se os requisitos mínimos são atendidos através de um dos seguintes modos:

  • Use um navegador para acessar a URL http://localhost/basic/requirements.php
  • Execute os seguintes comandos:

cd basic php requirements.php

Você deve configurar a sua instalação do PHP de modo que ela atenda aos requisitos mínimos do Yii. Mais importante ainda, você deve ter o PHP 5.4 ou superior. Você também deve instalar a Extensão PDO do PHP e o driver do banco de dados correspondente (tal como pdo_mysql para bancos de dados MySQL), se a sua aplicação precisar de um banco de dados.

Configurando os Servidores Web

Informação: Você pode pular essa subseção se só estiver fazendo um test drive do Yii sem a intenção de publicá-lo em um servidor de produção.

A aplicação instalada de acordo com as instruções acima deve funcionar imediatamente com um Servidor HTTP Apache ou um Servidor HTTP Nginx, no Windows, Mac OS X ou Linux usando PHP 5.4 ou superior. O Yii 2.0 também é compatível com o HHVM do Facebook, no entanto, existem alguns casos extremos que o HHVM se comporta diferente no PHP nativo, então, terá que tomar um cuidado extra quando usar o HHVM.

Em um servidor de produção, você pode querer configurar o seu servidor Web de modo que a aplicação possa ser acessada pela URL http://www.example.com/index.php ao invés de http://www.example.com/basic/web/index.php. Tal configuração requer que você aponte a raiz dos documentos de seu servidor Web para o diretório basic/web. Você também pode querer ocultar o index.php da URL, conforme descrito na seção Roteamento e Criação de URL. Nesta sub-seção, você aprenderá como configurar o seu servidor Apache ou Nginx para atingir estes objetivos.

Informação: Definindo basic/web como a raiz dos documentos, você também previne os usuários finais de acessarem o código privado de sua aplicação e os arquivos de dados sensíveis que estão armazenados em diretórios irmãos de basic/web. Negar o acesso a estes outros diretórios é uma melhoria de segurança.

Informação: Se a sua aplicação rodará em um ambiente de hospedagem compartilhada onde você não tem permissão para alterar a configuração do seu servidor Web, você ainda pode ajustar a estrutura de sua aplicação para uma melhor segurança. Por favor consulte a seção Ambiente de Hospedagem Compartilhada para mais detalhes.

Configuração do Apache Recomendada

Use a seguinte configuração no arquivo httpd.conf do Apache ou em uma configuração de virtual host. Perceba que você pode deve substituir path/to/basic/web com o caminho real para basic/web.

# Define a raiz dos documentos como sendo "basic/web"
DocumentRoot "path/to/basic/web"

<Directory "path/to/basic/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

    # ...outras configurações...
</Directory>

Configuração do Nginx Recomendada

Você deve ter instalado o PHP como um FPM SAPI para usar o Nginx. Use a seguinte configuração do Nginx, substituindo path/to/basic/web com o caminho real para basic/web e mysite.local com o nome de host real a servidor.

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 mysite.local;
    root        /path/to/basic/web;
    index       index.php;

    access_log  /path/to/basic/log/access.log main;
    error_log   /path/to/basic/log/error.log;

    location / {
        # Redireciona tudo que não é um arquivo real para index.php
        try_files $uri $uri/ /index.php?$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.conf;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}

Ao usar esta configuração, você também deve definir cgi.fix_pathinfo=0 no arquivo php.ini de modo a evitar muitas chamadas desnecessárias ao comando stat() do sistema.

Também perceba que ao rodar um servidor HTTPS, você precisa adicionar fastcgi_param HTTPS on;, de modo que o Yii possa detectar adequadamente se uma conexão é segura.