# Instalação do Moodle

## Não tenha medo!

> 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, fazendo este documento parecer comprido e complicado. Não se deixe desanimar por isso - eu costumo instalar o Moodle em poucos minutos!

> 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 muntenção do Moodle para si, para que se possa concentrar nos aspectos didácticos sem perde tempo com problemas técnicos!

> Secções neste documento:

> 1. Requisitos
> 2. Obtenção do código do Moodle
> 3. Estrutura do sítio
> 4. Execução do script de instalação para criar config.php
>    - Verificação da configuração do servidor Web
>    - Criação de uma base de dados
>    - Criação de um directório de dados
> 5. Visita à página de administração para continuar a configuração
> 6. Configuração do cron
> 7. Criação de uma nova disciplina

### 1. Requisitos

> 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 requisitos do Moodle são:

> 1. Servidor Web. A maioria das pessoas usam Apache, mas Moodle deveria 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). A partir de Moodle 1.4 já é possível usar PHP 5.
> 3. Servidor de bases de dados: Moodle funciona perfeitamente com MySQL ou PostgreSQL que são as duas opções recomendadas em Moodle.

> 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. 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 desempacotar 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 dierectamente 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 desempacotá-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".

### 3. Estrutura do sítio

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

> > config.php | - | contém as configurações básicas. Este ficheiro não vem 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/ - 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. Execução do script de instalação para criar config.php

> Para executar o script de instalçã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á aceptar essa cookie!)

> Moodle detectará que é preciso fazer a configuração e conduzí-lo-a 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, 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, dándo-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.

### 4.1 Verificação da 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 contém 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 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 .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, 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

### 4.2. Criação de uma 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.

> Se estiver a usar um servidor de alojamento de páginas Web, provavelmente terão 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 Cpane,

> 1. Carregue sobre o ícone "MySQL Database".
> 2. Escreva "moodle" no campo de base de dados e carregue sobre "Add Database".
> 3. Escreva um nome de utilizador e contrasenha (não use os mesmos dados que utilizar em algum outro serviço), nos campos respectivos, e carregue 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 podem 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.

> 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

> 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

### 4.3 Criação de um directório de dados

> 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 sim, mas se não conseguir, terá de ser criado manualmente por si próprio.

> 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", "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 com o seu administrador do servidor Web se tiver dificuldades em configurar o seu directório em forma segura. Em particular, alguns alguns servidores que usam uma funcionalidade do PHP, designada de "Safe Mode", podem precisar que seja o administrador do seu servidor quem crie o directório para si.

### 5. Visita à página de administração para continuar a configuraçã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 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

> > ...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 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 <?php phpinfo() ?> e olhando para ele com o seu navegador Web. 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".

> 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 à 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 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 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. Igual que no caso das tabelas básicas, todas as mensagens de diagnóstico deverá aparecer a verde.

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

> 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 administrador, 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 (os mesmos itens do 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

> 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).

### 6. Configuração do cron - IMPORTANTE!

> Alguns 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 cardíacas" necessárias para que o script possa executar as tarefas definidas por cada módulo. Esse tipo de mecanismo de execução periódica de tarefas é designado por serviço cron.

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

> #### Em sistemas Windows

> > A forma mais simples é utilizar um pacote pequenino: moodle-cron-for-windows.zip que torna o procedimento bastante fácil instalando um pequeno serviço do Windows. Execute-lo e esqueça que existe!

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

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

> 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).

### 7. Criação de uma nova 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$