Pesquisa de site

Como instalar a plataforma de aprendizagem Moodle com Nginx no CentOS 8


Moodle é o sistema de gerenciamento de aprendizagem mais popular do mundo para a construção de sites de aprendizagem on-line robustos. Ele apresenta uma variedade de atividades e ferramentas educacionais à sua escolha, oferece suporte ao gerenciamento de avaliações e vem com certificados personalizados. Também permite a comunicação com seus alunos em tempo real com uma poderosa ferramenta de videoconferência. Além disso, está pronto para dispositivos móveis, para que seus alunos possam aprender em seus dispositivos móveis.

Requisitos do servidor Moodle

  • Sistema operacional: uma instalação mínima do servidor CentOS 8 ou RHEL 8 com pilha LEMP instalada.
  • Espaço em disco: 200 MB para o Moodle e 5 GB é provavelmente o mínimo realista para armazenamento de conteúdo.
  • Processador: recomendado 1 GHz (min), dual-core de 2 GHz ou mais.
  • Memória: 512 MB (min), recomenda-se 1 GB ou mais. Provavelmente mais de 8 GB em um servidor de grande produção.

Nesta página

  • Criando um registro DNS de domínio para o site Moodle
  • Instalando a plataforma de aprendizagem Moodle no servidor CentOS 8
  • Configurando o NGINX para servir o site Moodle
  • Instalação completa do Moodle via Web Installer
  • Habilite HTTPS no site Moodle usando Let’s Encrypt

Criando um registro DNS de domínio para o site Moodle

1. Comece criando um subdomínio que os usuários usarão para acessar o site de aprendizagem on-line Moodle. Por exemplo, se o seu nome de domínio for testprojects.me, você poderá criar um subdomínio chamado learning.testprojects.me.

Abra as configurações avançadas de DNS do seu nome de domínio e adicione um registro A conforme mostrado na imagem a seguir.

Instalando o Moodle no servidor CentOS 8

2. Antes de instalar o Moodle, certifique-se de ter as extensões PHP necessárias em seu servidor, você pode executar o seguinte comando para instalá-las:

dnf install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. Em seguida, crie um banco de dados para o aplicativo Moodle como segue.

mysql -u root -p

Em seguida, crie o banco de dados, o usuário do banco de dados e crie uma senha segura para uso.

MariaDB [(none)]> CREATE DATABASE moodledb;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'p@zzwd0L2';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Agora baixe a versão mais recente do Moodle (3.9 no momento da escrita) do site oficial do projeto moodle, extraia o arquivo e mova-o para o diretório webroot (/var/www/html/) e defina as permissões e propriedade apropriadas para permitir o acesso do servidor web ao diretório Moodle, como segue.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

5. Em seguida, crie o diretório moodledata que é o local dos arquivos que são carregados ou criados pela interface do Moodle, em seguida, atribua as permissões apropriadas e propriedade para permitir ao servidor web acesso de leitura e gravação a ele:


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. Em seguida, vá para o diretório de instalação do Moodle e crie um arquivo config.php a partir do exemplo config.dist.php fornecido e, em seguida, abra-o para edição para definir algumas configurações importantes para sua plataforma Moodle, como parâmetros de conexão do banco de dados e a localização do site e onde pode encontrar o diretório moodledata:

cd /var/www/html/moodle/
cp config-dist.php config.php
vim config.php

Defina o tipo de banco de dados correto, o host do banco de dados correto, o nome do banco de dados e o usuário do banco de dados e a senha do usuário.

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Defina também o URL usado para acessar seu site do Moodle, isso especifica a localização do wwwroot onde seus arquivos da web do Moodle estão localizados, e também o dataroot (o diretório moodledata):

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/www/html/moodledata';

Configurando o NGINX para servir o site Moodle

8. Nesta seção, você precisa configurar o NGINX para servir seu aplicativo Moodle. Você precisa criar um bloco de servidor para ele na configuração do NGINX conforme mostrado.

