Como instalar o Moodle 3.2 no Ubuntu 16.04
Este tutorial existe para estas versões do sistema operacional
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 16.04 (Xenial Xerus)
Nesta página
- Etapa 1 - Instalar o Nginx
- Etapa 2 - Instalar e Configurar PHP-FPM7
- Etapa 3 - Instalar e configurar o MySQL
- Etapa 4 - Baixe e configure o Moodle
- Etapa 5 - Gerar certificado SSL e configurar o host virtual Nginx
- Etapa 6 - Instalando o Moodle
- Etapa 7 - Teste
- Referência
O Moodle é um software de sistema de gerenciamento de aprendizado de código aberto escrito em PHP, lançado sob a GNU General Public License. É usado para educação a distância, projetos de e-learning, aprendizagem combinada e propósitos semelhantes. Moodle é um acrônimo para Modular-object-oriented dynamic learning environment, desenvolvido por Martin Dougiamas para ajudar educadores e professores a criar cursos online com foco na interação e construção colaborativa de conteúdo.
Neste tutorial, vou guiá-lo como construir seu próprio centro de aprendizagem com o Moodle. Instalaremos e configuraremos o Moodle em um servidor web Nginx, banco de dados MySQL e PHP-FPM7. Para o sistema operacional, usaremos o Ubuntu 16.04 (Xenial Xerus).
O que nos faremos:
- Instale o Nginx.
- Instale e configure o PHP-FPM7.0.
- Instale e configure o MySQL.
- Baixe e configure o Moodle.
- Configurar SSL e Host Virtual.
- Instalando o Moodle.
- Teste.
Pré-requisito
- Servidor Ubuntu 16.04.
- Privilégios de root.
Passo 1 - Instale o Nginx
Neste tutorial, Nginx é usado como servidor web para Moodle. O Nginx está disponível no repositório do Ubuntu e pode ser instalado facilmente com o comando apt.
apt-get install -y nginx
Quando a instalação estiver concluída, inicie o Nginx e habilite-o para iniciar automaticamente no momento da inicialização.
systemctl start nginx
systemctl enable nginx
O Nginx será executado na porta 80, verifique se a porta está aberta com o comando abaixo e certifique-se de que o Nginx usa a porta 80.
netstat -plntu
Etapa 2 - Instalar e configurar o PHP-FPM7
O Moodle é baseado em PHP, então o PHP deve ser instalado no sistema. Usaremos PHP-FPM porque estamos usando o servidor web Nginx. Para a versão, usaremos o PHP-FPM7.0, suportado pela versão estável do Moodle 3.2.
Instale o PHP-FPM7.0 e todas as extensões necessárias ao Moodle com o único comando apt abaixo.
sudo apt-get install -y graphviz aspell php7.0-fpm php7.0-cli php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7.0-json php7.0-opcache php7.0-readline php7.0-mbstring php7.0-soap
Quando a instalação de todos os pacotes estiver concluída, vá para o diretório de configuração do PHP e edite os arquivos php.ini.
cd /etc/php/7.0/
Edite o arquivo fpm php.ini com o vim.
vim fpm/php.ini
Descomente a linha abaixo e altere o valor para 0.
cgi.fix_pathinfo=0
Salve o php.ini e saia do editor.
Edite o arquivo cli php.ini.
vim cli/php.ini
Descomente a linha cgi.fix abaixo e altere o valor para 0.
cgi.fix_pathinfo=0
Salve o arquivo e saia do vim.
Em seguida, edite o arquivo de configuração php-fpm www.conf.
vim fpm/pool.d/www.conf
Descomente a linha de limite de segurança e verifique se o valor é .php.
security.limit_extensions = .php
Salve o arquivo e saia do vim.
A configuração do PHP-FPM está finalizada. Agora podemos iniciar o PHP-FPM e adicioná-lo para iniciar automaticamente no momento da inicialização.
systemctl enable php7.0-fpm
systemctl start php7.0-fpm
Por padrão, o PHP-FPM no ubuntu fornecerá um arquivo de soquete para o Nginx se conectar, certifique-se de ter os resultados para o arquivo de soquete do PHP usando o comando netstat abaixo.
netstat -lx
Etapa 3 - Instalar e configurar o MySQL
Usaremos o MySQL como sistema de banco de dados para o Moodle (o Moodle suporta MySQL e PostgreSQL). Usaremos a versão mais recente do MySQL do repositório do Ubuntu, que é o MySQL 5.7 no momento.
Instale o MySQL do repositório Ubuntu com o comando apt abaixo.
apt-get install -y mysql-server mysql-client
Você será questionado sobre a senha de root do MySQL, digite a senha de root do MySQL desejada. Certifique-se de usar uma senha complexa e não muito curta.
Digite a senha novamente e pressione Enter.
O MySQL foi instalado com sua própria senha root agora.
Agora precisamos adicionar uma nova configuração para a instalação do Moodle. Edite o arquivo de configuração do MySQL mysqld.cnf.
Vá para o diretório de configuração /etc/mysql/ e edite o arquivo mysqld.cnf com o vim.
cd /etc/mysql/mysql.conf.d/
vim mysqld.conf
Na linha [mysqld], cole a configuração abaixo.
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
Salve e saia, reinicie e adicione o MySQL para iniciar automaticamente no momento da inicialização.
systemctl restart mysql
systemctl enable mysql
Agora você pode verificar se o MySQL está rodando verificando a porta do servidor usada pelo serviço, porta 3306.
netstat -plntu
O MySQL foi instalado e iniciado.
Em seguida, precisamos criar um novo banco de dados e um novo usuário de banco de dados para o Moodle. Conecte-se ao servidor MySQL com o comando mysql abaixo.
mysql -u root -p
TYPE YOUR OWN ROOT PASSWORD
Crie um novo banco de dados chamado moodledb e um novo usuário moodleuser com a senha hakaselabs123 para a instalação do moodle, então conceda permissões ao usuário do banco de dados. Você deve usar uma senha diferente e segura em sua instalação, é claro :)
Execute a consulta mysql abaixo.
CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'hakaselabs123';
GRANT ALL PRIVILEGES ON moodledb.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'hakaselabs123';
FLUSH PRIVILEGES;
Um novo usuário e banco de dados para moodle são criados.
Passo 4 - Baixe e configure o Moodle
Faremos o download do Moodle do repositório GitHub com git e escolheremos o branch da versão estável.
Instale o git com o comando apt abaixo.
apt-get install -y git
Vá para o diretório /var/www/ e clone o repositório moodle.
cd /var/www/
git clone https://github.com/moodle/moodle.git
Vá para o diretório moodle e liste todos os ramos disponíveis.
cd moodle/
git branch -a
Você verá uma longa lista de ramificações do Moodle, rastreie a ramificação da versão estável mais recente com o comando abaixo.
git branch --track MOODLE_32_STABLE origin/MOODLE_32_STABLE
Agora mude para o branch estável mais recente com git checkout.
git checkout MOODLE_32_STABLE
Agora você está no último ramo estável, você pode usar o comando abaixo para verificar isso.
git status
Você verá os resultados abaixo.
On branch MOODLE_32_STABLE
Your branch is up-to-date with 'origin/MOODLE_32_STABLE'.
nothing to commit, working directory clean
Em seguida, crie um novo diretório para os dados do Moodle /var/moodledata e altere o proprietário e as permissões do diretório.
mkdir /var/moodledata
chown -R www-data:www-data /var/moodledata
chmod 777 /var/moodledata
Altere o proprietário e a permissão do diretório moodle para o usuário e grupo www-data.
chown -R www-data:www-data /var/www/moodle
chmod 755 /var/www/moodle
A pré-configuração do Moodle está concluída.
Etapa 5 - Gerar certificado SSL e configurar o host virtual Nginx
Executaremos o Moodle com o servidor web Nginx em conexão HTTPS. Se você estiver em um servidor ativo, poderá usar seu próprio arquivo de certificado ou adicionar seu próprio certificado gratuito de permite criptografar. Estou aqui no meu computador local, então só quero gerar um novo arquivo de certificado autoassinado por conta própria.
Crie um novo diretório SSL e gere os arquivos de certificado autoassinado com o comando openssl abaixo.
mkdir -p /etc/nginx/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/moodle.crt -keyout /etc/nginx/ssl/moodle.key
Altere a permissão da chave privada.
chmod 600 /etc/nginx/ssl/moodle.key
Em seguida, pegue o diretório de configuração do Nginx e crie um novo arquivo de host virtual para o Moodle no diretório sites-available.
cd /etc/nginx/
vim sites-available/moodle-hakaselabs
Cole a configuração do host virtual Nginx abaixo.
# PHP Upstream Handler
upstream php-handler {
server unix:/run/php/php7.0-fpm.sock;
}
# Nginx redirect HTTP to HTTPS - moodle.hakase-labs.com
server {
listen 80;
server_name moodle.hakase-labs.com;
# enforce https
return 301 https://$server_name$request_uri;
}
# HTTPS Configuration
server {
server_name moodle.hakase-labs.com;
listen *:443 ssl http2;
listen [::]:443 ssl http2;
# SSL Configuration
ssl on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_session_tickets off;
#ssl_stapling on;
#ssl_stapling_verify on;
resolver_timeout 5s;
ssl_certificate /etc/nginx/ssl/moodle.crt;
ssl_certificate_key /etc/nginx/ssl/moodle.key;
# Root Moodle Data DIrectory
root /var/www/moodle;
rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;
location ^~ / {
try_files $uri $uri/ /index.php?q=$request_uri;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php-handler;
}
}
}
Salve o arquivo e saia do vim, ative o host virtual e teste o arquivo de configuração do Nginx, verifique se não há erro.
ln -s /etc/nginx/sites-available/moodle-hakaselabs /etc/nginx/sites-enabled/
nginx -t
Reinicie o servidor web Nginx.
systemctl restart nginx
Os arquivos de certificado SSL foram criados e o host virtual Nginx para Moodle está configurado.
Passo 6 - Instalando o Moodle
Abra seu navegador da Web e digite a URL do moodle do seu servidor na barra de endereço e pressione Enter. Neste tutorial, usarei meu próprio nome de domínio: moodle.hakase-labs.com.
Você verá a página de instalação do Moodle.
Escolha um idioma, usarei o inglês e clique em Avançar.
Configure a URL do Moodle, no meu caso moodle.hakase-labs.com, o diretório raiz da web do moodle /var/www/moodle e o diretório de dados do moodle /var/moodledata.
Em seguida, clique em Avançar.
Configure o driver de banco de dados, use o servidor de banco de dados mysql abaixo e clique em Avançar.
Digite as informações do banco de dados para o Moodle.
- host do banco de dados: localhost
- nome do banco de dados: moodledb
- usuário do banco de dados: moodleuser
- senha do banco de dados: hakaselabs123
- prefixo das tabelas: moodle_
- porta do banco de dados: 3306
- Soquete Unix: /var/run/mysql/mysqld.sock
Clique em próximo para continuar.
Aceite o Acordo de Direitos Autorais. Basta clicar em Continuar.
System Checking, verifica a configuração do servidor e todas as extensões PHP necessárias para o moodle.
Certifique-se de que todos os resultados estejam corretos e clique em Continuar para instalar.
Você verá muitos módulos sendo instalados, certifique-se de que todos os resultados sejam bem-sucedidos.
Clique em Continuar novamente.
Em seguida, precisamos configurar um usuário administrador e uma senha.
Preencha suas informações de administrador e clique em Atualizar perfil.
Para a configuração da página frontal, preencha as informações da sua própria página e clique em Salvar alterações.
Você será redirecionado para o painel de administração do usuário abaixo.
A instalação do Moodle está concluída.
Passo 7 - Teste
Teste a página inicial do Moodle - moodle.hakase-labs.com.
Página de login do Moodle - moodle.hakase-labs.com/login.
Painel de administração do usuário Moodle.
Página de preferências do usuário do Moodle.
Página de administração do site Moodle.
O Moodle foi instalado no Ubuntu 16.04 com servidor Nginx, PHP-FPM 7 e MySQL 5.7, ou seja, \Moodle com LEMP Stack\.
Referência
- https://docs.moodle.org/32/en/Nginx