Moodle numa rede interna mas com acesso exterior: uma solução a implementar

Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Vasco Miguel da Lopes -
Número de respostas: 7
Tenho reparado em muitos fóruns que muita gente tem tentado configurar o moodle numa intranet local, para posteriormente necessitar de aceder exteriormente.

Na instalação que serviu de teste para este texto, o objectivo era ter a plataforma disponível internamente e externamente. Até aqui nada de difícil. O problema estava em que o wwwroot do config.php necessita de um endereço DNS funcional ou de um IP válido. Ou seja, se colocasse o IP local de fora não se acedia; se colocasse o endereço DNS exterior, todo o tráfego da plataforma, mesmo que efectuado internamente, estava a ser redireccionado para a internet, para depois retornar ao servidor local.
A solução mais perfeita seria configurar o wwwroot para ficar em branco ( ' ' ) mas isso, apesar de funcionar, estava a devolver muitos erros, em especial erros de PAGE MAPPING, nos módulos quiz, chat, etc...

Endereço interno: elearning.iefpbraganca.local
Endereço externo: iefpbraganca.dyndns.org

O objectivo é que dentro do centro de formação todos os formandos e formadores acedam à plataforma tirando partido da velocidade da rede local (Intranet), beneficiando ainda do acesso exterior (através da Internet) à plataforma.

Dados da rede:
Moodle->Instalado num servidor Linux UBUNTU 6.06
Domínio local->Instalado num servidor Windows 2003 Server, que gere as contas de utilizadores, computadores e serviços de DNS e DHCP.
Firewall's e Gateways->rede com diversas firewall's IPCOP e um router para acesso à Internet.
Acesso

Solução:
Configurou-se o serviço DNS do servidor do domínio e todas as firewall's para que resolvam o nome iefpbraganca.dyndns.org para o IP interno 192.168.0.4. Dessa forma, mantendo no config.php do moodle em wwwroot ('http://iefpbraganca.dyndns.org'), todo o tráfego na intranet vai imediatamente redireccionado para o IP 192.168.0.4, o que permite ter documentos de dimensões consideráveis na plataforma, que podem ser acedidos por dezenas de PC's em simultâneo de modo quase instantâneo, graças às ligações de área local a 100 e 1000 Mb.
Por outro lado, o router mantém os registos DNS da dyndns.org actualizados, o que permite que de qualquer lado na Internet, se possa aceder à plataforma usando o mesmo endereço: http://iefpbraganca.dyndns.org, pois fora da rede interna o nome é resolvido pelos servidores DNS da Internet, que possuêm os registos do IP externo.

Desta forma simples conseguimos não só aumentar em muito a velocidade de utilização da plataforma na rede interna como também a sua utilização externa, pois a saturação na ligação à internet que estava a ocorrer por termos dezenas de computadores a aceder em simultâneo à plataforma deixou de existir, o que libertou mais de 80% da largura de banda disponível e facilitou mais a gestão QoS do tráfego externo.

Espero que estas dicas ajudem outros que se estejam a deparar com o mesmo problema.
Em resposta a 'Vasco Miguel da Lopes'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Gilson Longo -
Oi,
Estou tentando instalar o Moodle em servidor de hospedagem compartilhado, mas estou enfrentando alguma dificuldade e espero que me oriente.

Creio que o problema está no config.php o qual segue:

$CFG->dbtype = 'mysql';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'moodle';
$CFG->dbuser = 'root';
$CFG->dbpass = '';
$CFG->dbpersist = false;
$CFG->prefix = 'mdl_';

$CFG->wwwroot = 'http://moodle.servidor.com.br';
$CFG->dirroot = '/home/servidor/public_html/moodle';
$CFG->dataroot = '/home/servidor/moodledata/dados';
$CFG->admin = 'admin';

Desde já agradeço...

Gilson
Em resposta a 'Gilson Longo'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Marcelo Oliveira -

Ola Gilson, descreva qual o problema que ocorre. e como foi a instalação ?

sds

marcelo

http://ead.getcorp.net

