Dcumentação do Moodle: Instalação

# Instalação do Moodle

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

> Leia este documento com calma e cuidadosamente - poderá assim poupar algum tempo no futuro.

> Secções neste documento:

> 1. Pacotes necessários
> 2. Obter uma cópia do Moodle
> 3. Estrutura do sítio
> 4. Criação do directório de dados
> 5. Criação da base de dados
> 6. Verificar a configuração do servidor web
> 7. Editar config.php
> 8. Visitar a página de administração
> 9. Configurar o cron
> 10. Criação de uma disciplina

### 1. Pacotes necessários

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

> Os pacotes necessários para o funcionamento de Moodle são:

> 1. Servidor Web. A maior parte das pessoas usam Apache, mas Moodle deverá funcionar com qualquer servidor Web que suporte PHP, como, por exemplo, IIS nas plataformas Windows.
> 2. A linguagem PHP (versão 4.1.0 ou superior), com as opções seguintes:
>    - Libraria GD activada, com suporte para formatos JPG e PNG.
>    - libraria zlib activa (se quiser usar cópias de segurança/restauração em Windows)
>    - Suporte de sessões (sessions support) activo
>    - Envio de ficheiros (file uploading) activo
>    - Modo seguro (safe mode) desactivado (nos foruns em moodle.org pode ler acerca dos problemas causados pelo modo seguro)
> 3. Servidor de bases de dados: Moodle suporta completamente MySQL ou PostgreSQL que são as duas opções recomendadas em Moodle 1.1. Outros servidores de bases de dados serão suportados em versões futuras.

> 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 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á instrucções passo a passo para as plataformas mais populares.

### 2. Obter uma cópia 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 desempacotar o arquivo, ou depois de ter obtido uma cópia do CVS, deverá ter um directório "moodle", que contem 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.com/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 dierectamente em http://o_seu_servidor.com.

### 3. Estrutura do sítio

> A seguir apresentamos um sumário do conteúdo do directório moodle, para o ajudar a orientar-se:

> > config-dist.php | - | mais tarde vai fazer uma cópia deste ficheiro, dando-lhe o nome config.php. Este será o ÚNICO ficheiro que precisa de editar para começar a usar o Moodle.
> > 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
> > - 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/ - mesnagens de texto em diferentes línguas; um diretório por 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

### 4. Criação do directório de dados

> Moodle precisa 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.

> Crie um directório para esse propósito em alguma parte do seu sistema de ficheiros. 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 por 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

> 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" ou "apache".

> 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 com o seu administrador do servidor Web se tiver dificuldades em configurar o seu directório em forma segura.

### 5. Criação da base de dados

> Terá que criar uma base de dados (por exemplo "moodle"), vazia, no seu sistema de bases de dados, junto 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 os "crackers" conseguirem descobrir a contrasenha de acesso à base de dados, todo o seu servidor de bases de dados ficará em risco, em vez de por em risco unicamente uma base de dados.

> Os comandos seguintes são um exemplo da criação da base de dados em MySQL:

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

> E um exemplo para PostgreSQL:

>        # su - postgres
>        > psql -c "create user moodleuser createdb;" template1
>        > psql -c "create database moodle;" -U moodleuser template1
>        > psql -c "alter user moodleuser nocreatedb;" template1

> (Se usar MySQL, recomendo vivamente o uso de phpMyAdmin para gerir as suas bases de dados - poderá gerir a base de dados usando uma interface Web).

> A partir da versão 1.0.8, Moodle aceita prefixos de tabelas, para poder partilhar uma base de dados com tabelas SQL de outras aplicações.

### 6. Verificar a configuração do servidor web

> O primeiro que deverá conferir é que o seu servidor web está configurado para usar index.php como nome de página 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 contem o seguinte:

> >     DirectoryIndex index.php index.html index.htm

