The symfony Cookbook

Instalando o symfony no IIS

Be trained by symfony experts
Dec 10: Paris (1.1 - Francais)
Dec 10: Atlanta (1.1 - English)
Dec 17: Montreal (1.1 - Francais)
Jan 21: Paris (1.1 - Francais)
Feb 18: Paris (1.1 - Francais)
and more...

About

You are currently reading "The symfony Cookbook" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.

Search


powered by google

Chapter Content

De que precisamos?

Instalar o symfony

Iniciando um projeto

Configurando o IIS

Configurando URL rewriting

Configurando o symfony

Configurando uma aplicação symfony com diretório específico

You are currently browsing "The symfony Cookbook" in for the 1.1 version. Switch to another version: Switch to another language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed.

Sim, existe algo mais que o Apache para servidores web. É por isso que nós vamos ver esse tutorial sobre como instalar o symfony no IIS.

De que precisamos?

Instalar o symfony

Primeiramente, atualize o pacote do pear, porque você precisa de pelo menos da versão 1.4.0 para utilizar o canais:

$ pear upgrade PEAR

Então, adicione o canal do symfony:

$ pear channel-discover pear.symfony-project.com

Instale a versão do symfony >= 0.5.73:

$ pear install symfony/symfony-beta

Nota: se você não possui o pacote phing, você precisa instalar:

$ pear install http://phing.info/pear/phing-current.tgz

Saiba mais sobre a instalação do symfony

Iniciando um projeto

Para criar o diretório do seu projeto (vamos usar c:\myproject) e a estrutura básica para uma aplicação chamada myapp, abra o console (command) e digite:

$ cd c:\myproject
$ symfony init-project myproject
$ symfony init-app myapp

Configurando o IIS

Vamos considerar dois tipo de configuração por agora:

Adicionaremos um diretório virtual no diretório principal do servidor. Vamos nomeá-lo de sf e configurar ele para o caminho data\symfony\web\sf dentro do diretório do pear. Se você tem o PHP5 instalado na pasta c:\php5, o caminho será C:\php5\PEAR\pear\data\symfony\web\sf.

Configurando URL rewriting

Vamos assumir que o módulo isapi/rewrite está instalado e funcionando no nosso servidor. Nós precisamos configurar apenas nosso httpd.ini. Essa configuração vai depender da opção escolhida anteriormente:

Reinicie o IIS.

Configurando o symfony

O último passo é editar o arquivo settings.yml que fica no diretório config do projeto symfony (c:\myproject\apps\myapp\config\). Você não vai se surpreender se encontrar uma pequena diferença nos dois casos:

Dica importante: se você não está usando o módulo isapi/rewrite/, o HTTP_X_REWRITE_URL pode estar errado. Você vai precisar fazer um teste específico para configurar o symfony. Abra o arquivo myapp_dev.php (ou qualquer outro nome application_dev.php) no diretório web do seu projeto e adicione as 2 linhas seguintes:

print phpinfo();
die();

Agora abra a URL: http://myproject/myapp_dev.php/test/rewrite (ou http://myserver/myproject/myapp_dev.php/test/rewrite dependendo da sua configuração), e veja as variáveis do PHP. Se _SERVER["PATH_INFO"] for igual a /test/rewrite, remova a linha que contém o path_info_key do settings.yml, senão você vai ter que achar o nome da variável que contém o valor (HTTP_X_REWRITE_URL para isapi/rewrite/). Depois que achar, remova as 2 linhas acima e pronto.

Configurando uma aplicação symfony com diretório específico

Um projeto symfony pode conter diversas aplicações. Por padrão, todas as aplicações podem compartilhar o mesmo diretório de css e uploads. Vamos trocar isso e criar um diretório específico para nossa aplicação myapp. Considerando as opções anteriores, vamos interpretar as seguintes URLs: http://myproject/myapp e http://myserver/myapp. Agora não temos mais diferença na configuração das próximas opções.

Vamos criar um subdiretório myapp dentro do diretório web do nosso projeto (no nosso caso c:\myproject\web\myapp).

Vamos copiar os arquivos index.php e myapp_dev.php para esse diretório e criar mais dois diretórios lá dentro, css e uploads.

Na tela de administração do IIS, vamos criar um novo diretório virtual chamado myapp. Configure esse diretório apontando para c:\myproject\web\myapp.

Adicione as linhas abaixo no final do httpd.ini:

  #[Configuration for direct myapp access]
  # we skip all files with .something except .html
  RewriteCond URL /myapp/.*\..+$
  RewriteCond URL (?!/myapp/.*\.html$).*
  RewriteRule /myapp/(.*) /myapp/$1 [L]

  # we keep the .php files unchanged
  RewriteRule /myapp/(.*\.php)(.*) /myapp/$1$2 [L]

  # finally we redirect to our front web controller
  RewriteRule /myapp/(.*) /myapp/index.php [L]

Edite o settings.yml da aplicação myapp (c:\myproject\apps\myapp\config\settings.yml) e tenha certeza das seguintes linhas:

  all:
   .settings:
     path_info_key:          HTTP_X_REWRITE_URL

(veja as considerações anteriores para HTTP_X_REWRITE_URL)

Finalmente, vamos editar nossos front controllers (index.php e myapp_dev.php em c:\myproject\web\myapp) e trocar:

define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/..'));
 

para:

define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/../..'));
 

É isso ai. Terminamos.

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the user mailing-list or to the forum.