Em resposta a 'Marcelo Oliveira'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Gilson Longo -

Olá Marcelo,

Baixei a versão 1.8.3, descompactei no meu pc e via ftp instalei no servidor exerno - hospedagem. O servidor presta suporte LAMP e já tenho outras bases funcionando lá.

Via CPanel, criei um subdomínio mas ao executar o install.php dá os erros abaixo...

Espero que você possa me orientar ...

Obrigado,

Gilson Longo

Passo Fundo - RS.

Warning: main(/home/netensin/public_html/moodle/lib/setup.php) [function.main]: failed to open stream: No such file or directory in /home/netensin/public_html/moodle/config.php on line 22

Fatal error: main() [function.require]: Failed opening required '/home/netensin/public_html/moodle/lib/setup.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/netensin/public_html/moodle/config.php on line 22

Em resposta a 'Gilson Longo'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Marcelo Oliveira -

no seu config.php esta assim :

$CFG->dbtype = 'mysql';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'moodle';
$CFG->dbuser = 'root';
$CFG->dbpass = '';
$CFG->dbpersist = false;
$CFG->prefix = 'mdl_'

Nós temos servidores com cpanel e em nosso caso ficaria assim :

$CFG->dbtype = 'mysql';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'usuario_moodle';
$CFG->dbuser = 'usuario_root';
$CFG->dbpass = '';
$CFG->dbpersist = false;
$CFG->prefix = 'mdl_'

Veja que o usuario = nome de acesso ao cpanel... tente q irá dar certo.

abs

Em resposta a 'Marcelo Oliveira'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Gilson Longo -

Ok Marcelo, alterei para o dbname e dbuser criados e adicionado pelo Cpanel ($CFG->dbname = 'usuario_moodle'; $CFG->dbuser = 'usuario_root';), mas o erro mudou de linha no config.php. Neste caso é a última linha dentro do script php.

Grato,

Gilson. 

Warning: main(/home/netensin/public_html/moodle/lib/setup.php) [function.main]: failed to open stream: No such file or directory in /home/netensin/public_html/moodle/config.php on line 29

Fatal error: main() [function.require]: Failed opening required '/home/netensin/public_html/moodle/lib/setup.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/netensin/public_html/moodle/config.php on line 29


Em resposta a 'Marcelo Oliveira'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Gilson Longo -
Marcelo,

Estou instalando o Moodle baseado no Xampp no ambiente Linux.

Estou com este erro: Error detected in config.php
Error in: $CFG->dirroot = 'http://192.169.1.3/moodle';

No config.php tenho:

$CFG->dbtype = 'mysql'; // mysql or postgres7 (for now)
$CFG->dbhost = 'localhost'; // eg localhost or db.isp.com
$CFG->dbname = 'moodle'; // database
$CFG->dbuser = 'root'; // your database username
$CFG->dbpass = ''; // your database password
$CFG->prefix = 'mdl_'; // Prefix to use for all table names
$CFG->dbpersist = false; // Should database connections be reused?
$CFG->wwwroot = 'http://192.169.1.3/moodle';
$CFG->dirroot = 'http://192.169.1.3/moodle';
$CFG->dataroot = 'http://192.169.1.3/moodledata';
$CFG->directorypermissions = 02777;
$CFG->admin = 'admin';

Pergunta: qual caminho devo usar no $CFG->dirroot =
Sabendo que o moodle está instalado em...
/opt/lampp/htdocs/moodle

Se puder retornar lhe agradeco ..

gilson@gla2000.com.br
Em resposta a 'Vasco Miguel da Lopes'

Re: Moodle numa rede interna mas com acesso exterior: uma solução a implementar

por Ivan Pereira -
Eu tive o mesmo problema, porém para contornar, eu fiz uma pequena modificação no config.php

Segue a modificação abaixo:

if(substr($_SERVER['REMOTE_ADDR'],0,7) == '192.168') {
$CFG->wwwroot = 'http://192.168.1.100/moodle';
} else {
$CFG->wwwroot = 'https://seguro.dominio.com.br/moodle';
}

Abraços,
Ivan Pereira