vim /etc/nginx/conf.d/moodle.conf

Copie e cole a seguinte configuração no arquivo de configuração do bloco do servidor. Substitua o nome do servidor pelo nome do subdomínio criado acima, e o fastcgi_pass deverá apontar para php-fpm (observe que no CentOS 8, o PHP-FPM aceita solicitações FastCGI usando o endereço definido em /etc/nginx/conf.d/ configuração do php-fpm.conf).

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass            php-fpm;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Salve o arquivo e feche-o.

9. Em seguida, verifique se a configuração do NGINX está correta, se estiver Ok, reinicie o nginx e o php-fpm para aplicar as alterações recentes:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Se você tiver o SELinux ativado em seu sistema, execute os seguintes comandos para definir o contexto correto para acessar os arquivos da web do Moodle no servidor:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. Além disso, certifique-se de que os serviços HTTP e HTTPS estejam abertos no firewall para permitir o tráfego para o NGINX servidor web:

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Instalação completa do Moodle via Web Installer

12. Para acessar o instalador web do Moodle, abra seu navegador e navegue usando o subdomínio que você criou acima:

http://learning.testprojects.me

Assim que a página de boas-vindas for carregada, leia os termos e condições e clique em Continuar.

13. Em seguida, o instalador web verificará se o seu sistema atende aos requisitos para executar um site Moodle da versão especificada. Você pode rolar para baixo para ver mais informações.

14. O instalador irá reclamar sobre o HTTPS não estar ativado, ignore esse erro por enquanto (na próxima seção, mostraremos como ativar o HTTPS no Moodle) e clique em Continuar, para iniciar a instalação real dos arquivos da web.

15. Agora o instalador iniciará a instalação real dos arquivos Moodle conforme mostrado na imagem a seguir. Quando terminar, clique em Continuar.

16. Na próxima etapa, você precisa atualizar a conta de administrador do seu site Moodle atualizando o nome de usuário, senha, nome e sobrenome e endereço de e-mail. Em seguida, role a página para baixo e clique em Atualizar perfil.

17. Em seguida, atualize as configurações da página inicial do site Moodle. Em seguida, role para baixo e clique em Atualizar para começar a usar seu site Moodle.

18. Em seguida, você precisa registrar seu site seguindo as instruções na tela. Você pode ir para o painel clicando em Painel.

Configurando HTTPS no site Moodle usando Let’s Encrypt

HTTPS adiciona a primeira camada de segurança ao seu site para permitir comunicações seguras entre seus usuários e o aplicativo Moodle (especialmente o servidor web NGINX que recebe solicita e entrega respostas).

Você pode comprar um certificado SSL/TLS de uma CA comercial ou usar o Let’s Encrypt, que é gratuito e reconhecido por todos os navegadores modernos. Neste guia, usaremos Let’s Encrypt.

19. A implantação do certificado Let’s Encrypt é gerenciada automaticamente usando a ferramenta certbot. Você pode instalar o certbot e outros pacotes necessários com o seguinte comando:

dnf install certbot python3-certbot-nginx

20. Em seguida, execute o seguinte comando para obter um certificado Let's Encrypt e faça com que o Certbot edite sua configuração NGINX automaticamente para servi-lo (ele também configurará HTTP para ser redirecionado automaticamente para HTTPS).

certbot --nginx

21. Em seguida, execute o seguinte comando para ativar a renovação automática do certificado Let’s Encrypt SSL/TLS:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. Em seguida, atualize sua configuração do Moodle para começar a usar HTTPS.

vim /var/www/html/moodle/config.php

altere o URL wwwroot de HTTP para HTTPS:

$CFG->wwwroot   = 'https://learning.testprojects.me';

23. Por último, mas não menos importante, confirme se seu site Moodle agora está sendo executado em HTTPS.

Por enquanto é isso! Para mais informações e opções de configuração para executar sua nova plataforma de aprendizagem, acesse o site do Moodle e leia a documentação oficial.