Instalação do Moodle

From MoodleDocs

Antes de mais nada, 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 contato 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 arquivo de configuração httpd.conf (/etc/httpd/conf/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 - No linux você encontrará o arquivo em /etc/php.ini):

magic_quotes_gpc = On    (preferred but not necessary)
magic_quotes_runtime = Off    (necessary)
file_uploads = On
session.auto_start = Off
session.bug_compat_warn = Off

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: ServerTokens OS

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:

    ServerTokens Prod

As outras opções são as seguintes:

ServerTokens Min Esta opção revela: Produto e a versão: Apache/1.3.22

ServerTokens OS Esta opção revela: Produto, Versão e o Sistema Operacional: Apache/1.3.22 (Unix)

ServerTokens Full Esta opção revela: Produto, Versão, OS e Modulos

Realmente a opçâo mais recomendada é a "Prod"

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, a opção ServerSignature vem On, isso faz com que a resposta a uma página que não existente no servidor seja basicamente:

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

Para evitar isso defina:

    ServerSignature Off


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

Essa é uma informação concisa e segura. Essa é de muitas maneiras de aumentar a segurança do seu servidor web.


Outras dicas de segurança

  • Atualize o SO

Tenha certeza de que instalou todos os últimos patches para seu Sistema Operacional. Aplique sempre os últimos patches (services pack) de correção das falhas.


  • Usuário Exclusivo para o Apache

Tenha certeza de que o Apache está utilizando o seu próprio usuário e grupo. Várias distribuições tem a sua própria configuração para isso. Algumas utilizam o usuário apache, outras www, outras nobody, etc. Qualquer que seja o usuário que você utilize, tenha certeza absoluta de que apenas o Apache está utilizando este usuário.

Exemplo:

User apache
Group apache

Dica de Comando Linux:

Para colocar um usuário já existente no linux no grupo apache use o seguinte comando:

[root@localhost html]# usermod -aG apache <nome do usuario linux>

Se quiser acrescentar o usuário em vários outros grupos basta separá-los por ","vírgula:

[root@localhost html]# usermod -aG apache,adm,users <nome do usuario linux>

Isso é recomendado pois, imagine que o seu servidor de e-mails e o Apache estejam utilizando os mesmos usuários. Se alguém conseguir comprometer o Apache, o servidor de e-mails também estará correndo riscos.


Atenção: no comando usermod, a opção -a é imprescindível para manter os grupos atuais do usuário. Se você fizer o comando usermod -G somente, todos os grupos secundários do usuário desaparecerão. É importante não inverter a ordem -aG porque senão a opção -G entenderá o texto "a" como sendo um nome de grupo.


Para modificar o usuário e grupo do Apache, modifique as opções "User" e "Group".

Proteja os diretórios fora do root do Apache Garanta que arquivos que estejam fora do root do Apache não sejam acessíveis pelos clientes. Não é desejável que o Apache consiga acessar arquivos que estão fora do diretório root que você configurou para ele. Vamos assumir que os sites que você hospeda estejam no diretório /web. A configuração seria a seguinte:

<Directory />
    Order Deny,Allow
    Deny from all
    Options     None
    AllowOverride    None
</Directory>

<Directory /web>
    Order Allow,Deny
    Allow from all
</Directory>

Note que, por ter inserido Options None e Allow Override None, todas as Options e Overrides do servidor serão desabilitadas. Você deverá habilitá-las novamente na mão.

Não permita listagem do diretório. Isto é feito modificando-se a opção Options dentro da tag Directory do diretório que se está configurando. Basta modificar esta opção para None ou -Indexes.

Deabilite os server side includes. Isto é feito da mesma maneira que a opção anterior. Basta modificar a opção Options para None ou -Includes.

Desabilite a execução de CGI. Se você não utilizar CGI's deve desabilitá-las para evitar dor de cabeça. Para isso, o processo é o mesmo das dicas anteriores, modificando Options para None ou -ExecCGI.

Não deixe o Apache seguir links simbólicos. Mude a tag Options para None ou -FollowSymLinks.

Desabilitando múltiplas opções. Você não precisa definir uma tag separada para cada uma das dicas anteriores. Basta fazer o seguinte. Se você não quer habilitar nenhuma opção para determinado diretório, mude "Options" para None. Se você quer desabilitar apenas algumas opções, utilize o formato "Options -FollowSymLinks -Indexes -ExecCGI", por exemplo

