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
'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
$ 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:
- Para configurar o acesso diferenciado, basta marcar os m\xF3dulos e o tipo de acesso para cada papel:
* 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
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