linux sysadmin installs moodle lms on ubuntu server

Como instalar o Moodle no servidor Ubuntu 22.04 | 20.04

Moodle is one of the best learning management systems available. It’s an open software, released under the open source ‘GNU General Public License’ which makes it highly flexible and customizable. In this guide you will learn how to install Moodle on Ubuntu server 20.04/22.04.

We are installing Moodle on a brand new, clean Ubuntu server with no software or data on it. If your server has data on it - make data backup first. Author is not responsible for possible data loss.

Antes de começar

Confira nosso serviço de hospedagem para Moodle edição comunitária. Você pode começar a usar o LMS sem precisar instalá-lo!

Pré-requisitos

  • Instale um Servidor VPS com Ubuntu 22.04 nele
  • Obtenha um profissional totalmente qualificado nome de domínio pointing to your server’s IP address, such as “moodle.example.org”

Para exemplos neste guia, usaremos domínio moodle.exemplo.org, altere-o para seu próprio nome de domínio.

Preparando o servidor Ubuntu para instalação do Moodle

Atualizar o sistema

First thing first – updating the system. To get started connect to your server via SSH. Then run “apt update” and “apt upgrade” commands to update system packages to the latest version.

$ sudo apt update && apt upgrade -y

executing apt update and apt upgrade commands to update Ubuntu server before proceed to moodle installation

Instale o servidor Apache, PHP-8.1, MariaDB MySQL

Em seguida, instale as dependências do Moodle. Precisamos instalar o servidor web Apache, PHP 8.1, servidor MariaDB SQL, servidor de email e uma lista de extensões PHP exigidas pelo Moodle.

$ sudo apt install apache2 php8.1 mariadb-server postfix 
$ sudo apt install php8.1-mysql php8.1-fpm php8.1-iconv php8.1-mbstring php8.1-curl php8.1-tokenizer php8.1-xmlrpc php8.1-soap php8.1-ctype php8.1-zip php8.1-gd php8.1-simplexml php8.1-xml php8.1-intl

Quando a instalação for concluída, inicie o servidor web Apache.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Configurar Apache VirtualHost e PHP-FPM

Estaremos executando o Moodle 4.2 em Apache e PHP-FPM. Na próxima etapa iremos configurar o PHP-FPM para Apache.

1. Inicie o serviço PHP-FPM e habilite-o na inicialização.

$ sudo systemctl start php8.1-fpm
$ sudo systemctl enable php8.1-fpm

2. Para usar PHP-FPM com Apache, precisamos habilitar os módulos proxy_fcgi e proxy.

sudo a2enmod proxy_fcgi proxy

3. Crie um arquivo de configuração Apache para Moodle.

$ sudo nano /etc/apache2/sites-available/moodle.conf

Insira a seguinte configuração no moodle.conf. Substituir Nome do servidor, DocumentRoot, Diretório com seus valores.

<VirtualHost *:80>
ServerName moodle.exemplo.org
ServerAlias www.moodle.exemplo.org
DocumentRoot /home/moodle/public_html

<Directory /home/moodle/public_html>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
</FilesMatch>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salve e feche o arquivo com CTRL X, depois Y e depois Enter.

4. Habilite o novo host virtual e recarregue o servidor web Apache.

$ a2ensite moodle
$ systemctl reload apache2

5. Also it’s nice to have a rewrite and SSL modules enabled

# a2enmod rewrite
# a2enmod ssl
# systemctl restart apache2

Criar banco de dados e um usuário de banco de dados

1. Inicie e habilite o servidor SQL MariaDB

root@moodle-lms-install:~# systemctl start mariadb 
root@moodle-lms-install:~# systemctl enable mariadb

2. Crie usuário e banco de dados MySQL

root@moodle-lms-install:~# mysql
MariaDB [(none)]> create database moodle_dev;
MariaDB [(none)]> grant all privileges on moodle_dev.* to moodle_user@localhost identified by 'Change_to_Strong_SQL_Password';
MariaDB [(none)]> flush privileges;

Depois de configurar o Apache, PHP e MySQL, podemos prosseguir com a instalação do código moodle.

Instale o código Moodle

1. Crie um diretório inicial para o site Moodle e um diretório público

$ useradd --create-home -s /bin/sh moodle
$ mkdir -p /home/moodle/public_html
$ chmod 711 /home/moodle

2. Baixe o código Moodle mais recente e extraia-o para o diretório público.

Você pode baixar o moodle mais recente em https://download.moodle.org/releases/latest/. Get the code and upload it into the public directory. In our case the directory is “/home/moodle/public_html”

Execute a instalação no navegador

Antes de prosseguir para esta etapa final, você precisa apontar seu nome de domínio para o endereço IP do seu servidor. Quando o DNS estiver configurado, você poderá executar a instalação do Moodle em um navegador.

1. Open your browser and navigate to your Moodle’s site domain/sub-domain. You should see Moodle Installation page.

2. Choose website’s language. We will keep English.

choosing a language of moodle during installation
escolhendo um idioma do moodle durante a instalação

 

3. Confirme os caminhos

Na próxima etapa, confirme se o endereço da web, o diretório moodle e o diretório de dados estão corretos. O diretório de dados estava faltando em nossa instalação, então o criamos nesta etapa.

# mkdir /home/moodle/moodledata
# chown www-data:www-data /home/moodle/moodledata

confirm web address, moodle directory, data directory

4. Escolha um servidor de banco de dados

Usamos MariaDB para este guia. Selecione MariaDB no menu suspenso.

choose MariaDB from dropdown

5. Insira as configurações do banco de dados

Insira o nome do banco de dados, usuário do banco de dados e senha que criamos anteriormente.

input database settings

6. Crie o arquivo config.php

After entering database settings and clicking “Next” a config.php file will be generated. Copy content of the file and create “config.php” in the root moodle directory (/home/moodle/public_html in this example).

7. Aceite a licença

Você deve ler e aceitar o contrato de licença do Moodle nesta etapa.

8. Passe nas verificações do servidor

Most of the checks passed in our installation. We only had to change “max_input_vars” from its default value to 5000.

$ nano /etc/php/8.1/fpm/php.ini
$ systemctl reload php8.1-fpm

fix max_input_vars error during moodle installation

9. Configure sua conta de administrador principal

Nesta etapa você deve configurar a conta de administrador. Digite o nome de usuário do administrador, senha e outros detalhes necessários.

10. Insira as configurações iniciais do site

Configure o nome do site, o nome abreviado do site, o resumo inicial do site e outras informações.

 

configure moodle site settings

Crie seu primeiro curso!

After few final clicks you will see the LMS dashboard and Calendar. Proceed to “My Courses” tab and create your first Moodle course! Well done!

my courses tab in fresh installed moodle site