Instalação do Moodle

From MoodleDocs
Revision as of 16:05, 6 December 2007 by Marcelo Palin (talk | contribs)

Primeiro que tudo, não tenha medo! :-)

Este guia explica como instalar o Moodle pela primeira vez. Alguns dos passos são explicados com maior detalhe, para abranger todas as pequenas diferenças entre diferentes configurações dos navegadores, fazendo este documento parecer comprido e complicado. Não se deixe desanimar por isso - eu costumo instalar o Moodle em poucos minutos!

Existem também tutoriais vídeo que o poderão ajudar no processo de instalação, disponibilizados no final desta página. Estes tutoriais são gravações de ecrã que recriam os passos para instalação do Moodle.

Se tiver problemas, por favor leia este documento cuidadosamente. Se ainda tiver problemas, pode pedir ajuda em "Moodle Help".

Outra possibilidade é entrar em contacto com alguma companhia de alojamento de servidores Web, que faça a manutenção do Moodle para si, para que se possa concentrar nos aspectos didácticos sem perder tempo com problemas técnicos!

Requisitos

O Moodle é desenvolvido principalmente em Linux, usando Apache, MySQL e PHP (a combinação habitualmente designada de plataforma LAMP), mas também é testado regularmente com PostgreSQL e nos sistemas operativos Windows XP, Mac OS X e Netware 6.

Os requisitos do Moodle são:

  • Servidor Web. A maioria das pessoas usa Apache, mas o Moodle deveria funcionar com qualquer servidor Web que suporte PHP, como, por exemplo, IIS nas plataformas Windows.
  • A linguagem PHP (versão 4.1.0 ou superior). A partir de Moodle 1.4 já é possível usar PHP 5.
  • Servidor de bases de dados: O Moodle funciona perfeitamente com MySQL ou PostgreSQL que são as duas opções recomendadas pela comunidade.

A maior parte dos fornecedores de serviços Web incluim todo esse software. Se o seu fornecedor for um dos poucos que não inclui essas opções, pergunte porque não o fazem e considere uma mudança de fornecedor.

Se quiser usar o Moodle no seu próprio computador e a instalação de todo esse software parece-lhe complicada, consulte o nosso guia: Instalação de Apache, MySQL e PHP. Nesse guia encontrará instruções passo a passo para as plataformas mais populares.

Obtenção do código do Moodle

Existem duas formas de obter o Moodle, num ficheiro comprimido ou através do CVS. Essas duas formas explicam-se com mais detalhe na página web: http://moodle.org/download/

Depois de copiar e descomprimir o arquivo, ou depois de ter obtido uma cópia do CVS, deverá ter um directório "moodle", que contém vários ficheiros e subdirectórios.

Pode transferir esse directório directamente para o directório raiz do seu servidor web, e nesse caso o seu sítio ficará disponível em http://o_seu_servidor/moodle, ou pode copiar o conteúdo do directório moodle directamente para o directório raiz do seu servidor web, ficando a sua instalação do Moodle directamente em http://o_seu_servidor.

Se estiver a copiar o Moodle para o seu computador para depois transferí-lo para o servidor Web, é melhor enviar o arquivo completo num único ficheiro e depois descomprimi-lo no servidor Web. A maior parte das interfaces usadas nos serviços de alojamento de páginas web, por exemplo o Cpanel, permitem-lhe descomprimir arquivos com o "File Manager".

Estrutura de ficheiros

Pode passar à frente desta secção, mas fica já aqui um sumário do conteúdo do directório moodle, para ajudá-lo a orientar-se:

config.php - contém as configurações básicas. Este ficheiro nãovem em Moodle, mas é criado durante o processo de instalação.
install.php - o scritp que deverá executar para criar config.php
version.php - define a versão actual do código do Moodle
index.php - a página principal do sítio
admin/ - código para administração de todo o servidor
auth/ - módulos para autenticação de utilizadores
blocks/ - módulos para os pequenos blocos laterais em várias páginas
calendar/ - todo o código para mostrar e gerir calendários
course/ - código para mostrar e gerir disciplinas
doc/ - documentação e ajuda do Moodle (esta página incluida)
files/ - código para mostrar e gerir ficheiros enviados
lang/ - mensagens de texto em diferentes línguas; um diretóriopor cada língua
lib/ - librarias do código básico do Moodle
login/ - código para criação e acesso às contas de utilizadores
mod/ - todos os módulos de disciplina no Moodle
pix/ - imagens genéricas do sítio
theme/ - pacotes temáticos (theme/skins) para mudar a aparência do sítio
user/ - código para mostrar e gerir a lista de utilizadores

Execução do script de instalação para configurar o ficheiro config.php

Para executar o script de instalação (install.php), simplesmente tente aceder à página principal da sua instalação do Moodle, através de um "web browser", ou entre em http://o_seu_servidor/install.php directamente.

(O instalador tentará instalar uma "cookie" para a sessão. Se lhe aparecer uma caixa de advertência no seu browser, deverá aceitar essa cookie!)

O Moodle detectará que é preciso fazer a configuração e conduzi-lo-á através de várias páginas que lhe ajudarão a criar um novo ficheiro de configuração config.php. Quando o processo for concluido, o Moodle tentará colocar o ficheiro no local apropriado. Se não conseguir poderá carregar num botão para copiar o ficheiro preparado pelo instalador e enviá-lo logo para o directório principal do Moodle, no seu servidor, dando-lhe o nome config.php

Ao longo do processo o instalador testará o ambiente de trabalho do seu servidor Web, dando-lhe dicas para resolver quaisquer problemas que encontrar. Para a maior parte dos problemas essas dicas deverão ser suficiente, mas se ficar num impasse, procure informação mais para a frente neste documento, sobre como resolver alguns problemas que mais comumente dificultam a instalação.

Verificação da configuração do servidor Web

A primeira coisa que deverá conferir é que o seu servidor web está configurado para usar index.php como nome de ficheiro a ler por omissão (poderá também aceitar outros nomes alternativos, por exemplo, index.html, default.htm, etc).

Em Apache, isso é feito usando o comando DirectoryIndex no seu ficheiro de configuração httpd.conf. O meu normalmente contém o seguinte:

DirectoryIndex index.php index.html index.htm

Verifique que index.php está entre a lista (e de preferência mais perto do início da lista, para aumentar a eficiência).

A seguir, se estiver a usar Apache 2, deverá activar a variável AcceptPathInfo, que permitirá a passagem de argumentos na forma http://servidor/ficheiro.php/arg1/arg2. Isso é esencial para poder permitir apontadores relativos entre os seus recursos, e também para melhorar o desempenho para os utilizadores do seu sítio Moodle. Poderá activar essa variável juntado a linha que se segue ao seu ficheiro httpd.conf

AcceptPathInfo on

Em terceiro lugar, o Moodle precisa da activação de algumas opções do PHP para funcionar correctamente. Na maior parte dos servidores essas opções já estarão activas por omissão. No entanto, alguns servidores PHP (especialmente nas versões mais recentes) poderão estar configuradas de forma diferente. Essas opções activam-se no ficheiro de configuração do PHP (normalmente o ficheiro php.ini):

magic_quotes_gpc = 1    (preferred but not necessary)
magic_quotes_runtime = 0    (necessary)
file_uploads = 1
session.auto_start = 0
session.bug_compat_warn = 0

Se NÃO tiver acesso a httpd.conf ou php.ini no seu servidor, ou se estiver a usar outras aplicações que exigem outra configuração diferente, não se preocupe pois poderá ainda INVALIDAR a configuração global.

Para o conseguir, deverá criar um ficheiro .htaccess no directório principal do Moodle, com as definições que precisa. Isso só funcionará no Apache, e quando a opção Overrides for permitida na configuração global do servidor. O conteúdo de .htaccess será:


DirectoryIndex index.php index.html index.htm
<IfDefine APACHE2>
    AcceptPathInfo on
</IfDefine>
php_flag magic_quotes_gpc 1
php_flag magic_quotes_runtime 0
php_flag file_uploads 1
php_flag session.auto_start 0
php_flag session.bug_compat_warn 0

Poderá fazer outras coisas como, por exemplo, limitar o tamanho máximo dos ficheiros enviados para o Moodle:

LimitRequestBody 0
php_value upload_max_filesize 2M
php_value post_max_size 2M

O mais fácil será copiar o ficheiro tipo em lib/htaccess e editá-lo para o adaptar às suas necessidades (o ficheiro contém algumas dicas adicionais). Por exemplo, num shell do Unix:

cp lib/htaccess .htaccess


Aumentando a segurança do Servidor Web

ServerTokens

Para uma maior segurança é preciso escondermos os detalhes do servidor web. Existe uma forma simples de esconder os dados de seu servidor web, no caso do apache. Em httpd.conf a diretiva ServerTokens vem definida como:

<nowiki>
    * ServerTokens OS

</nowiki>

Essa diretiva ServerTokens controla a resposta do cabeçalho que é enviado aos clientes incluindo uma descrição genal do sistema operacional do servidor e as informações sobre os módulos compilados.

Altere essa diretiva para:

<nowiki>
    * ServerTokens Prod

</nowiki>

ServerSignature

A diretiva ServerSignature permite a configuração do rodapé em documentos gerado pelo servidor, tais como: listagem de diretórios, mensagem de erros, etc.

Por padrão, uma resposta a uma página que não existe num servidor seria básicamente esta:

<nowiki>
    * Apache/2.2.3 (Debian GNU/Linux) PHP/4.3.10-19 Server at www.pagina.com.br Port 80

</nowiki>

Veja que nesta resposta você tem, nome do webserver, versão, distribuição linux, versão do php instalada, entre outras coisas que podem ser mostradas, como patches especiais e outras coisas que você pode colocar no seu servidor para disponibilizar recursos.


Com isso, a resposta do seu servidor será algo como:

   *  Apache Server at www.dominio.com.br Port 80

Ou seja, simples e preciso, não são necessárias mais do que essas informações, caso sim, dirão respeito aos seus clientes, e a eles você pode passar esses dados.

Óbviamente esse não é o único cuidado que se deve tomar num servidor web, mas é um deles.


Criação de uma base de dados

Terá que criar uma base de dados (por exemplo com o nome "moodle"), vazia, no seu sistema de bases de dados, em conjunto com um utilizador especial (por exemplo "moodleuser") que tenha acesso a essa base de dados (e a nenhuma outra). Poderá usar o utilizador "root" se quiser, mas isso não é aconselhável para um sistema activo: se "crackers" conseguirem descobrir a password de acesso à base de dados, todo o seu servidor de bases de dados ficará em risco, em vez de pôr em risco unicamente uma base de dados.

Se estiver a usar um servidor de alojamento de páginas Web, provavelmente estará disponível um painel de controlo com uma interface Web que lhe permitirá criar a sua base de dados.

O sistema Cpanel é o mais popular desses sistemas. Para criar uma base de dados no Cpanel,

  1. Clique sobre o ícone "MySQL Database".
  2. Escreva "moodle" no campo de base de dados e clique sobre "Add Database".
  3. Escreva um nome de utilizador e password (não use os mesmos dados que utilizar em outro serviço), nos campos respectivos, e clique em "Add User".
  4. Agora use o botão "Add User to Database" para dar a esse utilizador permissões de acesso à nova base de dados.
  5. Repare que ao nome de utilizador e ao nome da base de dados pode ter sido acrescentado um prefixo com o nome da sua conta no Cpanel. Quando precisar dessa informação no instalador do Moodle, deverá usar os nomes completos, incluindo os prefixos.

Se tiver acesso a uma shell num sistema Unix onde vai instalar o Moodle, poderá fazer o procedimento escrevendo comandos na linha de comandos. Todos os comandos serão executados pelo administrador do linux (root). O símbolo # representa o prompt do usuário root.

Para maior segurança será necessário definir uma senha para o usuário root do MySQL. Para fazer isso execute o comando:

[root@server root]# mysqladmin -u root password 'mypass'


A seguir mostra-se um exemplo dos comandos necessários para MySQL:

# mysql -u root -p
> CREATE DATABASE moodle;
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
        TO moodleuser@localhost IDENTIFIED BY 'o_seu_password';
> quit
# mysqladmin -p reload

Se estiver a usar MySQL 4.0.2 ou posterior, deverá incluir também CREATE TEMPORARY TABLES as well no comando GRANT:

> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,
        DROP,INDEX,ALTER ON moodle.* 
        TO moodleuser@localhost IDENTIFIED BY 'yourpassword'; 

E um exemplo para PostgreSQL:

  # su - postgres
  > psql -c "create user moodleuser createdb;" template1
  > psql -c "create database moodle with encoding 'unicode';" -U moodleuser template1
  > psql -c "alter user moodleuser nocreatedb;" template1
  > psql -c "alter user moodleuser with encrypted password 'yourpassword';" template1
  > su - root
  # /etc/init.d/postgresql reload

Criação de um directório de dados

O Moodle vai precisar de algum espaço no seu disco rígido para armazenar ficheiros enviados, por exemplo, os documentos associados a uma disciplina e as fotografias dos utilizadores.

O instalador do Moodle tentará criar esse directório para si, mas se não conseguir, terá de ser criado manualmente.

Por razões de segurança, é conveniente que esse directório NÃO seja acessível directamente através da web. A forma mais simples de garantir isso, será criar o directório FORA do directório raiz do seu servidor Web; se assim não for, terá que o proteger criando nele um ficheiro .htaccess com o seguinte conteúdo:

deny from all
AllowOverride None

Para garantir que Moodle poderá gravar nesse directório os ficheiros recebidos, confira que o servidor Web (por exemplo o Apache) tenha autorização para escrever nesse directório.

Em plataformas Unix, isso implica mudar o propietário do directório para algo como "nobody", "www-data" ou "apache", dando a esse utilizador permissões para ler, escrever e executar no directório de dados.

Nos sistemas que usam Cpanel, pode usar o "File Manager" para encontrar o directório, carregue nele e seleccione "Change Permissions". Em muitos servidores Web partilhados, provavelmente terá que prohibir o acesso a todos os ficheiros por parte do seu "grupo" (para evitar que outros utilizadores do servidor possam consultar ou modificar os seus ficheiros), mas permitir acesso de leitura/escritura para outros utilizadores (assim o servidor Web terá acesso aos seus ficheiros).

Consulte o seu administrador do servidor Web se tiver dificuldades em configurar o seu directório de forma segura. Em particular, alguns servidores que usam uma funcionalidade do PHP, designada de "Safe Mode", podem precisar que seja o administrador do seu servidor a criar o directório para si.

Configuração do Moodle na página de Administração

Após o ficheiro básico config.php ter sido criado com sucesso no passo anterior, quando tentar aceder à página principal do seu servidor Moodle, será redireccionado automaticamente para a página "admin" para continuar com a instalação.

A primeira vez que entrar nessa página de administração ser-lhe-á apresentada a licença GPL, que deverá aceitar para poder continuar com a instalação.

A seguir o Moodle procederá à configuração da sua base de dados criando as tabelas que serão usadas para guardar os dados. Primeiro são criadas as tabelas principais. Deverá ver vários comandos SQL seguidos por mensagens de diagnóstico (a verde ou vermelho) do género:

CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default '0',
password varchar(50) NOT NULL default '', fullname varchar(254) NOT NULL default '',
shortname varchar(15) NOT NULLdefault '', summary text NOT NULL, format tinyint(4) NOT NULL default '1', 
teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned NOT NULL default '0', 
enddate int(10) unsigned NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', 
PRIMARY KEY (id)) TYPE=MyISAM 
SUCCESS

...etc, seguidas por: Base de dados principal configurada com sucesso.

Se não aparecerem essas mensagens, existirá algum problema com a base de dados ou com a configuração que definiu em config.php. Verifique se o PHP não está em "Modo seguro" ("Safe Mode". Alguns servidores comerciais costumam vir em modo seguro). Pode verificar as variáveis do PHP criando um pequeno ficheiro que contenha <?php phpinfo() ?> e olhando para ele com o seu navegador Web. Verifique o resultado e tente aceder novamente à página de administração.

Avance até o fim da página e clique no botão "Continuar".

Deverá agora aparecer um formulário onde pode definir mais variáveis de configuração para a sua instalação como, por exemplo, a língua usada por omissão, o nome do servidor SMTP, etc. Não se preocupe muito em tentar configurar tudo na primeira vez - poderá regressar a esta página sempre que quiser, através da interface de administração. Os valores por omissão foram seleccionados para serem úteis e suficientemente seguros na maioria dos servidores. Avance até o fim da página e carregue no botão "Gravar alterações".

Se não conseguir avançar nessa página (e unicamente nesse caso), provavelmente o seu servidor tem o problema que eu chamo "referidor defeituoso" ("buggy referrer"). Isso é fácil de corrigir: simplesmente desactive a opção de "formulários seguros" (secureforms"), e tente novamente.

A seguir verá mais páginas que imprimem muitas mensagens de diagnóstico à medida que são configurados várias outras tabelas usadas pelos módulos do Moodle. Semelhante ao caso das tabelas básicas, todas as mensagens de diagnóstico deverão aparecer a verde.

Avance até o fim da página e clique no link "Continuar".

A página seguinte é um formulário onde pode definir parâmetros para o seu site Moodle e para a página principal, tais como o nome, formato, descrição, etc. Complete esse formulário (poderá sempre regressar mais tarde e fazer alterações) e clique em "Gravar alterações".

Finalmente, ser-lhe-á pedido para criar um utilizador administrador de alto nível (Administrador id=1) para acesso futuro às páginas de administração. Complete a informação com o seu próprio nome, endereço de correio electrónico, etc. e clique em "Gravar alterações". Nem todos os campos são indispensáveis, mas se se esquecer de algum campo importante, voltará a aparecer o formulário.

Tenha o cuidado de lembrar o nome de utilizador e a palavra chave que seleccionou para o administrador, já que eles serão necessários para aceder as páginas de administração em ocasiões futuras.

(Se por qualquer razão a sua instalação for interrompida, ou aparece algum erro que lhe impeça entrar com a palavra chave do administrador, normalmente poderá aceder com o nome de administrador por omissão, "admin", com palavra chave "admin".)

Uma vez concluído esse processo com êxito, ser-lhe-á apresentada a página principal do seu site. Repare no menu de administração no lado esquerdo da página (os mesmos itens do menu aparecem na página de administração) - esse menu só é visível para si por ter entrado como administrador. Todas as configurações que tenha de fazer a partir de agora poderão ser feitas a partir desse menu; por exemplo:

  • criação e eliminação de disciplinas
  • criação e modificação de contas de utilizadores
  • gestão de contas de docentes
  • mudança de opções globais como o tema, idioma, etc

Mas a instalação ainda não terminou! Existe ainda um passo importante no processo de instalação (veja a próxima secção sobre o cron job).

Configuração do cron job - IMPORTANTE!

Alguns dos módulos do Moodle precisam de verificações frequentes para realizar algumas tarefas. Por exemplo, o Moodle precisa de verificar os foruns de discusão para saber se é preciso enviar por correio cópias de novas contribuições, aos subscritores do fórum.

O script que executa essas tarefas de rotina encontra-se no directório admin, com o nome cron.php. No entanto, ele não pode arrancar por si próprio, pelo que será preciso instalar um mecanismo para que o script seja executado a intervalos regulares (por exemplo, cada 5 ou 10 minutos). Esse tipo de mecanismo de execução periódica de tarefas é designado por serviço cron.

De salientar que a máquina que executa o cron não tem de ser a mesma onde o Moodle está instalado. Por exemplo, se tiver um fornecedor web com limitações, que não tem o programa cron, poderá decidir executar cron em outra máquina ou até no seu computador em casa. A única coisa que interessa é que o ficheiro cron.php seja invocado regularmente. A carga imposta por esse script não é muito elevada, de maneira que 5 minutos é um intervalo de tempo razoável, mas considerar pouco adequado, pode reduzir o intervalo para 15 ou até 30 minutos. Convém não usar intervalos de tempo muito longos, já que o atraso no envio de mensagens de correio pode diminuir o nível de actividade da disciplina.

Primeiro que tudo, teste o script executando-o directamente a partir do seu navegador:

http://exemplo.com/moodle/admin/cron.php

A seguir, tem de instalar algum mecanismo para executar o script automaticamente, a intervalos regulares.

Em sistemas Windows

teste

Em servidores de alojamento Web

O seu painel Web de controlo poderá ter uma página que lhe permite configurar o processo cron. Por exemplo, no sistemas que usam Cpanel procure um botão que diz "Cron jobs". Aí poderá inserir os mesmos comandos Unix descritos na secção seguinte.

A partir da linha de comandos em Unix

Existem muitos programas que pode usar para chamar a página cron.php. Nem todos eles poderão estar disponíveis no seu servidor.

Por exemplo, pode usar algum programa do Unix como 'wget':

wget -q -O /dev/null http://exemplo.com/moodle/admin/cron.php

Repare nesse exemplo que a saida do comando é deitada fora (para /dev/null).

A mesma coisa usando lynx:

lynx -dump http://exemplo.com/moodle/admin/cron.php > /dev/null

De forma alternativa, pode usar uma versão autonoma do PHP, compilada para poder ser executada directamente a partir da linha de comandos. A vantagem em fazer isso será que as estatísticas de acesso ao servidor não serão preenchidas com pedidos constantes do script cron.php. A desvantagem é que precisará ter acesso a uma versão de PHP para linha de comandos.

/opt/bin/php /web/moodle/admin/cron.php

Utilização do programa crontab em Unix

O que o Cpanel faz é simplesmente fornecer uma interface Web para uma utilidade Unix cahamada crontab. Se tiver uma linha de comandos, pode configurar o crontab directamente usando o comando:

crontab -e

e adicionando algum dos comandos acima assim:

*/5 * * * * wget -q -O /dev/null http://exemplo.com/moodle/admin/cron.php

Habitualmente, o comando "crontab" abrirá o editor 'vi'. No editor 'vi' aceda ao modo de inserção clicando na tecla do "i", escreva a linha indicada, e finalmente saia do modo de inserção carregando em ESC. Pode gravar e sair se escrever ":wq", ou sair sem gravar nenhuma alteração, se escrever ":q!" (sem as aspas).

Criação de uma nova disciplina

Agora que a sua instalação do Moodle funciona adequadamente, poderá criar uma disciplina.

Seleccione "Criar uma nova disciplina" a partir da página de administração (ou a partir dos links na página principal).

Complete o formulário, prestando especial atenção ao formato da disciplina. Não tem que se preocupar muito com os pormenores neste momento, já que tudo poderá ser alterado mais tarde pelos docentes da disciplina.

Clique em "Gravar alterações", e será conduzido para um novo formulário onde poderá designar docentes para a disciplina. Esse formulário só permite adicionar contas de utilizadores já existentes - se quiser criar novas contas de professores, peça ao próprio docente para criar uma conta pessoal (ver a página de acesso), ou criar uma conta para ele através da opção "Adicionar novo utilizador" na página de administração.

Uma vez criada, a disciplna está pronta para ser modificada e estará acessível através sa secção de "Disciplinas" na página principal. Para mais pormenores sobre o processo de criação de disciplinas, consulte o "Manual do Professor"

== Tutoriais ==