start-installation.md 10.4 KB
Newer Older
1 2 3 4 5
Instalando o Yii
================

Você pode instalar o Yii de duas maneiras, usando o [Composer](http://getcomposer.org/)
ou baixando um arquivo compactado. O primeiro modo é o preferido, já que permite
6
que você instale novas [extensões](structure-extensions.md) ou atualize o
7 8 9
Yii simplesmente executando um único comando.

> Note: Ao contrário do Yii 1, as instalações padrão do Yii 2 resultam em
10
tanto o framework quanto um esqueleto de aplicação sendo baixados e instalados.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27


Instalando via Composer <a name="installing-via-composer"></a>
-----------------------

Se você já não tiver o Composer instalado, você pode fazê-lo seguindo as instruções
em [getcomposer.org](https://getcomposer.org/download/). 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](https://getcomposer.org/Composer-Setup.exe).

Por favor consulte a [Documentação do Composer](https://getcomposer.org/doc/) se
você encontrar quaisquer problemas ou se quiser aprender mais sobre o uso do Composer.

28 29 30
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`.

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

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

37 38 39 40 41 42 43 44 45 46 47 48
O primeiro comando instaka o [composer asset plugin](https://github.com/francoispluchino/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.

> Nota: Durante a instalação do Yii pode acontecer que o Composer peça suas 
> credenciais de login do Github por ultrapassar taxa limite (rate-limit) da API do Github.
> Isso é normal pois o Composer necessita obter muitas informações de todos os 
> pacotes no Github.
> Logando no Github incrementa a taxa limite (rate-limit) da API para que o Composer
> possa continuar o seu trabalho. Para mais detalhes, por favor consulte a 
> [documentação do Composer](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens).
49 50

> Tip: Se você quiser instalar a última versão de desenvolvimento do Yii, você
51
> pode usar o seguinte comando, que adiciona uma [opção de estabilidade](https://getcomposer.org/doc/04-schema.md#minimum-stability):
52 53 54 55 56 57 58 59 60 61
>
>     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 name="installing-from-archive-file"></a>
--------------------------------------------

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

64
1. Baixe o arquivo compactado em [yiiframework.com](http://www.yiiframework.com/download/).
65
2. Descompacte o arquivo baixado em um diretório acessível pela Web.
66 67 68 69 70 71 72 73
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',
   ```
74 75 76 77 78 79


Outras Opções de Instalação <a name="other-installation-options"></a>
---------------------------

As instruções de instalação acima mostram como instalar o Yii, que também cria
80 81 82
uma aplicação Web básica que funciona imediatamente sem qualquer configuração ou 
modificação (*out of the box*). Este método é um bom ponto de início para projetos 
pequenos ou para quando você começar a aprender o Yii.
83 84 85

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

86
* Se você só quer instalar o *core* do framework e gostaria de construir uma aplicação
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
  inteira do zero, você pode seguir as instruções conforme explicadas em
  [Construindo uma Aplicação a Partir do Zero](tutorial-start-from-scratch.md).
* 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](tutorial-advanced-app.md).


Verificando a Instalação <a name="verifying-installation"></a>
------------------------

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
```

104
Essa URL presume que você tenha instalado o Yii em um diretório chamado de `basic`,
105 106 107 108 109 110
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](images/start-app-installed.png)

111
Você deve ver acima a página de "Congratulations!" em seu navegador. Se não vê-la,
112 113 114 115 116 117 118 119 120 121 122 123 124 125
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](http://www.php.net/manual/en/pdo.installation.php) 
126 127
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.
128 129 130 131 132


Configurando os Servidores Web <a name="configuring-web-servers"></a>
------------------------------

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

136 137 138 139 140 141
A aplicação instalada de acordo com as instruções acima deve funcionar imediatamente 
com um [Servidor HTTP Apache](http://httpd.apache.org/) ou um [Servidor HTTP Nginx](http://nginx.org/),
no Windows, Mac OS X ou Linux usando PHP 5.4 ou superior. O Yii 2.0 também é compatível
com o [HHVM](http://hhvm.com/) 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.
142 143 144 145 146 147

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
148
[Roteamento e Criação de URL](runtime-routing.md). Nesta sub-seção, você
149 150 151
aprenderá como configurar o seu servidor Apache ou Nginx para atingir estes
objetivos.

152
> Informação: Definindo `basic/web` como a raiz dos documentos, você também previne os
153 154 155 156
  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.

157
> Informação: Se a sua explicação rodará em um ambiente de hospedagem compartilhada
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
  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](tutorial-shared-hosting.md)
  para mais detalhes.


### Configuração do Apache Recomendada <a name="recommended-apache-configuration"></a>

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">
175
    # Utilize o mod_rewrite para suporte a URL amigável
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
    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 <a name="recommended-nginx-configuration"></a>

Você deve ter instalado o PHP como um [FPM SAPI](http://php.net/install.fpm) para
usar o [Nginx](http://wiki.nginx.org/). Use a seguinte configuração do Nginx,
substituindo `path/to/basic/web` com o caminho real para `basic/web` e `mysite.local`
193
com o nome de host real a servidor.
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232

```
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;
    }
}
```

233
Ao usar esta configuração, você também deve definir `cgi.fix_pathinfo=0` no arquivo `php.ini`
234 235 236 237
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.