Pesquisa de site

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

  1. Etapa 1 - Instalar o Nginx
  2. Etapa 2 - Instalar e Configurar PHP-FPM7
  3. Etapa 3 - Instalar e configurar o MySQL
  4. Etapa 4 - Baixe e configure o Moodle
  5. Etapa 5 - Gerar certificado SSL e configurar o host virtual Nginx
  6. Etapa 6 - Instalando o Moodle
  7. Etapa 7 - Teste
  8. 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:

  1. Instale o Nginx.
  2. Instale e configure o PHP-FPM7.0.
  3. Instale e configure o MySQL.
  4. Baixe e configure o Moodle.
  5. Configurar SSL e Host Virtual.
  6. Instalando o Moodle.
  7. 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

Artigos relacionados: