Partilho hoje a forma como acabei de terminar a instalação de um servidor dedicado para Moodle, com suporte para SSL, para autenticação segura dos utilizadores através de https. Para criar este texto, utilizei vários recursos dispersos pela web, aos quais farei referência no final.
O sistema operativo utilizado foi o Ubuntu Server 7.04, do qual não irei especificar os passo da instalação pois creio que esta informação está já facilmente acessível na Internet. A única coisa que interessa indicar é que, durante a instalação, deverão indicar que querem instalar um servidor LAMP.
ATENÇÃO: após cada comando, colocarei o seguinte texto (comando nºx), onde x será o número do comando, de forma a ser visível o número de linhas a que pertence um único comando.
Configuração do servidor
Finda a instalação do sistema operativo, vamos então dar início à instalação e configuração dos restantes softwares necessário. Fazemos login no sistema e editamos o ficheiro /etc/apt/sources.list, removemos o caracter # do início da linha 22 e 39 de forma a permitir o acesso ás fontes de pacotes universais e actualizações de segurança universais:
sudo nano /etc/apt/sources.list (comando nº1)
Seguidamente obtemos todas as actualizações de segurança:
sudo apt-get update (comando nº2)
sudo apt-get dselect-upgrade (comando nº3)
Normalmente apenas utilizaríamos sudo apt-get upgrade.
Reiniciamos a máquina para corrermos sobre o novo kernel:
sudo reboot (comando nº4)
Como o servidor de base de dados MySQL é instalado sem password, vamos alterar a password de acesso ao MySQL. Deve-se substituir a string NewRootDatabasePassword por uma password à escolha. Não existe nenhum espaço entre a opção -p e a password no segundo comando:
mysqladmin –u root password NewRootDatabasePassword (comando nº5)
mysqladmin -u root -h localhost password NewRootDatabasePassword -pNewRootDatabasePassword (comando nº6)
Feito isto, será necessário criar uma nova base de dados do Moodle e o utilizador Moodle no MySQL. O comando abaixo fará com que seja solicitada a NewRootDatabasePassword (escolhida anteriormente), pela qual deverá ser substituída a string NewRootDatabasePassword:
mysql -u root -p (comando nº7)
> CREATE DATABASE moodle; (comando nº8)
> GRANT ALL ON moodle.* TO moodle@localhost IDENTIFIED BY ‘NewMoodleDatabasePassword’; (comando nº9)
> FLUSH PRIVILEGES; (comando nº10)
> QUIT (comando nº11)
Como o Apache já foi instalado aquando da instalação do sistema operativo, falta apenas instalar a livraria GD do PHP, para que o Moodle possa manipular imagens, bastando para tal executar o seguinte comando:
sudo apt-get install php5-gd (comando nº12)
Além do software já instalado, vamos ainda instalar outro software que permitirá uma compatibilidade total com o Moodle, além de adicionar algumas funcionalidades que poderão dar sempre jeito. Assim, correm-se os seguintes comandos:
sudo apt-get install ntp-simple openssh-server unattended-upgrades (comando nº13)
sudo apt-get install unzip zip aspell-en aspell-fr aspell-de aspell-es aspell-pt (comando nº14)
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl (comando nº15)
sudo apt-get install clamav-base clamav-freshclam clamav (comando nº16)
Dever-se-á escolher sempre Y após cada um dos comandos acima para continuar com a instalação. O pacote do clamav irá proporcionar a verificação de vírus durante os uploads de ficheiros para o servidor, podendo ser necessário corrê-lo novamente para ficar configurado correctamente.
Instalação do Moodle
Escrever na linha de comandos:
cd /var/www (comando nº17)
sudo wget http://download.moodle.org/stable18/moodle-latest-18.tgz (comando nº18)
sudo tar –zxf moodle-latest-18.tgz (comando nº19)
sudo mkdir /var/moodledata (comando nº20)
sudo chown -R www-data.www-data /var/moodledata (comando nº21)
De forma a ter a certeza que se obtém a versão mais actual, poderá consultar a página de downloads do projecto moodle e alterar a morada apresentada anteriormente no segundo comando para a morada do ficheiro mais actual.
Findo o passo anterior, é necessário alterar a informação da localização do site de default do servidor. Nas linhas 5 e 10, alterar /var/www/ por /var/www/moodle/. No final, reinicia-se o Apache:
sudo nano /etc/apache2/sites-available/default (comando nº22)
sudo /etc/init.d/apache2 restart (comando nº23)
Configurar o Moodle
Estamos assim em condições de iniciar a configuração do Moodle.
Para tal bastará dirigirmo-nos a uma máquina com um browser web instalado e colocar o IP do nosso servidor na barra de endereços do browser para dar início à configuração.
Configurar ligações em https no Apache 2
Por esta altura, o nosso Moodle já deve estar a funcionar normalmente, faltando apenas configurar as ligações por https para a autenticação segura de utilizadores.
É então necessário instalar mais alguns pacotes, o que poderá ser facilmente efectuado com o comando:
sudo aptitude install openssl ssl-cert (comando nº24)
Seguidamente passamos à criação das chaves pública e privada. Vamos criar uma pasta para guardar as chaves e usar um script para, respondendo algumas perguntas, criar chaves pública e privada que serão usadas pelo Apache2:
sudo mkdir /etc/apache2/ssl (comando nº25)
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem (comando nº26)
Vamos agora configurar o Apache2 para que além de usar a porta 80 ele use a porta 443, que é a porta padrão do https. Depois disso, iremos activar o módulo ssl do Apache2:
sudo su -c ‘echo Listen 443 >> /etc/apache2/ports.conf’ (comando nº27)
sudo a2enmod ssl (comando nº28)
Passamos à configuração do site com https. É possível ter vários sites alojados pelo mesmo Apache, pelo que iremos criar um segundo site no servidor, que na verdade é o site padrão usando https:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl (comando nº29)
sudo nano /etc/apache2/sites-available/ssl (comando nº30)
Modifique o ficheiro para utilizar a porta 443 e active a função SSL usando o certificado que criamos:
NameVirtualHost *:443
<VirtualHost *:443 >
ServerAdmin webmaster@localhost
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /var/www/
Depois de editado o ficheiro, activamos o site:
sudo a2ensite ssl (comando nº31)
Finalmente forçamos o Apache a recarregar as configurações:
sudo /etc/init.d/apache2 force-reload (comando nº32)
E terminamos!
Temos agora um servidor web dedicado para Moodle, com ligações seguras por https para autenticação de utilizadores, e com a verificação de vírus dos ficheiros carregados. É preciso ter em atenção que tanto o https como a verificação de vírus deverão ser activadas posteriormente dentro do Moodle, caso contrário não serão utilizadas, apesar de as termos instalado.
Este texto foi efectuado com base nos seguintes documentos:
http://docs.moodle.org/en/Step-by-step_Install_Guide_for_Ubuntu
http://wiki.ubuntubrasil.org/Apache2+SSL
Partilhar esta Entrada