Marcus VBP

Desenvolvimento de Interfaces WEB

Comentários recentes

Ativando o Recurso URLs Limpas no seu Localhost no Ubuntu

01 2007

Salve amigos.

Hoje eu vou dar uma dica muito legal. Faz muito tempo que eu tentava, sem sucesso, utilizar o recurso URLs Limpas (clean urls) no meu localhost, mas eu nunca consegui. Até hoje.

Parte da culpa por nunca der dado certo era minha, e como eu já compartilhei em outro artigo a forma que eu utilizo para rodar minhas páginas localmente (criando um alias para uma pasta dentro da minha pasta pessoal), me senti na obrigação de compartilhar esta informação para "consertar" o que posso ter criado.

As urls limpas são um recurso desnecessário quando se está trabalhando localmente, mas é interessante ter esta possibilidade para pode ser realizar testes com uma agilidade maior.

Primeira Etapa: Ativando o mod_rewrite no Apache 2

É claro que eu estou considerando que você tem o Apache instalado e configurado no seu computador. Caso você não tenha, você pode seguir este tutorial.

O mod_rewrite é um módulo do Apache que permite que as urls possam ser re-escritas, através de uma regra escrita no arquivo .htaccess do site. Através do mod_rewrite eu posso, por exemplo, re-escrever as urls para que as extensões .html e .php para que não apareçam, ou mesmo posso re-escrever a url para que a extensão .php seja exibida como .asp. Mas ela é comumente utilizada para tornar as urls mais amigáveis e fáceis de se decorar (além de ajudar na indexação do site em mecanismos de busca).

O mod_rewrite já vem junto com o Apache, a única coisa que é necessário fazer é ativa-lo. Ele está armazenado na pasta /etc/apache2/mods-available/, para ativa-lo, bastar criar um link para o módulo dentro da pasta mods-enabled. Abra o terminal e digite:

sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

Agora, o próximo passo é dizer ao Apache que as diretrizes do .htaccess devem ser priorizadas sobre as diretrizes padrão. No terminal, digite:

sudo gedit /etc/apache2/sites-available/default

Agora procure por algo assim:

citação:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>

Altere o valor de AllowOverride para All.

Agora será necessário reiniciar o Apache:

sudo /etc/init.d/apache2 reload

Ou, se você seguiu o meu tutorial, pode utilizar o comando:

sudo service apache2 restart

Pronto, em teoria, já está pronto, mas se você seguiu uma das minhas dicas neste tutorial, a de mapear a pasta do Apache para uma pasta dentro da sua pasta pessoal, o recurso de url limpas não irá funcionar.

Segunda Etapa: Solucionando o problema

Primeiro, vou dizer qual o motivo de mapear o Apache para fora do diretório padrão (que é /var/www). Você evita de espalhar arquivos pessoais por todo o sistemas, concentrando-os apenas na sua pasta pessoal. Assim você não corre o risco de, num eventual backup para formatação, você fazer cópia apenas da sua pasta home, e esquecer os arquivos na pasta www.

Só que, até onde consegui fazer, o recurso de URLs Limpas só funciona nos sites salvos dentro da pasta padrão.

Existe uma forma muito simples de resolver o problema e ainda usufruir das vantagens de manter seus arquivos dentro da sua home.

O primeiro passo é dar permissões de escrita para a pasta /var/www, com um simples comando de terminal:

sudo chmod 777 /var/www

Você também pode executar o Nautilus como root e mudar as permissões em modo gráfico, mas no terminal é bem mais rápido.

E para finalizar, crie um atalho para a pasta do site que você quer utilizar url limpas dentro da pasta /var/www. Este atalho pode ser feito facilmente abrindo dois Nautilus, um apontando para a pasta /var/www e outro aberto na pasta que contém a pasta do site.

Clique sobre a pasta do site e a arraste para a janela do Nautilus aberta em /var/www, utilizando o botão do meio do mouse (geralmente é o rollover). Ao soltar o botão, vai aparecer um menu de contexto. Você escolherá a opção Criar Link Aqui.

Pronto. Agora você já pode utilizar URL Limpas no seu localhost, e ainda vai poder manter seus arquivos seguros na sua pasta home. É só lembrar que sempre que você quiser utilizar o recurso localmente, você deve fazer um atalho para a pasta dentro da pasta /var/www.

com e sem o recurso de URLs Limpas

Até a próxima.

RSS dos coment?ios deste post

6 Comentários:

imagem de Nelson

1. Nelson*

Disse em seg, 31/12/2007 - 08:11

Valeu pelo post. Apanhei um bocado antes de ativar o recurso de url limpas. Li muita tralha inútil antes de chegar a seu post. Parabéns.

imagem de Daniel Docki

2. Daniel Docki*

Disse em qua, 09/01/2008 - 14:45

Marcus, primeira vez visitanto seu blog e estou testando o drupal em minha maquina local, e estou tentando colocar URL Limpas, e antes de colocar URL Limpas, eu segui o seu tutorial de colocar a pasta /var/www/ em minha pasta pessoal que por acaso ficou assim /home/danie/.www/

mas depois fui tentar fazer essas URL Limpas, consegui ativar no drupal, só que quando vou entrar em algum link interno, por exemplo o taxonomy...ele fica assim ow...

Not Found

The requested URL /home/daniel/.www/drupal/admin/content/taxonomy was not found on this server.

Alguma coisa deve ter saido errado porque era para ele fazer assim

/daniel/drupal/admin/content/taxonomy

e não

/home/daniel/.www/drupal/admin/content/taxonomy

imagem de Daniel Docki

3. Daniel Docki*

Disse em qua, 09/01/2008 - 15:21

Opa....re-lendo novamente o tutorial seu, consegui fazer...erra um erro meu....

Primeiro, quando era para editar o AllowOverride None e passar para AllowOverride All, eu editei a primeira linha que ele aparece, e depois eu fui ler em seu tutorial novamente e é a segunda...

E depois eu não entendia como criar o link esse, voltei e li novamente...e consegui....=D

imagem de Daniel Docki

4. Daniel Docki*

Disse em qua, 09/01/2008 - 15:22

Ah e eu acho que está com algum bug seu site olha o erro que ele dá quando posto um comentario

* warning: Invalid argument supplied for foreach() in /home/.bonz/marcusvbp/marcusvbp/site/modules/node/node.module on line 521.
* warning: implode() [function.implode]: Bad arguments. in /home/.bonz/marcusvbp/marcusvbp/site/modules/node/node.module on line 525.
* user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 query: SELECT n.nid, n.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.picture, u.data FROM marcusvbp_node n INNER JOIN compartilhada_users u ON u.uid = n.uid INNER JOIN marcusvbp_node_revisions r ON r.vid = n.vid WHERE in /home/.bonz/marcusvbp/marcusvbp/site/includes/database.mysql.inc on line 172.

imagem de Marcus VBP

5. Marcus VBP

Disse em qua, 09/01/2008 - 15:32

Oi Daniel. Fico feliz que o tutorial tenha funcionado :)

Eu estou ciente deste erro, só não tive tempo de resolvê-lo ainda. Mas obrigado por ter me avisado.

imagem de Bruno Wiltemburg

6. Bruno Wiltemburg*

Disse em sex, 11/01/2008 - 10:23

Parabéns pelo seu artigo... Funcionou 100% para mim! Muito bom mesmo!

Enviar novo comentário

O conteúdo deste campo é privado não será exibido publicamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Você pode citar outras contribuições usando marcações [quote].
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Linhas e parágrafos quebram automaticamente.

copyright © Marcus VBP, Todos os direitos reservados

Permitida a cópia desde que citado a fonte. [Política de Privacidade]

Powered by Drupal CMS.