Como instalar e configurar o Drupal

Este tutorial \xE9 voltado para quem sabe o b\xE1sico de como funciona a hospedagem de sites em sistemas GNU/Linux, tem alguma experi\xEAncia de linha de comando mas n\xE3o faz a m\xEDnima id\xE9ia de como instalar e configurar um gerenciador de conte\xFAdo como o drupal, que usa PHP e um servidor de banco de dados SQL. Grande parte deste documento \xE9 baseada na p\xE1gina http://drupal.org/book/view/260.

\xCDndice

Vis\xE3o geral

O drupal \xE9 um gerenciador de conte\xFAdo com sistema de usu\xE1rios. No drupal, toda publica\xE7\xE3o, seja ela uma entrada num blog, uma enquete, um f\xF3rum, uma hist\xF3ria, etc \xE9 chamada de N\xF3 (node). Os n\xF3s s\xE3o a principal parte de uma p\xE1gina de um site rodando drupal. O conte\xFAdo do site reside nos n\xF3s.

Al\xE9m dos n\xF3s, as outras estruturas vis\xEDveis num site que rode drupal s\xE3o os Blocos (blocks) e M\xF3dulos (modules). Os blocos nada mais s\xE3o do que caixas que agrupam se\xE7\xF5es e fun\xE7\xF5es do site da mesma categoria (como a listagem de novos t\xF3picos do f\xF3rum, menus, usu\xE1rios atualmente usando o site e por a\xED vai).

Para organizar o conte\xFAdo, existe um sistema taxon\xF4mico no qual \xE9 poss\xEDvel associar palavras-chaves com tipos de publica\xE7\xE3o (categorias).

O drupal \xE9 bem flex\xEDvel no sistema de usu\xE1rios, permitindo estabelecer grupos de usu\xE1rios com determinadas permiss\xF5es, como publica\xE7\xE3o, postagem de coment\xE1rios, modera\xE7\xE3o, etc. A publica\xE7\xE3o an\xF4nima tamb\xE9m \xE9 poss\xEDvel, desde que se queira.

Para o interc\xE2mbio de conte\xFAdo entre diferentes sites, mesmo aqueles que n\xE3o rodam drupal, utiliza-se o chamado Syndication, que \xE9 um arquivo contendo um resumo das \xFAltimas publica\xE7\xF5es do site.

Para extender a funcionalidade do drupal, existem m\xF3dulos, scripts que s\xE3o acoplados ao site, como gerenciadores de fotos, armazenadores de arquivos. Existem muito m\xF3dulos, basta ver em http://drupal.org/project/releases

Requisitos de software

O drupal necessita que o sistema que voc\xEA usa tenha:

  • MySQL v3.23.17 ou superior
  • Apache
  • PHP 4.1 ou superior

Voc\xEA pode rodar outros tipos de banco de dados, como o PostgreSQL.

Instala\xE7\xE3o

A instala\xE7\xE3o do drupal \xE9 bem simples e \xE9 descrita nas etapas 4.1 a 4.8.

php.ini

Cerifique-se que no /etc/apache/php.ini existam as seguintes op\xE7\xF5es:

session.save_handler user session.cache_limiter none

Talvez em vers\xF5es mais novas do drupal isso n\xE3o seja mais necess\xE1rio, n\xE3o tenho certeza. De qualquer modo, se voc\xEA n\xE3o souber ou puder fazer isso, pe\xE7a para o administrador do seu sistema.

Baixe o drupal

Entre no servidor e digite:

 
wget http://drupal.org/drupal/drupal-x.x.x.tgz
tar zxvf drupal-x.x.x.tgz

