Instalação Moodle · 9 min read · Sep 08, 2025
Como Instalar o Moodle LMS no Servidor Debian 12

O Moodle é uma solução aberta para o Sistema de Gestão de Aprendizagem (LMS). É uma plataforma para fins educacionais, desde a criação de cursos online, gerenciamento de escolas online, gerenciamento de conteúdo e oferta de aprendizagem colaborativa. O Moodle é principalmente escrito em PHP com MySQL/MariaDB como banco de dados e pode ser executado em qualquer sistema operacional. Você escolhe entre Apache ou Nginx para a sua instalação do Moodle.
Neste guia, você aprenderá como instalar o Sistema de Gestão de Aprendizagem Moodle em um servidor Debian 12. Você executará o Moodle com a pilha LAMP (Linux, Apache, MariaDB e PHP), protegerá seu servidor Debian com UFW (Firewall Descomplicado) e, em seguida, protegerá o Moodle com HTTP através do Certbot e Letsencrypt.
Pré-requisitos
Certifique-se de ter o seguinte antes de começar:
- Um servidor Debian 12
- Um usuário não-root com privilégios de administrador
- Um nome de domínio apontado para o endereço IP do servidor
Instalando Dependências
O Moodle LMS é escrito em PHP e MySQL, então você deve instalar esses pacotes em seu sistema. Neste exemplo, você executará o Moodle com a pilha LAMP (Linux, Apache, MariaDB e PHP). Portanto, por enquanto, você instalará o LAMP em seu servidor Debian.
Antes de instalar qualquer pacote, execute o comando abaixo para atualizar seu índice de pacotes Debian.
sudo apt update
Agora instale as dependências da pilha LAMP (Linux, Apache, MariaDB e PHP) com o seguinte comando. Digite ‘Y’ para prosseguir com a instalação.
sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php
Após a conclusão da instalação, verifique o serviço ‘apache2’ para garantir que o serviço está em execução.
sudo systemctl is-enabled apache2
sudo systemctl status apache2Você pode ver abaixo que o servidor web Apache está em execução e habilitado.

Agora verifique o serviço ‘mariadb’ executando o seguinte comando.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbNa saída abaixo, você pode ver que o servidor MariaDB está em execução.

Por fim, verifique a versão do PHP e liste os módulos habilitados usando o comando abaixo.
php -v
php -mVocê verá que o PHP 8.2 está instalado com alguns módulos padrão, como ‘curl’, ‘exif’ e ‘date’ habilitados.