Desabilite o suporte a arquivos .htaccess. Em uma tag "Directory" configure a opção AllowOverride para None. Se você realmente precisa disso, garanta que ninguém pode fazer o download deste arquivo ou pelo menos modifique o nome dele. Você poderia modificar o nome do arquivo para .httpdoverride e impedir que ele seja baixado assim:

AccessFileName .httpdoverride
<Files ~ "^\.ht">
   Order     Allow,Deny
   Deny from all
   Satisfy All
</Files>

Utilize o mod_security. O mod_security é um módulo extremamente útil desenvolvido por Ivan Ristic. Entre outras coisas, ele pode fazer filtragem simples, filtragem baseada em expressões regulares, auditoria, mascarar a identidade do servidor, fazer chroot, etc. Extremamente recomendado, sem dúvida nenhuma. Não se esqueça de sempre utilizar a versão mais recente.

Desabilite qualquer módulo desnecessário. O Apache vem com vários módulos habilitados por padrão. Examine bem quais são estes módulos e desabilite aqueles que você não precisa. Para desabilitar os módulos dos quais você não precisa, edite o arquivo httpd.conf e procure por linhas que comecem com LoadModule. Para desabilitar o módulo, coloque o caracter # no início da linha.

Alguns módulos que geralmente não são necessários e que sempre estão habilitados são mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex.

Faça com que apenas o root possa acessar as configurações e binários do Apache. Assumindo que você tenha instalado o Apache em /usr/local/apache, faça o seguinte:

chown -R root:root /usr/local/apache
chmod -R o-rwx /usr/local/apache

Diminua o tempo de timeout. Por default, o timeout padrão é de 300 segundos. Diminuindo este tempo você diminui significativamente os efeitos de um ataque DOS. Para isto basta editar a diretiva "Timeout" do httpd.conf.

Limitando requisições muito grandes. Existem várias diretivas que são utilizadas para controlar requisições muito grandes. Controlar este aspecto do servidor web também ajuda a mitigar os efeitos de um ataque DOS.

Um bom lugar para começar é a diretiva LimitRequestBody. Por padrão, ela não possui limites. Se você não permite o upload de arquivos maiores que 1MB, configure esta diretiva assim:

LimitRequestBody 1048576

Se você não permite upload em site algum, pode setar isto para um valor ainda menor. Outras diretivas que você deveria configurar são LimitRequestFields, LimitRequestFieldSize e LimitRequestLine.

Limite o tamanho de arquivos XML. Se você está utilizando o mod_dav (muito utilizado junto com o Subversion) você deveria limitar este tamanho. A directiva LimitXMLRequestBody só existe no Apache 2, e seu valor padrão é de 1MB. Se você quiser fazer o upload de arquivos com qualquer tamanho, configure esta diretiva para 0. O tamanho deve ser definido em bytes.

Limite requisições simultâneas. Existem várias diretivas que você pode utilizar para limitar as requisições simultâneas. A diretiva MaxClients configura qual o número máximo de processos filhos que serão criados para atender à todas as requisições que serão feitas ao servidor. Se esta diretiva estiver configurada com um valor muito alto, você pode ter problemas se seu hardware não suportar a carga.

Outras diretivas são MaxSpareServers, MaxRequestsPerChild e no Apache 2 ThreadsPerChild, ServerLimit e MaxSpareThreads. Sempre configure estas opções para refletir as configurações do sistema operacional e de hardware.

Restringir o acesso por IP. Se o site que você hospeda só deve ser acessado por uma rede ou IP específicos, você pode especificar isso diretamente no Apache. Se você quer que só a rede 172.16.0.0 acesse seu site:
Order Deny,Allow
Deny from all
Allow from 172.16.0.0/16

Ou, para restringir um único IP:

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

Configure o KeepAlive. De acordo com a documentação do Apache, configurar o KeepAlive pode melhorar o desempenho em 50%, então configure isto com muita atenção, pois você vai ganhar desempenho mas ficará mais vulnerável a ataques DOS.

O KeepAlive já vem habilitado e configurado com valores padrão. A diretiva MaxKeepAliveRequests é configurada com 100 e a diretiva KeepAliveTimeout tem o valor padrão de 15. Para configurar estes valores corretamente, você deve analisar os seus logs e verificar qual o melhor valor.

Execute o Apache em CHRoot. CHRoot quer dizer que o aplicativo roda em uma "jaula", separado do resto do sistema. Quando você executa um aplicativo deste modo ele não poderá acessar qualquer outro recurso em diretórios do sistema operacional que não estejam na jaula. Fazer isso "na mão" pode ser bastante trabalhoso por causa das bibliotecas às quais o Apache precisa ter acesso. Porém o mod_security faz isso de modo bem simples:

SecChrootDir /chroot/apache

Esta linha irá enjaular o Apache no diretório /chroot/apache, assim ele só poderá acessar os recursos presentes neste diretório e o mod_security se preocupa com o problema das bibliotecas.

Configurando o MySQL com a Ajuda do mysql_secure_installation

No Fedora Core 10 e também nas novas distribuições linux é possível iniciar a configuração do MySQL digitando como root o seguinte comando:

[root@localhost ~]# mysql_secure_installation

Aparecerá a seguinte mensagem: NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL

     SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here.

Enter current password for root (enter for none):

>>> Ele fica aguardando a senha do usuário root! Se é a primeira vez que está executando o MySQL a senha do root está vazia, então pressione ENTER


Erro: Se aparecer o seguinte erro: Enter current password for root (enter for none): ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Então cancele a configuração com Ctrl+C e inicie o serviço do mysql com os seguintes comandos:

[root@localhost ~]# /sbin/chkconfig mysqld on [root@localhost ~]# service mysql start

Depois tente novamente o comando: [root@localhost ~]# mysql_secure_installation


Enter current password for root (enter for none): Pressione ENTER AQUI OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation.


>> Ele pergunta se deseja definir uma senha para o root

Set root password? [Y/n] Y New password: (DIGITE SUA SENHA AQUI - ELA NÃO APARECE ENQUANTO DIGITA) Re-enter new password: (REPITA A SENHA) Password updated successfully! Reloading privilege tables..

... Success!


Depois de definido a senha vamos remover o usuário anônimo, permitindo o acesso de usuários cadastrados com senha.

By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users? [Y/n] Y

... Success!

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.


>> Desabilita o login remoto no MySQL

Disallow root login remotely? [Y/n] Y

... Success!

By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

>> Remove o Banco de Dados test

Remove test database and access to it? [Y/n] Y

- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

>> Recarrega os privilégios

Reload privilege tables now? [Y/n] Y

... Success!

Cleaning up...


All done! If you've completed all of the above steps, your MySQL installation should now be secure.

Thanks for using MySQL!

>> Pronto, você já está pronto para iniciar a instalação do Moodle.


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 moodledb;
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodledb.*
        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 no comando GRANT, esse comando irá criar o usuário moodleuser com a senha userpassword:

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

Dica: Caso você tenha definido a senha do root e queira trocá-la, basta logar no mysql como root e depois digitar:

mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('nova_senha');

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

Você pode utilizar as Tarefas Agendadas. Para fazer isso é necessário baixar o Wget for Windows (http://gnuwin32.sourceforge.net/downlinks/wget.php). Depois de baixar e instalar o Wget for Windows siga os seguintes passos: -> Vá em Painel de Controle -> Clique duas vezes sobre Tarefas Agendadas -> Cique agora em Adicionar Tarefa Agendada

Irá aparece o assistente. -> Clique em Avançar -> Clique em Procurar -> Selecione o arquivo wget.exe (Está na pasta bin) -> Clique em Avançar -> Dê um nome à tarefa e escolha a frequência com que deve ser executada (Aqui eu marquei Diáriamente) -> Clique em Avançar -> Digite a hora de início da tarefa (ou deixe a que aparece) -> Em Executar esta tarefa deixe marcado Todos os dias -> Em Data de Início escolha a data em que a tarefa deva começar a ser executada -> Clique em Avançar -> Digite o nome de usuário e senha. Lembre-se que esse usuário deve possuir permissão para executar o arquivo wget.exe -> Clique em Avançar -> Marque a caixa de seleção Abrir as propriedades avançadas desta tarefa ao clicar em concluir -> Clique em Concluir

Agora abrirá uma janela com as propriedades da tarefa.

Em Executar digite após o endereço do arquivo: -q -O "c:\logs\moodle\cron.txt" "http://exemplo.com/moodle/admin/cron.php"

O endereço deve ficar: "C:\Arquivos de programas\GnuWin32\bin\wget.exe" -q -O "c:\logs\moodle\cron.txt" "http://exemplo.com/moodle/admin/cron.php"

TOME CUIDADO COM AS ASPAS! ELAS DEVEM FICAR IGUAL AO EXEMPLO!

Explicação:

A função -q faz com que o wget rode no modo quiet (silencioso), assim ele não mostra nenhuma mensagem na tela;

A função -O (output) grava as mensagens em um arquivo especificado (nesse caso c:\logs\moodle\cron.txt) para depuração.A pasta onde será gravado o log já deverá existir!

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 ==