Onde x.x.x \xE9 a vers\xE3o do drupal que voc\xEA quer usar. Exemplo: 4.5.2 (para saber a \xFAltima vers\xE3o do drupal, consulte http://www.drupal.org).

Esse comando criar\xE1 o diret\xF3rio do drupal. Mova-o para o diret\xF3rio para onde ficar\xE1 seu site. Exemplo:

mv drupal-x.x.x /var/www/seu-site

Banco de dados

Crie um banco de dados ou pe\xE7a para que o admistrador do sistema o fa\xE7a e envie a senha para voc\xEA.

Se voc\xEA tiver acesso ao mysql, o comando que voc\xEA dar\xE1 \xE9 algo como

mysqladmin -u usuario -p create seu-site Onde usu\xE1rio \xE9 o seu usu\xE1rio do mysql e seu-site \xE9 o nome que voc\xEA deseja para o banco. Voc\xEA precisar\xE1 dar sua senha do mysql.

Na sequ\xEAncia, vamos criar um usu\xE1rio para seu usado pelo drupal:

mysql -u usuario -p

Depois de entrar com a senha, voc\xEA estar\xE1 no prompt do mysql. Digite:

GRANT ALL PRIVILEGES ON seu-site.*
   TO seu-site@localhost IDENTIFIED BY 'senha';

onde

'seu-site' \xE9 o nome do seu site smile
'senha' refere-se \xE0 senha que o drupal usar\xE1 para acessar seu banco de dados.

Isso dar\xE1 permiss\xE3o ao usu\xE1rio seu-site acessar o banco de dados do drupal. Se tudo correr bem, o mysql te dir\xE1:

 
Query OK, 0 rows affected

Ent\xE3o digite

flush privileges;

e depois digite \q para sair do MySQL.

Carregando o esquema do banco de dados

Agora carregue o esquema de banco de dados do drupal no seu banco de dados rec\xE9m criado:

cd /var/www/seu-site
mysql -u seu-site -p seu-site < database/database.mysql

Digite a senha do banco de dados do drupal. Esse comando criar\xE1 as tabelas e valores padr\xF5es do drupal.

Arquivo de configura\xE7\xE3o

Configure o drupal, bastando para isso editar o arquivo includes/conf.php que est\xE1 no diret\xF3rio do seu site.

Basicamente voc\xEA precisar\xE1 mudar os seguintes campos:

$db_url = "mysql://username:password@localhost/drupal";

para

$db_url = "mysql://seu-site:senha@localhost/seu-site";

Da mesma forma,

$base_url = "http://www.example.com";

para

$base_url = "http://seu-site";

e

$languages = array("en" => "English");

para

$languages = array("pt_BR" => "Portugues","en" => "English");

V\xE1rios sites numa mesma instala\xE7\xE3o

Opcionalmente voc\xEA pode ter mais de um site usando a mesma \xE1rvore que o drupal, basta que voc\xEA copie esse conf.php para include/www.nome-do-outro-site.php e repita os passos da cria\xE7\xE3o do banco de dados at\xE9 aqui, mas desta vez escolhendo outro banco, usu\xE1rio e senha.

Tarefas agendadas

Adicione no seu crontab a linha

      
0    *   *   *   *   wget -O - -q http://seu-site/cron.php

Para que seu drupal possa executar tarefas agendadas. Para adicionar isso no crontab, pe\xE7a para seu administrador do sistema ou use o comando

crontab -e

Configura\xE7\xE3o

Abra seu navegador no endere\xE7o do seu site. A menos de algumas mensagens de erro, o drupal dever\xE1 estar rodando perfeitamente. Imediatamente crie uma conta de usu\xE1rio, que ser\xE1 o administrador do site.

Da\xED em diante basta acessar o menu de administra\xE7\xE3o para configurar seu sistema. Nos menus voc\xEA pode configurar, dentre outras coisas:

  • Configura\xE7\xE3o gen\xE9rica: nome do site, slogan, etc
  • Contas e permiss\xF5es de usu\xE1rios
  • M\xF3dulos
  • Internacionaliza\xE7\xE3o
  • Blocos
  • Taxonomia

Para personalizar a apar\xEAncia do site s\xE3o utilizados temas, que nada mais s\xE3o arquivos que cont\xE9m o c\xF3digo php e html ou xhtml. Os temas encontram-se na pasta themes. Crie um tema copiando um j\xE1 existente, lembrando de editar os arquivos apropriadamente, mudando o nome do tema e adicionando-o na administra\xE7\xE3o do site.

Configura\xE7\xE3o gen\xE9rica

Voc\xEA pode definir o nome do site, slogan e muitas outras caracter\xEDsticas b\xE1sicas de seu s\xEDtio.

Acesse: administrar -> op\xE7\xF5es (drupal 4.6) administrar -> configura\xE7\xF5es (drupal 4.7)

Basicamente, n\xE3o h\xE1 muito segredo nesse ponto, mas alguns merecem alguma explica\xE7\xE3o:

  • P\xE1gina principal padr\xE3o: \xE9 a p\xE1gina inicial do seu s\xEDtio. O padr\xE3o \xE9 "node", que \xE9 a listagem dos n\xF3s publicados na p\xE1gina central. No entanto, \xE9 poss\xEDvel definir como p\xE1gina inicial qualquer outra p\xE1gina, tal como "node/21", "node/500" ou "nomedapagina" (caso voc\xEA use o m\xF3dulo path)

  • Caminho do sistema de arquivos: \xE9 a pasta em que ser\xE3o gravados os arquivos da sua instala\xE7\xE3o de drupal. Numa instala\xE7\xE3o simples, essa pasta costuma ser "files". Numa instala\xE7\xE3o multi-site ...

URLs limpas

Existe a op\xE7\xE3o de voc\xEA utilizar URLs limpas no drupal, isto \xE9, http://seu.site/node/20 ao inv\xE9s de http://seu.site/?q=node/20 ou coisa do tipo. Para isso, habilite URL limpas (Clean URLs) nas configura\xE7\xF5es do seu site, descomente as linhas correspondentes ao mod_rewrite do Apache no .htaccess do seu site, ajustando corretamente o valor de RewriteBase e verifique se esse m\xF3dulo est\xE1 configurado.

Se voc\xEA tiver problemas (caso seu drupal esteja numa subpasta do DocumentRoot), adicione o seguinte no seu .htaccess, antes dos RewriteRule existentes:

RewriteRule ^seu-site(.*) index.php?q=$1

Onde seu-site \xE9 o nome da pasta que est\xE1 o drupal, em rela\xE7\xE3o ao DocumentRoot. Se isso n\xE3o funcionar, experimente usar um _RedirectRule_ ou ent\xE3o a solu\xE7\xE3o mais simples poss\xEDvel: criar um link simb\xF3lico na pasta do seu site, com o nome do seu site, apontando para pr\xF3pria pasta onde eles est\xE1:

cd /var/www/meu-site
ln -s . meu-site

Internacionaliza\xE7\xE3o

O drupal possui suporta \xE0 internacionaliza\xE7\xE3o, por\xE9m ele ainda n\xE3o foi completamente traduzido para o portugu\xEAs. Aqui voc\xEA tem duas alternativas:

  • Traduzir tudo na m\xE3o, atrav\xE9s do pr\xF3prio drupal
  • Usar a tradu\xE7\xE3o de outro site que roda drupal

Por quest\xF5es de praticidade voc\xEA preferir\xE1 a segunda op\xE7\xE3o, ent\xE3o baixe o locale para Portugu\xEAs do Brasil em http://drupal.org/project/pt-br e instale-o atrav\xE9s da p\xE1gina de administra\xE7\xE3o (administer -> locales).

Se preferir, utilize a tradu\xE7\xE3o do site http://www.radiolivre.org, que est\xE1 em http://www.radiolivre.org/files/drupal-locale.po

Depois de baixar um desses arquivos, v\xE1 em administer -> modules, selecione o m\xF3dulo locale e salve as configura\xE7\xF5es. Em seguida, v\xE1 em administer -> localization e importe no drupal o arquivo que voc\xEA acabou de baixar.

Agora voc\xEA j\xE1 tem um drupal em portugu\xEAs. Se voc\xEA quiser mudar algo da tradu\xE7\xE3o, \xE9 s\xF3 utilizar a pr\xF3pria interface do drupal.

Estrutura de Diret\xF3rios do Drupal

database
  • arquivos sql para cria\xE7\xE3o e atualiza\xE7\xE3o do banco de dados

files
  • pasta padr\xE3o para armazenamento de arquivos. Cont\xE9m as pastas images e pictures.
  • Em instala\xE7\xF5es multi-site, esse diret\xF3rio pode estar dentro da pasta /sites, espec\xEDfica de cada dom\xEDnio (poss\xEDvel abordagem)

modules
  • pasta para armazenar s m\xF3dulos. Qualquer arquivo nessa pasta que tenha final .module ser\xE1 interpretado pelo Drupal como sendo um m\xF3dulo, mesmo que esteja em um subdiret\xF3rio.
  • \xC9 interessante separar por pastas entre os m\xF3dulos b\xE1sicos, contribu\xEDdos e espec\xEDficos da instala\xE7\xE3o.

sites
  • pasta que cont\xE9m as configura\xE7\xF5es de cada s\xEDtio espec\xEDfico.
  • O arquivo settings.php da instala\xE7\xE3o padr\xE3o (default) localiza-se dentro dessa pasta (sites/default/settings.php)
  • Numa instala\xE7\xE3o multi-site, as paginas definidas aqui tamb\xE9m podem servir para a resolu\xE7\xE3o de DNS (ex: files/site1.dominio.org, files/site2.dominio.org)

includes
  • aqui ficam arquivos gerais da API do drupal, tais como fun\xE7\xF5es do n\xFAcleo do programa

misc
  • algumas das imagens e arquivos .css (formata\xE7\xE3o de estilos) ficam aqui.
  • Se voc\xEA alterarar as imagens dessa pasta voc\xEA altera para todas as instala\xE7\xF5es do Drupal, no caso de multi-sites

scripts
  • pasta que armazena scripts shell (.sh) ou perl (.pl) como os das tarefas de sincroniza\xE7\xE3o (cron)

themes
  • pasta que armazena os temas e os engines dos temas
  • um engine \xE9 algo como uma "plataforma" para a constru\xE7\xE3o de temas (ex: phptemplate, smarty). Veja os engine disponiveis em http://drupal.org/project/Theme+engines
  • os temas aqui armazenados ser\xE3o listados na interface de gerenciamento de temas

Ativando m\xF3dulos

Os m\xF3dulos s\xE3o a melhor forma de expandir seu s\xEDtio drupal. Existem centenas deles - dos mais variados temas. Est\xE3o dispon\xEDveis para download na p\xE1gina http://drupal.org/project/Modules

Instalando um m\xF3dulo
  • Baixe o m\xF3dulo
$ cd /caminho/drupal/modules/
$ wget http://drupal.org/files/projects/nomemodulo-4.x.x.tar.gz
$ tar zxvf nomemodulo-4.x.x.tar.gz

Geralmente os m\xF3dulos possuem um arquivo INSTALL.txt. Leia-o atentamente, pois cada m\xF3dulos possue especificidades (tabelas no sql, por exemplo). No Drupal 4.7+, existe um arquivo nomedomodulo.install, que executa os procedimentos b\xE1sicos da instala\xE7\xE3o.

Nas vers\xF5es como 4.6, \xE9 necess\xE1rio rodar SQLs manualmente
   mysql -u username -ppassword drupal < nomedomodulo.mysql

Alguns m\xF3dulos possuem outras depend\xEAncias, como outros m\xF3dulos ou mesmo aplica\xE7\xF5es externas.

Ative o m\xF3dulo

\xC9 necess\xE1rio acessar a interface administrativa para ativ\xE1-los:
  • administrar -> m\xF3dulos
  • Procure o m\xF3dulo desejado e marque
  • Salve as altera\xE7\xF5es

D\xEA permiss\xF5es de acesso

Cada m\xF3dulo pode possuir uma configura\xE7\xE3o de acesso. V\xE1 em:
  • administrar -> controle de acesso
  • habilite de acordo com as necessidades (alguns m\xF3dulos permitem configurar o acesso,a administra\xE7\xE3o entre outras coisas)
  • salve e verifique o funcionamento

Finalize as configura\xE7\xF5es

Alguns m\xF3dulos possuem interface para ajuste de configura\xE7\xF5es. Acesse:
  • administrar -> op\xE7\xF5es -> nomedom\xF3dulo

Fazendo os pr\xF3prios m\xF3dulos

Caso n\xE3o exista nenhum m\xF3dulo adequado \xE0s suas necessidades, voc\xEA pode fazer um! \xC9 necess\xE1rio algum conhecimento na linguagem PHP.

Verifique as refer\xEAncias:

Pap\xE9is e Controle de Acesso

O sistema do Drupal permite a exist\xEAncia de m\xFAltiplos pap\xE9is e n\xEDveis diferenciados de acesso. Isso \xE9 importante pois voc\xEA provavelmente n\xE3o ir\xE1 querer dar acesso administrativo para todas as pessoas que tem conta no seu site.

O Drupal n\xE3o tem nenhuma defini\xE7\xE3o fixa de pap\xE9is: voc\xEA pode configurar tudo. Geralmente, \xE9 interessante criar um papel chamado "admin" ou algo do tipo, que receberia todos os pap\xE9is poss\xEDveis para os m\xF3dulos ativos.

\xC9 poss\xEDvel definir pap\xE9is para tarefas espec\xEDficas, como, por exemplo, tradutorxs (com acesso \xE0 interface de tradu\xE7\xE3o) ou editorxs (com acesso \xE0 edi\xE7\xE3o de mat\xE9rias, publica\xE7\xE3o de conte\xFAdos espec\xEDficos etc).

Para criar um novo papel:
  • administrar -> controle de acesso
  • pap\xE9is
  • Adicione, edite ou apague, conforme a figura indica:

Controle de acesso

  • Para configurar o acesso diferenciado, basta marcar os m\xF3dulos e o tipo de acesso para cada papel:

Controle de acesso

* salve as altera\xE7\xF5es

Cria\xE7\xE3o e gerenciamento de conte\xFAdo

Existem v\xE1rios tipos de conte\xFAdos no Drupal: imagens, texto blog, mat\xE9rias, p\xE1ginas etc. Novos tipos podem ser adicionados ativando novos m\xF3dulos.

O ciclo de gerenciamento de conte\xFAdo consiste em alguns passos b\xE1sicos:

Adicionar o conte\xFAdo Pr\xE9-visualizar o resultado Publicar Realizar altera\xE7\xF5es / corre\xE7\xF5es posteriores Apagar conte\xFAdo

Adicionar Conte\xFAdo

Para adicionar conte\xFAdo, basta:
  • fazer login
  • criar conte\xFAdo
  • escolha o tipo de conte\xFAdo desejado

Para cada tipo de conte\xFAdo, existe um formul\xE1rio espec\xEDfico. No entanto, existem muitos campos comuns que obedecem \xE0 l\xF3gica do sistema:
  • T\xEDtulo da mat\xE9ria
  • Caminho alternativo - caso esteja habilitado o m\xF3dulo path, \xE9 poss\xEDvel que seus n\xF3s tenham um nome de atalho. Por exemplo, se a url da mat\xE9ria \xE9 http://seusitio.org/node/20, voc\xEA pode chamar de http://seusitio.org/sua_materia.
  • Corpo - corpo do conte\xFAdo, texto propriamente dito.
  • Categorias - caso voc\xEA crie categorias, voc\xEA pode classificar seu conte\xFAdo. Veja as configura\xE7\xF5es para categorias em: administrar -> categorias
  • Formato de Entrada - \xE9 poss\xEDvel que o texto seja tratado como texto simples (com alguns elementos de html), HTML puro ou mesmo c\xF3digo PHP. \xC9 poss\xEDvel tamb\xE9m criar novos formatos, personalizados, ou editar os tipos atuais, que podem ser configurados em: administrar -> formatos de entrada.

Uma vez preenchido, voc\xEA pode pr\xE9-visualizar o resultado. Caso esteja correto, publique. \xC9 poss\xEDvel publicar um conte\xFAdo sem visualiza-lo previamente.

Alterar conte\xFAdo

Todo o conte\xFAdo publicado pode ser alterado, com exce\xE7\xE3o de alguns m\xF3dulos (como os threads de um f\xF3rum).

Realizar altera\xE7\xF5es / corre\xE7\xF5es posteriores Apagar conte\xFAdo

EM CONSTRU\xC7\xC3O!

Mudando a apar\xEAncia do seu Drupal

administrar -> temas

Migrando do phpNuke

Se o seu site rodava phpNuke e agora voc\xEA quer rodar drupal, voc\xEA ter\xE1 que fazer alguns ajustes no seu banco de dados. Instale o drupal de acordo com os procedimentos 4.1 a 4.7. Voc\xEA ficar\xE1 ent\xE3o com dois bancos de dados, um do drupal e o seu antigo do phpNuke. O procedimento \xE9 descrito detalhadamente em http://www.phrixus.net/migration

Com o drupal instalado, baixe o arquivo http://www.radiolivre.org/files/migration.mysql

Edite esse arquivo, substituindo todas as ocor\xEAncias de drupal pelo nome do banco de dados do seu site (seu-site, nos nossos exemplos) e todas as de nuke pelo correspondente nome do banco de dados no phpNuke.

Feito isso, execute o comando

mysql -p seu-site < migration.mysql

Para dar certo, o usu\xE1rio seu site deve ter permiss\xE3o para acessar o banco de dados do phpNuke.

Agora experimente acessar o seu site e veja o conte\xFAdo do site antigo no drupal smile

Maiores informa\xE7\xF5es

Este texto \xE9 distribu\xEDdo via copyleft. Em caso de d\xFAvidas, escreva para rhatto@riseup.net

-- FernaoLopes - 20 Dec 2006 - adicionando novos t\xF3picos

-- SilvioRhatto - 19 Jul 2005
Topic attachments
I Attachment Action Size Date Who Comment
controle_acesso.pngpng controle_acesso.png manage 21 K 20 Dec 2006 - 05:31 UnknownUser Controle de acesso
controle_acesso2.pngpng controle_acesso2.png manage 23 K 20 Dec 2006 - 05:41 UnknownUser Controle de acesso
Topic revision: r10 - 23 Dec 2006, FernaoLopes
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback