start-installation.md 11.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
Yii simplesmente executando um único comando.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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](tutorial-advanced-app.md) 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.
26 27


28
Instalando via Composer <span id="installing-via-composer"></span>
29 30 31 32 33 34 35 36 37 38 39 40 41 42
-----------------------

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.

43 44 45
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`.

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

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

52 53 54 55 56
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.

57 58 59 60
> 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](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens).
61

62
> Dica: Se você quiser instalar a última versão de desenvolvimento do Yii, você
63
> pode usar o seguinte comando, que adiciona uma [opção de estabilidade](https://getcomposer.org/doc/04-schema.md#minimum-stability):
64 65 66 67 68 69 70
>
>     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.


71
Instalando a partir de um Arquivo Compactado <span id="installing-from-archive-file"></span>
72 73
--------------------------------------------

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

76
1. Baixe o arquivo compactado em [yiiframework.com](http://www.yiiframework.com/download/).
77
2. Descompacte o arquivo baixado em um diretório acessível pela Web.
78 79 80 81 82 83 84 85
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',
   ```
86 87


88
Outras Opções de Instalação <span id="other-installation-options"></span>
89 90 91
---------------------------

As instruções de instalação acima mostram como instalar o Yii, que também cria
92
uma aplicação Web básica que funciona imediatamente sem qualquer configuração ou 
93 94 95
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.
96 97 98

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

99
* Se você só quer instalar o *core* do framework e gostaria de construir uma aplicação
100 101 102 103 104 105 106
  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).


107
Verificando a Instalação <span id="verifying-installation"></span>
108 109 110 111 112 113 114 115 116
------------------------

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

117
Essa URL presume que você tenha instalado o Yii em um diretório chamado de `basic`,
118 119 120 121 122 123
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)

124
Você deve ver acima a página de "Congratulations!" em seu navegador. Se não vê-la,
125 126 127 128 129 130 131 132 133 134 135 136 137 138
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) 
139 140
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.
141 142


143
Configurando os Servidores Web <span id="configuring-web-servers"></span>
144 145
------------------------------

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

149 150 151 152 153 154
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.
155 156 157 158 159 160

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

165
> Informação: Definindo `basic/web` como a raiz dos documentos, você também previne os
166 167 168 169
  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.

170
> Informação: Se a sua aplicação rodará em um ambiente de hospedagem compartilhada
171 172 173 174 175 176
  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.


177
### Configuração do Apache Recomendada <span id="recommended-apache-configuration"></span>
178 179 180 181 182 183 184 185 186 187

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">
188
    # Utilize o mod_rewrite para suporte a URL amigável
189 190 191 192 193 194 195 196 197 198 199 200
    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>
```


201
### Configuração do Nginx Recomendada <span id="recommended-nginx-configuration"></span>
202 203 204 205

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`
206
com o nome de host real a servidor.
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 233 234 235 236 237 238 239 240 241 242 243 244 245

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

246
Ao usar esta configuração, você também deve definir `cgi.fix_pathinfo=0` no arquivo `php.ini`
247 248 249 250
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.