The symfony Cookbook

Instalando o symfony no IIS

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


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.

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

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

symfony training
Be trained by symfony experts
Feb 21: Köln (Getting Started with Symfony2 - English)
Feb 27: Köln (Mastering Symfony2 - English)
Mar 05: Köln (Web Development with Symfony2 - Deutsch)
Mar 05: Montreal (Web Development with Symfony2 - English)
Mar 05: Montreal (Getting Started with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "The symfony Cookbook" in Brazilian Portuguese for the 1.1 version - Switch to version: - Switch to 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.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.

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 official user mailing-list.