> Verifique que index.php esteja entre a lista (e preferivelmente 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, 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 em 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 aplicçõ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 .htacces 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, definir o tamanho máximo do 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 se adaptar às suas necessidades (o ficheiro contem algumas dicas adicionais). Por exemplo, num shell do Unix:

> >     cp lib/htaccess .htaccess

### 7. Editar config.php

> Neste momento pode criar e editar o ficheiro de configuração, config.php, usando um editor de texto. Esse ficheiro será utilizado por todos os outros ficheiros em Moodle.

> Para começar, faça uma cópia de config-dist.php e mude-lhe o nome para config.php. Isto é feito para não perder a configuração original, caso tenah que actualizar o Moodle mais tarde.

> Edite config.php especificando a informação da base de dados que já criou (incluindo o prefixo de tabelas - repare que no caso do PostgreSQL isso é OBRIGATÓRIO), assim como o endereço do seu sítio Web, e os nomes dos directórios do sistema e dos dados. O próprio ficheiro de configuração traz comentários e exemplos.

> Uma vez termine de editar o ficheiro de configração, o resto da instalação é feita através da interface web. No que resta deste documento vamos admitir que o seu sítio web encontra-se em: http://exemplo.com/moodle

### 8. Visitar a página de administração

> A página de adminstração já deverá estar activa em: http://exemplo.com/moodle/admin. De qualquer forma, se neste momento tentar aceder à página principal do seu servidor moodle, será redireccionado automaticamente para essa página. A primeira vez que entrar na página de administração, ser-lhe-á apresentada a licença GPL qu deverá aceitar para poder continuar com a instalação.

> (Moodle também enviará algumas "cookies" para o seu navegador web. Se o seu navegador estiver configurado para perguntar antes de aceitar cookies, deverá aceitá-las ou Moodle não funcionará conrrectamente.)

> A seguir Moodle procederá a configurar a 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 de:

> > 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 NULL default '', 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

> > ...and so on, followed by: Main databases set up successfully.

> 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 que PHP não esteja 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 <? phpinfo() ?> e olhando para ele usando o seu navegador we. Verifique o resultado e tente acceder novamente à página de administração.

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

> A seguir verá uma outra página semelhante que configura as tabelas usadas por cada módulo do Moodle. Igual que no caso anterior, todas as mensagens de diagnóstico deverão aparecer em green.

> Avance até o fim da página e carregue 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 conifugar tudo à primeira vez - poderá regressar a esta página sempre que quiser, através da interface de administração, e experimentar diferentes configurações. Avance até o fim da página e carregue no botão "Gravar alterações".

> Se não conseguir avançar para a frente dessa 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 página seguinte é um formulário onde pode definir parâmetros para o seu sítio Moodle e para a página principal, tais como o nome, formato, descrição, etc. Complete esse forumlário (poderá sempre regressar mais tarde e fazer alterações) e carregue em "Gravar alterações".

> Finalmente, ser-lhe-á pedido para criar um utilizador administrador de alto nivel 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 carregue em "Gravar alteraçãoes". Não todos os campos são indispensáveis, mas se esquecer algum campo importante, voltará a aparecer o formulário.

> > > > > > Tenha o cuidade de lembrar o nome de utilizador e a palavra chave que seleccionou para o administrador, já que eles serão necessários para acceder 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 administrados, normalmente poderá aceder com o nome de administrador por omissão, "admin", com palavra chave "admin".)

> Uma vez concluido esse processo com éxito, ser-lhe-á apresentada a página principal do seu sítio. Repare no menu de administração no lado esquerdo da página (as mesmas alinhas no menu aparecem na página de administração) - esse menu só é vissível para si por ter entrado como o administrador. todas as configurações que tenha que 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, língua, etc

### 9. Configurar o cron

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

> O script que executa essas tarefas de rutina encontra-se no directório admin, com o nome cron.php. No entanto, ele não pode arrancar por si próprio, mas será preciso instalar um mecanismo para que o script seja executado a intervalos regulares (por exemplo, cada 5 ou 10 minutos). Mecanismo esse que constitui as pulsações necessárias para que o script possa executar as tarefas definidas por cada módulo.

> De salientar que a máquina que execute o cron não tem que ser a mesma máquina onde 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. O único 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 se estiver priocupado ao respeito pode reduzir o intervalo para 15 ou até 30 minutos. Convém não usar intervalos de tempo muito compridos, já que o atraso no envio de mensagens de correio pode diminuir o nivel 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 que instalar algum mecanismo para executar o script automaticamente, a intervalos regulares.

> #### Execução do script a partir da linha de comandos

> Pode invocar a página a partir da linha de comandos, tal como fez no exemplo acima. 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

> Em 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 os estatísticas de acesso a o 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

> >     (Windows) C:\apache\php\php.exe C:\apache\htdocs\moodle\admin\cron.php

> #### Execução automatica do script cada 5 minutos

> Em sistemas Unix: Use cron. Edite a sua configuração do cron, a partir da linha de comando usando "crontab -e" e adicione uma linha que diga:

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

> Usualmente, o comando "contrab" abrirá o editor 'vi'. No editor 'vi' acceda ao modo de inserção carregando na tecla do "i", escreva a linha que acabamos de sugerir, 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).

> Em sistemas Windows: A forma mais fácil consiste em usar este pequeno pacote: moodle-cron-for-windows.zip que torna esse proceso muito simples. Pode também explorar a possibilidade de usar funcionalidades próprias do Windows para Tarefas Programadas.

> Em servidores web de fornecedores de serviços: O painel de controlo do seu sistema de web poderá ter uma página que lhe permita programar esse procedimento. Pergunte pormenores ao seu administrador.

### 10. Criação de uma disciplina

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

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

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

> Carregue 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 por meio 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"

Documentação de Moodle

Version: $Id$