Instalando UFW (Firewall Descomplicado)
Depois de instalar a pilha LAMP, vamos instalar o UFW (Firewall Descomplicado) para proteger o servidor. E então, abrir portas para os protocolos SSH, HTTP e HTTPS. Por fim, vamos iniciar e habilitar o UFW.
Para instalar o UFW, execute o comando ‘apt’ abaixo.
sudo apt install ufw
Uma vez que o UFW esteja instalado, execute o comando ‘ufw’ abaixo para abrir portas para OpenSSH, HTTP (80) e HTTPS (443). Você verá uma saída como ‘Regras atualizadas’.
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpAgora execute o comando abaixo para iniciar e habilitar o UFW em sua máquina Debian. Quando solicitado, digite ‘y’ para confirmar e prosseguir. Você verá uma saída ‘Firewall está ativo e habilitado na inicialização do sistema’.
sudo ufw enablePor fim, verifique o status do UFW com o comando abaixo. Você verá que o UFW está ‘ativo’ com OpenSSH, e as portas ‘80’ e ‘443’ estão ‘ PERMITIDAS ‘.
sudo ufw status
Configurando o Servidor MariaDB
Antes de instalar o Moodle, você precisa mudar o mecanismo de armazenamento padrão para ‘innodb’ e configurar ‘Barracuda’ como o formato padrão. Depois disso, você também precisa proteger o servidor MariaDB e configurar a senha ‘root’ usando a ferramenta ‘mariadb-secure-installation’.
Abra a configuração padrão do servidor MariaDB ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ com o editor ‘nano’.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfInsira a configuração abaixo para habilitar o formato ‘Barracuda’ e configurar o mecanismo de armazenamento padrão para ‘InnoDB’.
innodb_file_format = Barracuda
default_storage_engine = innodb
innodb_large_prefix = 1
innodb_file_per_table = 1Salve o arquivo e saia do editor.
Agora execute o comando ‘systemctl’ abaixo para reiniciar o servidor MariaDB e aplicar suas alterações.
sudo systemctl restart mariadbDepois disso, execute o comando ‘mariadb-secure-installation’ abaixo para proteger sua instalação do servidor MariaDB.
sudo mariadb-secure-installationCom isso, você será questionado sobre as configurações do servidor MariaDB:
- Pressione ENTER quando perguntado sobre a senha root (você a configurará mais tarde)
- Digite ‘n’ quando perguntado para mudar para a autenticação ‘unix_socket’
- Digite ‘Y’ para configurar a senha root do MariaDB, em seguida, digite sua nova senha e repita
- Digite ‘Y’ para remover o usuário anônimo do MariaDB
- Digite ‘Y’ novamente para desabilitar o login remoto para o usuário root
- Digite ‘Y’ para remover o banco de dados padrão ‘test’ e seus privilégios
- Digite ‘Y’ para recarregar os privilégios da tabela e aplicar suas alterações
Uma vez terminado, vá para a próxima etapa para criar um novo banco de dados e usuário.
Criando um Banco de Dados e Usuário para o Moodle
Com o servidor MariaDB configurado, vamos agora criar um novo banco de dados e usuário que serão usados pelo Moodle. Você usará o cliente ‘mariadb’ para fazer login no MariaDB e criar um novo banco de dados e usuário.
Faça login no servidor MariaDB com o comando ‘mariadb’ abaixo. Digite sua senha root do MariaDB quando solicitado.
sudo mariadb -u root -pExecute as seguintes consultas para criar um novo banco de dados e usuário ‘moodle’ com a senha ‘MoodlePassw0rd’. Certifique-se de alterar as seguintes credenciais do banco de dados com suas informações.
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";
FLUSH PRIVILEGES;
Agora execute a consulta abaixo para verificar o usuário ‘moodle’. Certifique-se de que o usuário ‘moodle’ pode acessar o banco de dados ‘moodle’.
SHOW GRANTS FOR moodle@localhost;Por fim, digite ‘QUIT’ para sair do servidor MariaDB.

