Dev (Back & Front)ARTIGO

Symfony 1.4 no Ubuntu: configurando o servidor apache, instalando e criando uma aplicação

Symfony é um framework open sourceOpen source71 conteúdosComo o Open Source Está Liberando o Poder da Automação para TodosDev (Back & Front) · out 2025Código aberto: programadores criam software da NASA sem saberDev (Back & Front) · abr 2021N8N: O que é a ferramenta open source que está revolucionando a automação em TI?Dev (Back & Front) · dez 2025Ver tudo em Dev (Back & Front) escrito em PHP 5, desenvolvido com objetivo de acelerar a produção de aplicações web. Segue o padrão MVC (Model View Control), com  camadas bem definidas, proporcionando uma melhor organização do código fonte.

Benefícios:

Requisitos usados neste artigo:

Mãos à obra! Primeiramente, demonstrarei como configurar um servidor virtual no Ubuntu.

A partir do Terminal e liberar as permissões de administrador para o usuário.

$ sudo su 

Vamos preparar o local onde ficará o projeto. Prefiro inserir o projeto na pasta local do meu usuário. Então, vamos criar um diretório chamado “localhost” na pasta do usuário local ou qualquer outro nome que você possa identificar os seus projetos web. Pelo Terminal, navegue até esta pasta e crie dentro dela a estrutura necessária para o projeto Symfony. Neste caso, chamarei o projeto de “imasters”.

$ mkdir –p imasters/lib/vendor

Agora vamos configurar o servidor local dentro do Apache2 para definir o caminho do meu projeto. Ou seja, quando digitar no navegador um endereço deverá ser reconhecido e apontado para os arquivos dentro do diretório do projeto “imasters”.

No Terminal, digite o seguinte comando:

$ gedit /etc/apache2/httpd.conf

Copie e cole o código abaixo nesse arquivo, substituindo pelo seu nome de usuário do Ubuntu. Onde estiver “gaspar” substituir pelo seu usuário:

<VirtualHost *:80>
ServerName imasters.tut.br
DocumentRoot /home/gaspar/localhost/imasters/web
<Directory /home/gaspar/localhost/imasters/web >
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

Agora configuramos o arquivo hosts, onde estão os endereços a serem reconhecidos como endereços do servidor local.

$ gedit /etc/hosts 

Copie e cole o seguinte código neste arquivo logo abaixo da linha onde contém o trecho “localhost”

127.0.0.1       imasters.tut.br

Vamos reiniciar o servidor local antes de criarmos o nosso projeto.

$ /etc/init.d/apache2 restart 

Criando o projeto “iMasters”

Vamos navegar até o endereço http://www.symfony-project.org/installation e ir até a linha “Download”, coluna “Symfony 1.4” e clicar em “Source .tgz”.

Após fazer o download, localize-o pelo nome “symfony-1.4.11.tgz”. No meu caso está no diretório “Downloads”. Através da linha de comando, vou copiá-lo até o devido local dentro do meu projeto.

$ cp  ../Downloads/symfony-1.4.11.tgz imasters/lib/vendor

Vamos navegar pelo Terminal até o endereço do arquivo e descompactar o arquivo dentro desta pasta indicada pela documentação do symonfy, “lib/vendor/symfony”.

$ cd imasters/lib/vendor
$ tar zxpf symfony-1.4.11.tgz

Agora vamos re nomear a pasta “symfony-1.4.11” para apenas “symfony”.

$ mv symfony-1.4.11 symfony

Não se esqueça de excluir o arquivo .tgz que ficou nesta pasta.

$ rm symfony-1.4.11.tgz

Agora posicionaremos o cursor do Terminal até a pasta do projeto. Ou seja, o diretório “imasters”.

$ cd ../../

Neste momento, basta criar o projeto com o seguinte comando.

$ lib/vendor/symfony/data/bin/symfony generate:project imasters

Após executar o comando acima, observe que o uma série de pastas e arquivos serão geradas dentro do diretório “imasters”. Mas ainda não será possível visualizar o projeto no navegador. Por que não criamos uma aplicação.

Vamos criar uma aplicação chamada “frontend”, através da linha de comando é claro. Para executar esta ação você já utilizará o próprio comando do symfony.

$ php symfony generate:app frontend

Novamente uma estrutura de arquivos será criado. E, para visualizarmos perfeitamente. Vamos finalizar com apenas um comando que mostrará na integra o página padrão do projeto criada. Ou seja, vamos copiar as imagens e css para a pasta publica (“web”) do projeto.

$ cp –R lib/vendor/symfony/data/web/sf web/

Pronto basta abrir o seu navegador e digitar a seguinte url: http://imasters.tut.br

Você verá algo como a imagem abaixo:


Depois de instalar e configurar o Symfony Framework no Ubuntu, vamos criar nossa primeira aplicação. O objetivo é configurar a página inicial do projeto. Criaremos o módulo home e entenderemos como o symfony realiza o “roteamento” das urls – routing.

Umas das principais vantagens da URL amigável é a segurança gerada no seu site, pois a idéia é que seja eliminada do endereço a linguagem que foi aplicada no processo de desenvolvimento.

Ao invés de www.seusite.com.br/home.php teremos www.seusite.com.br/home

Com symfony isso é muito simples de configurar e você poderá fazer diversas adaptações, passando slugs ao invés de id numérico, por meio do método GET. Além disso, poderá configurar facilmente urls para sites multilíngües.

Primeiramente vamos entender estrutura do nosso projeto na imagem abaixo:


Você poderá usar o seu editor preferido para trabalhar com o projeto. Não se esqueça de informar que é um projeto UTF-8 e PHP 5.2+ para não gerar conflitos com a análise dos projetos, conforme algumas IDEs fazem.

Vamos abrir o projeto com o editor Gedit e verificar a estrutura da aplicação. Ou seja, a pasta “apps” onde será realizado todo o grande trabalho, para cada aplicação que for gerada.


Criaremos o novo módulo chamado home, que será o nosso modulo default. Dentro do diretório “modules” criaremos o diretório “home”, e dentro dele outros dois diretórios, “actions” e “templates”. Actions é a controladora do módulo e Templates é a Visão. Ou seja, toda a regra de negócio e ações serão definidas em “actions”, mais precisamente em um arquivo chamado “actions.class.php”. E para cada ação criada no controlador do módulo home (“actions.class.php”) será criado uma visão onde estará o HTML em “templates” com o mesmo nome da ação (no caso “indexSuccess.php”).

Dentro da pasta “actions” crie um arquivo chamado “actions.class.php” e insira o código abaixo:

<?php
/***** actions.class **********
controlador do módulo home
******************************/
class homeActions extends sfAction
{
public function executeIndex(sfWebRequest $request){
$this->dinamicos = "Hello World";
$this->outraVar = "Bem vindos à página inicial da sua primeira aplicação em Symfony";
$this->maisOutra = "Hoje é ". date('d/m/Y');
}
}

Agora, em “templates”, vamos criar outro arquivo, que mostrará as informações da controladora na visão. Ou seja, representará a ação inicial do modulo home. “index.Success.php” – copie e cole nesse o código abaixo.

<div id="homepage">
<h1><?php echo $dinamicos ?></h1>
<p><?php echo $outraVar ?></p>
<hr>
<small><?php echo $maisOutra ?></small>
</div>

Antes de realizar o teste vejamos como ficou a estrutura.

Agora você irá executar o comando mais utilizado no symfony, que é a limpeza do cache. Abra o terminal e navegue até a pasta do projeto. Ou seja, vá até o diretório “imasters” e execute a linha abaixo:

$ php symfony cc

Abra o seu navegador e execute a seguinte URL: http://imasters.tut.br/index.php/home/index você verá como a imagem abaixo:

Para ajustarmos a url e torná-la amigável deveremos ajustar o arquivo “routing.yml”, que está dentro do diretório “config” da aplicação frontend. Vamos editar este arquivo.

Nas linhas 4 até 7, você vê:

# default rules
homepage:
url: /
param: { module: default, action: index }
Editamos, mudando o default por home:
# default rules
homepage:
url: /
param: { module: home, action: index }

Novamente execute o comando para Limpar o Cache do projeto, pois foi alterado um arquivo YAML de configuração.

$ php symfony cc

Agora em seu navegador modifique a URL por esta http://imasters.tut.br/

Explicando

A página inicial da aplicação estava mostrando uma tela padrão do symfony. Eu apenas configurei um módulo que eu desenvolvi especialmente para a página inicial do meu projeto.

YAML: o arquivo de configuração das urls, chamado “routing.yml” é um arquivo que precisa, necessariamente, ser identado. YAML é uma linguagem identada. Ou seja, deve haver sempre dois espaços (executados obrigatoriamente pela barra de espaços do seu teclado) aos elementos subordinados. Na prática, a palavra homepage: é um roteador que levará a uma url vazia e será apontado para o módulo “home” e a ação “index”. Então “url” e “param” são subordinados à homepage. Eles devem ser identados por dois espaços.

No próximo artigo explicarei como configurar melhor a aplicação, carregar os headers e trabalhar com componentes incluídos e partes.

Por favor, deixe sua dúvida ou sugestão.

é estudante de Análise e Desenvolvimento de Sistemas em Porto Alegre e Programador na GetNet Tecnologia. Explorador de novas tecnologias, acumula em seu histórico experiências com linguagens PHP OO, Python e Action Script 3. Frameworks Symfony, Zend e Django. É colaborador do iMasters desde 2006.

Ver perfil