Configurando o PHP
Agora que você configurou o servidor MariaDB e criou um novo usuário de banco de dados, vamos configurar o arquivo ‘php.ini’ e alterar algumas configurações padrão conforme necessário pelo Moodle.
Abra o arquivo ‘php.ini’ com o editor ‘nano’.
sudo nano /etc/php/8.2/apache2/php.iniAltere a configuração padrão do PHP com o seguinte. Você pode alterar o ‘memory_limit’ conforme necessário, dependendo da memória do seu servidor.
memory_limit = 256M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Amsterdam
max_input_vars = 5000Quando terminar, salve o arquivo e saia do editor.
Por fim, execute o comando ‘systemctl’ abaixo para reiniciar o servidor web ‘apache2’ e aplicar sua nova configuração PHP.
sudo systemctl restart apache2Baixando o Código Fonte do Moodle
Após configurar o PHP, você está pronto para baixar o código fonte do Moodle, em seguida, configurar o diretório de instalação e o diretório ‘data’ para o Moodle. Neste exemplo, você configurará o diretório de instalação do Moodle para ‘/var/www/moodle’ e o diretório ‘data’ para ‘/var/www/moodledata’.
Vá para o diretório ‘/var/www’ e baixe o código fonte do Moodle com o comando ‘wget’ abaixo.
cd /var/www
sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgzUma vez baixado, execute o comando ‘tar’ abaixo para extrair o código fonte do Moodle e renomear o diretório extraído para ‘moodle’. Com isso, sua instalação do Moodle estará localizada no diretório ‘/var/www/moodle’.
tar -xf moodle-latest-405.tgzEm seguida, crie um novo diretório ‘/var/www/moodledata’ que será usado como o diretório de dados para sua instalação do Moodle.
mkdir -p /var/www/moodledataPor fim, execute o comando abaixo para alterar a propriedade dos diretórios ‘/var/www/moodle’ e ‘/var/www/moodledata’ para o usuário ‘www-data’. E então, certifique-se de que o usuário ‘www-data’ pode ler, escrever e executar arquivos dentro desses diretórios.
sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata
sudo chmod u+rwx /var/www/moodle /var/www/moodledata
Configurando o Host Virtual do Apache
Agora que você baixou o Moodle, o próximo passo é criar um novo arquivo de host virtual do Apache para o Moodle. Portanto, certifique-se de que você tenha um nome de domínio resolvido/apontado para o endereço IP do servidor.
Crie uma nova configuração de host virtual ‘/etc/apache2/sites-available/moodle.conf’ com o editor ‘nano’.
sudo nano /etc/apache2/sites-available/moodle.confInsira a configuração abaixo para configurar um arquivo de host virtual para o Moodle. Certifique-se de alterar o parâmetro ‘ServerName’ com seu nome de domínio.
DocumentRoot /var/www/moodle/
ServerName moodle.howtoforge.local
ServerAdmin [email protected]
Options +FollowSymlinks
AllowOverride All
Require all granted
ErrorLog /var/log/apache2/moodle_error.log
CustomLog /var/log/apache2/moodle_access.log combined
Salve o arquivo e saia do editor quando terminar.
Agora execute o comando ‘a2enmod’ abaixo para ativar o módulo ‘rewrite’, e em seguida, execute o comando ‘a2ensite’ abaixo para ativar o host virtual ‘moodle.conf’.
sudo a2enmod rewrite
sudo a2ensite moodle.confEm seguida, execute o comando ‘apachectl’ abaixo para verificar sua configuração do Apache. Se você tiver uma configuração adequada do Apache, verá uma saída como ‘A Sintaxe está OK’.
sudo apachectl configtest
Por fim, execute o comando ‘systemctl’ abaixo para reiniciar o servidor web Apache e aplicar suas alterações.
sudo systemctl restart apache2Protegendo o Moodle com HTTPS
Neste ponto, sua instalação do Moodle está pronta. Antes de continuar, você protegerá o Moodle com HTTPS através do Certbot e Letsencrypt. Faça isso quando estiver instalando o Moodle em um servidor público. Se você estiver no desenvolvimento local, pode pular ou implementar HTTPS através de certificados autoassinados.
Instale o ‘certbot’ e o plugin ‘python3-certbot-apache’ com o seguinte comando ‘apt’. Digite ‘Y’ para confirmar a instalação.
sudo apt install certbot python3-certbot-apacheApós a conclusão da instalação, execute o seguinte comando ‘certbot’ para gerar certificados SSL para o Moodle. Certifique-se de alterar o nome de domínio e o endereço de e-mail a seguir com seu domínio.
sudo certbot --apache --agree-tos --no-eff-email -m [email protected] -d moodle.howtoforge.localQuando terminar, seus certificados SSL estarão disponíveis no diretório ‘/etc/letsencrypt/live/domain.com’ e sua instalação do Moodle estará rodando sob HTTPS.
Instalação do Moodle
Abra seu navegador web e visite o nome de domínio da sua instalação do Moodle, como https://moodle.howtoforge.local/, e você verá o assistente de instalação do Moodle.
Selecione seu idioma padrão para o Moodle e clique em ‘ Próximo ‘.

Digite seu nome de domínio e o diretório de dados do Moodle para ‘ /var/www/moodledata ‘.

Selecione ‘ MariaDB ‘ como o banco de dados padrão para o Moodle.

Insira os detalhes do seu banco de dados MariaDB, como dbname, dbuser e senha.

Clique em ‘ Continuar ‘ na nota de copyright.

Dentro da seção ‘Verificações do servidor’, certifique-se de que seu servidor Debian atenda aos requisitos do Moodle. O status de cada item deve ser ‘ OK ‘.

Agora você verá a instalação do Moodle como a seguinte:

Uma vez que a instalação esteja concluída, insira seus detalhes de administrador (nome de usuário, e-mail e senha).

Agora insira as informações do seu site Moodle.

Por fim, você verá o seguinte painel de administração do Moodle.

Conclusão
Parabéns! Você concluiu a instalação do Sistema de Gestão de Aprendizagem Moodle (LMS) no servidor Debian 12. Você tem o Moodle em funcionamento com a pilha LAMP (Linux, Apache, MariaDB e PHP) e protegido com UFW (Firewall Descomplicado) e HTTPS através do Certbot e Letsencrypt. A partir daqui, você pode aplicar um novo tema para o Moodle, instalar novos complementos para estender a funcionalidade ou pode aprender o Guia do Usuário do Moodle para gerenciar sua instalação do Moodle.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.