Instala Moodle en tu VPS Ubuntu: Guía Paso a Paso para No Expertos

Instala Moodle  en tu VPS Ubuntu: Guía Paso a Paso para No Expertos

Instala Moodle en tu VPS Ubuntu: Guía Paso a Paso para No Expertos

¿Quieres montar tu plataforma educativa con Moodle sin experiencia técnica? Aprende a instalar Moodle en Ubuntu VPS paso a paso y sin complicaciones.

Si estás aquí, es porque quieres montar tu propia plataforma de aprendizaje online con Moodle, ¡y eso es genial! Esta guía te llevará de la mano, paso a paso, para que puedas instalar Moodle en Ubuntu VPS sin complicaciones, aunque no tengas conocimientos técnicos.

A lo largo de esta instalación aprenderás cómo instalar Moodle en un VPS con Ubuntu, usando herramientas profesionales pero explicadas de forma clara:

  • Apache, nuestro servidor web, que se encargará de mostrar Moodle a los usuarios.
  • MySQL 8, el motor de base de datos donde Moodle guardará toda la información: usuarios, cursos, calificaciones…
  • PHP 8.3, el lenguaje que hace funcionar Moodle por dentro.
  • Y también PHP-FPM, una forma más rápida y eficiente de ejecutar PHP, ideal para mejorar el rendimiento.

No te preocupes si algunos términos te suenan a chino ahora mismo: ¡te lo explicaré todo de forma sencilla y práctica!

¿Qué es Moodle y por qué usar un VPS?

Moodle es una plataforma de aprendizaje digital, también conocida como LMS (Learning Management System), que permite crear, gestionar y ofrecer cursos en línea. De hecho, es el sistema más usado en todo el mundo para educación virtual, no solo por su flexibilidad y funcionalidad, sino también porque es gratuito y de código abierto.

Por ejemplo, imagina que quieres dar clases online, hacer capacitaciones empresariales o incluso montar una academia virtual… Moodle te da todas las herramientas para hacerlo posible.

🔹 Ventajas de usar un VPS frente a hosting compartido

Un VPS es como tener un pedacito de internet solo para ti. En comparación con un hosting compartido, es más seguro, más rápido y te da control total sobre tu instalación. Además, en un VPS puedes instalar lo que necesites, configurarlo a tu gusto y escalar recursos cuando lo necesites.

Y eso no es todo. Hay otro detalle importante: usaremos PHP-FPM junto con Apache. Gracias a esta combinación, no solo se mejora el rendimiento de Moodle, sino que también se permite manejar más usuarios al mismo tiempo de forma eficiente. Podrías decir que es como ponerle un motor turbo a tu plataforma.

En resumen:
Moodle = Plataforma poderosa para enseñar y aprender.
VPS = Control total y mejor desempeño.
PHP-FPM + Apache = Moodle más rápido y estable.

🛠️ ¿Qué necesitas antes de comenzar?

Antes de meternos de lleno en la instalación de Moodle, es fundamental asegurarnos de que todo esté preparado. Esta parte es clave, ya que te ayudará a evitar sorpresas o errores en el camino.

✅ Requisitos mínimos:

  • Ganas de aprender 🧠: No necesitas ser un experto. Sin embargo, sí debes tener disposición para seguir los pasos con atención.
  • Un VPS con Ubuntu 22.04 LTS ☁️: Puedes usar cualquier proveedor, como por ejemplo, DigitalOcean, Vultr, AWS o uno local.
  • Especificaciones recomendadas: Al menos 1–2 vCPU y 2 GB de RAM (aunque 4 GB es ideal para un mejor rendimiento con Moodle).
  • Acceso con permisos de sudo 🔐: De esta forma, podrás ejecutar los comandos necesarios como administrador del sistema.
  • Un nombre de dominio 🌍: Por ejemplo, tuplataforma.com. Esto te permitirá configurar un certificado SSL fácilmente y darle un aspecto más profesional a tu sitio.

💡 Tip adicional: Si solo quieres practicar o hacer pruebas, también puedes usar una máquina virtual local (como VirtualBox) con Ubuntu Server. ¡Funciona perfectamente!

🚀 Paso 1: Actualiza Ubuntu antes de instalar Moodle en Ubuntu VPS paso a paso

Antes de instalar cualquier cosa, en primer lugar, es importante asegurarnos de que tu VPS esté completamente actualizado. Esto es como actualizar las apps de tu móvil: ayuda a que todo funcione mejor y evita problemas de seguridad.

🔌 Cómo conectarte por SSH

Si aún no lo has hecho, conéctate a tu VPS usando SSH desde tu terminal (en Linux o Mac) o desde programas como PuTTY (en Windows). El comando básico es:

Bash
ssh ubuntu@tu.ip.publica

💡 Usuario por defecto: En la mayoría de las instalaciones de Ubuntu (especialmente en VPS), el usuario por defecto suele ser el que se creó durante la instalación inicial. En muchos casos, sobre todo si contrataste el VPS a través de un proveedor como DigitalOcean, Vultr o AWS, ese usuario suele llamarse simplemente ubuntu. Si no estás seguro, pregunta a tu proveedor o revisa la documentación que te proporcionaron al crear la instancia.

🚀 Actualiza tu servidor Ubuntu

Ejecuta estos comandos uno por uno (solo tienes que copiarlos y pegarlos):

Bash
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

No te preocupes por lo que hace cada comando exactamente:

  • sudo es como pedir permiso para hacer cambios importantes en el servidor.
  • apt update busca si hay actualizaciones disponibles.
  • apt upgrade descarga e instala esas actualizaciones.

Todo esto hará que tu servidor esté listo para trabajar con Moodle sin problemas.

🔄 Reinicia tu servidor (opcional pero recomendado)
Después de actualizar, es buena idea reiniciar tu servidor para aplicar todos los cambios correctamente, especialmente si el sistema operativo hubiera instalado una nueva versión del Kernel.

Bash
sudo reboot

Espera unos segundos (más o menos 60-180 segundos) antes de volverte a conectar por SSH.

🌐 Paso 2: Instala Apache (servidor web)

Apache es uno de los servidores web más utilizados en el mundo. Se encargará de mostrar las páginas de Moodle a los usuarios que accedan desde su navegador. En este paso lo instalaremos, configuraremos e haremos algunas pruebas para asegurarnos de que funciona correctamente.

🔧 Instalación de Apache

Bash
sudo apt install -y apache2

Una vez instalado, a continuación, activa Apache para que inicie automáticamente:

Bash
sudo systemctl enable apache2

Ahora, inicia el servicio (aunque probablemente ya esté corriendo):

Bash
sudo systemctl start apache2

Deberías ver algo como active (running). Puedes salir de esta pantalla presionando la tecla q .

🔓 Configuración del firewall (UFW)

Ubuntu viene con un firewall llamado UFW (Uncomplicated Firewall) , que por defecto bloquea gran parte del tráfico. Necesitamos abrir los puertos necesarios para que los usuarios puedan acceder a tu sitio Moodle.

Ejecuta estos comandos para permitir el tráfico HTTP (puerto 80) y HTTPS (puerto 443):

Bash
sudo ufw allow 'Apache Full'

Confirma que las reglas se han aplicado correctamente:

Bash
sudo ufw status

Deberías ver algo similar a esto:

Bash
Status: active

To                         Action      From
--                         ------      ----
Apache Full                ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (IPv6)

✅ Prueba de funcionamiento

Para asegurarte de que Apache está sirviendo páginas correctamente, abre un navegador y visita la dirección IP pública de tu VPS, http://tu.ip.publica .

Deberías ver la página por defecto de Apache («It works!»), lo cual confirma que el servidor web está listo para alojar Moodle.

Instalación de Moodle en Ubuntu VPS, comprobación de página por defecto de Apache2
Instalación de Moodle en Ubuntu VPS, comprobación de página por defecto de Apache2


🗃️ Paso 3: Instala MySQL 8 (base de datos)

Moodle necesita un motor de base de datos para almacenar y gestionar toda la información del sistema: usuarios, cursos, calificaciones, actividades, entre otros. MySQL es una opción popular y compatible, y en este caso usaremos MySQL 8.0 , ya que ofrece mejor rendimiento, seguridad y compatibilidad con Moodle.

🔧 Instalación de MySQL

Bash
sudo apt update
sudo apt install -y mysql-server

Una vez instalado, activa el servicio para que inicie automáticamente al encender el servidor y arráncalo:

Bash
sudo systemctl enable mysql
sudo systemctl start mysql

💡 Nota: Es posible que veas que algunos comandos se repiten en tutoriales o scripts. Esto ocurre cuando se ejecutan por error o falta claridad sobre si ya se ha instalado algo. Aquí solo necesitas ejecutarlos una vez.

🔐 Securiza tu instalación de MySQL

MySQL viene con una utilidad llamada mysql_secure_installation que te ayuda a mejorar la seguridad de tu base de datos. Ejecútala con el siguiente comando:

Bash
sudo mysql_secure_installation

Este asistente te preguntará lo siguiente:

  • Si deseas configurar la contraseña del usuario root de MySQL (recomendado).
  • Si quieres eliminar las bases de datos anónimas.
  • Si deseas deshabilitar el acceso remoto al root.
  • Si quieres eliminar el acceso al usuario test.

Responde según tus necesidades. En entornos de producción, siempre es recomendable responder Sí (Y) a todas las opciones de seguridad.

⚠️ Importante: Al finalizar, no olvides guardar tus credenciales. Las usarás más adelante al configurar Moodle.

🔧 Paso 4: Instalando PHP 8.3 para Moodle en Ubuntu VPS

PHP es el lenguaje en el que está construido Moodle. Es decir, sin PHP, Moodle no puede funcionar.
Vamos a instalar PHP 8.3 y algunas extensiones necesarias. También usaremos PHP-FPM , una versión más moderna y eficiente que mejora el rendimiento del servidor web.

Instala y verifica PHP-FPM en Ubuntu

Por defecto, Ubuntu 22.04 no trae PHP 8.3, así que vamos a añadir un repositorio confiable:

📦 Añade un repositorio para tener PHP 8.3

Bash
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

Este repositorio (el famoso ppa:ondrej/php) es ampliamente usado por desarrolladores y ofrece versiones actualizadas de PHP.

💾 Instala PHP 8.3 y sus extensiones

Ejecuta este comando para instalar PHP 8.3 junto con todas las extensiones que Moodle necesita para funcionar correctamente:

Bash
sudo apt install -y php8.3 php8.3-fpm php8.3-mysql php8.3-pdo php8.3-xml php8.3-curl php8.3-gd php8.3-intl php8.3-mbstring php8.3-soap php8.3-zip php8.3-xmlrpc php8.3-bcmath php8.3-sodium php8.3-opcache

⚙️ ¿Qué hace cada extensión?
No te preocupes por los nombres raros: son como «herramientas» que Moodle usa para hacer cosas como subir archivos, trabajar con imágenes, conectarse a la base de datos, etc.

✅ Verifica que PHP esté instalado correctamente:

Para confirmar que PHP 8.3 se instaló correctamente ejecutaremos el siguiente comando:

Bash
php -v

Deberías ver algo como esto:

Instalación de Moodle en Ubuntu VPS, comprobación de versión de PHP
Instalación de Moodle en Ubuntu VPS, comprobación de versión de PHP

Comprueba también que PHP-FPM esté funcionando:

Bash
sudo systemctl status php8.3-fpm

Y activa su inicio automático al reiniciar el servidor:

Bash
sudo systemctl enable php8.3-fpm

⚙️ Ajustes clave del archivo php.ini para Moodle

Ahora vamos a hacer algunos pequeños cambios en la configuración de PHP para adaptarla a Moodle. Puedes editar el archivo php.ini con tu editor favorito, por ejemplo:

Bash
sudo nano /etc/php/8.3/fpm/php.ini

Revisa y ajusta los siguientes valores para evitar problemas de carga, especialmente al subir archivos grandes:

Bash
memory_limit = 512M         ; Cuánta memoria puede usar PHP
post_max_size = 100M        ; Tamaño máximo de formularios
upload_max_filesize = 100M  ; Tamaño máximo de archivos que puedes subir
max_execution_time = 300    ; Tiempo máximo que puede tardar un script
max_input_time = 300        ; Tiempo máximo para recibir datos
max_input_vars = 9999       ; Límite superior para campos en formularios
default_charset = "UTF-8"   ; Codificación correcta para tildes y símbolos

💡 Puedes aumentar estos valores si planeas subir archivos muy grandes o usar cursos con muchos recursos.

💾 Guarda y cierra:

  • Para guardar: presiona Ctrl + O , luego Enter.
  • Para salir: Ctrl + X .

Después de guardar los cambios, reinicia PHP-FPM para que la nueva configuración tenga efecto:

Bash
sudo systemctl restart php8.3-fpm

✅ ¡Listo! PHP 8.3 ya está instalado y listo para usar con Moodle. Ahora Moodle podrá cargar rápido, manejar más usuarios y soportar archivos grandes.

🔗 Paso 5: Conectando Apache con PHP-FPM para instalar Moodle

Ahora que tenemos Apache y PHP instalados, necesitamos hacer que «hablen» entre sí.
Apache recibe las peticiones de los navegadores, pero cuando hay un archivo .php (como los de Moodle), necesita pasárselo a PHP-FPM para que lo procese y devuelva el resultado al usuario.

🔧 Activamos los módulos necesarios en Apache

Ejecuta este comando para activar los módulos que permiten esta conexión:

Bash
sudo a2enmod proxy_fcgi setenvif rewrite headers

Estos módulos hacen lo siguiente:

  • proxy_fcgi: permite conectar Apache con PHP-FPM.
  • setenvif: ayuda a configurar variables según ciertas condiciones.
  • rewrite: necesario para que Moodle use direcciones web más limpias y fáciles de leer.
  • headers: nos servirá más adelante para mejorar la seguridad del sitio.

🔁 Reinicia Apache para aplicar los cambios

Bash
sudo systemctl restart apache2

Este reinicio asegura que Apache cargue los nuevos módulos y esté listo para trabajar con PHP-FPM.
✅ ¡Listo! Ahora Apache sabe cómo enviarle trabajo a PHP-FPM cada vez que se necesite ejecutar código PHP. Esto hará que Moodle funcione rápido y sin errores.

🧩 Paso 6: Configura el VirtualHost en Apache para instalar Moodle en Ubuntu VPS

Para que los usuarios puedan acceder a Moodle escribiendo un dominio (como tucurso.com) en su navegador, necesitas configurar un VirtualHost en Apache.

Configura Apache para tu dominio personalizado

¿Necesito un dominio sí o sí? No, pero es muy recomendable. Además de hacer tu sitio más profesional, un dominio te permitirá obtener fácilmente un certificado SSL con Let’s Encrypt en los próximos pasos.

Puedes registrar un dominio económico en Namecheap, DonDominio, Hostinger, OVH o cualquier proveedor de confianza. Luego, apúntalo al VPS creando un registro A en tu panel DNS, apuntando a la IP del servidor.

💡 Si no sabes cuál es la IP pública de tu servidor, ejecuta este comando:

Bash
curl ip.me

Te mostrará la dirección IP que debes usar en tu panel de DNS.

Crea y habilita el VirtualHost de Moodle

Después de completar estos pasos previos, vamos a crear nuestro VirtualHost.

📁 Paso 1: Crea la carpeta donde vivirá Moodle

Primero, crea la carpeta donde vivirá tu instalación de Moodle:

Bash
sudo mkdir -p /var/www/html/moodle

Esta será la carpeta raíz de tu instalación de Moodle.

📄 Paso 2: Crea el archivo de configuración del VirtualHost

A continuación, crea un nuevo archivo de configuración para tu sitio Moodle en Apache:

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

Y añade este contenido (ajusta tudominio.com por el tuyo):

Apache
<VirtualHost *:80>
    ServerAdmin admin@tudominio.com
    DocumentRoot /var/www/html/moodle/
    ServerName tudominio.com
    ServerAlias www.tudominio.com

    <Directory /var/www/html/moodle/>
        Options Indexes FollowSymLinks
        Require all granted
        AllowOverride All
        DirectoryIndex index.php index.html
    </Directory>

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/var/www/html/moodle"
    </FilesMatch>
</VirtualHost>

🔁 Importante:

Cambia todas las apariciones de tudominio.com por tu dominio real.
Si usaste otro nombre de usuario o ruta, ajusta la línea DocumentRoot y la carpeta /var/www/html/moodle/ según corresponda.

Guarda los cambios con Ctrl + O , pulsa Enter y luego Ctrl + X para salir.

⚙️ Paso 3: Desactiva el sitio por defecto y activa el vhost de Moodle

Apache trae un sitio predeterminado que ya no necesitamos:

Bash
sudo a2dissite 000-default.conf

Y activamos nuestro nuevo sitio:

Bash
sudo a2ensite moodle.conf

🔁 Reinicia Apache para aplicar los cambios

Bash
sudo systemctl restart apache2

Este reinicio hace que Apache use tu nueva configuración.

✅ ¡Listo! Ya has creado el VirtualHost para Moodle , y tu servidor está listo para recibir visitas a través de tu dominio.

🗃️ Paso 7: Creando el Espacio para Moodle en la Base de Datos

Moodle necesita un lugar seguro donde guardar toda su información: usuarios, cursos, calificaciones… Ese lugar es la base de datos.
Este paso es esencial para instalar Moodle en Ubuntu VPS de forma estable y segura, ya que una base de datos mal configurada puede provocar errores más adelante.
Vamos a crear:

  • Una base de datos llamada moodle
  • Un usuario especial solo para Moodle
  • Y le daremos permisos limitados a esa base de datos (por seguridad)

🔐 Accede a MySQL

Ejecuta este comando para entrar al entorno de MySQL:

Bash
sudo mysql -u root -p

Te pedirá la contraseña del usuario root de MySQL que definiste durante la instalación.

📦 Crea la base de datos

Dentro de MySQL, ejecuta estas órdenes una por una:

SQL
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Este comando crea una base de datos llamada moodle y asegura que soporte caracteres especiales como tildes, símbolos y hasta emojis 😊.

👤 Crea un usuario dedicado para Moodle

Elige un nombre de usuario y una contraseña segura (y apúntalos):

SQL
CREATE USER 'tu_usuario_moodle'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';

Ejemplo:

SQL
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'ClaveSuperSegura123!_.';

🔐 Asígnale permisos al usuario

Ahora le damos permisos específicos al usuario sobre la base de datos moodle:

SQL
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER
ON moodle.* TO 'tu_usuario_moodle'@'localhost';

💾 Guarda los cambios y sal de MySQL

Finaliza con este comando:

SQL
FLUSH PRIVILEGES;
EXIT;

✅ ¡Listo! Ya tienes una base de datos y un usuario listos para que Moodle empiece a usarlos. Con este paso completado, estás un paso más cerca de instalar Moodle en Ubuntu VPS con éxito.

📥 Paso 8: Descargar Moodle para instalarlo en tu VPS Ubuntu

Moodle es una plataforma de código abierto, lo que significa que puedes descargarla y ejecutarla tú mismo en tu propio servidor.
En esta sección vamos a descargar Moodle 4.5.4+ directamente desde su repositorio oficial usando Git, una herramienta muy útil para desarrolladores y administradores.

🌐 Moodle es la plataforma de aprendizaje de código abierto más utilizada en el mundo, diseñada para que educadores, administradores y estudiantes creen entornos personalizados de aprendizaje.

Este paso es fundamental si tu objetivo es instalar Moodle en Ubuntu VPS de forma profesional, utilizando siempre la versión más reciente y segura del software.

🛠️ Instala Git si no lo tienes

Bash
sudo apt install -y git

📁 Navega a la carpeta raíz de Apache

Bash
cd /var/www/

📦 Descarga Moodle con Git
Usa este comando para descargar la última versión estable, en este caso Moodle 4.5.4+.

Bash
sudo git clone https://github.com/moodle/moodle.git moodle
cd moodle
sudo git checkout MOODLE_405_STABLE
sudo git pull

✅ Este comando descarga el repositorio de Moodle entero, luego cambia a la rama MOODLE_405_STABLE, que es la actual rama estable LTS de Moodle desde abril de 2025.
⚠️ Si estás leyendo esto tiempo después, asegúrate de usar la rama correcta para la versión actual (por ejemplo: MOODLE_51_STABLE).

🧾 Cambia los permisos de la carpeta

Apache (el servidor web) necesita tener permiso para trabajar con los archivos de Moodle:

Bash
sudo chown -R www-data:www-data /var/www/moodle
sudo chmod -R 755 /var/www/moodle

Estas órdenes hacen que el usuario www-data (usado por Apache) sea el dueño de la carpeta y pueda leer y escribir en ella.

✅ ¡Listo! Moodle ya está descargado y preparado para la instalación. En el siguiente paso comenzaremos la instalación web desde el navegador y verás cómo todo lo anterior encaja para instalar Moodle en Ubuntu VPS de forma limpia y funcional.

🧺 Paso 9: Creando la «Despensa» de Moodle (moodledata)

Moodle necesita un lugar especial donde guardar todo lo que suben profesores y estudiantes: documentos, imágenes, vídeos, archivos adjuntos…
Es como la despensa o almacén de tu plataforma educativa.

Por razones de seguridad, esta carpeta no debe estar dentro de la carpeta web (es decir, fuera del directorio /var/www/moodle). Así evitamos que cualquiera pueda acceder a esos archivos desde internet.

📁 Paso 1: Crea la carpeta moodledata
Ejecuta este comando:

Bash
sudo mkdir /var/www/moodledata

Este comando crea una nueva carpeta en el servidor que servirá como almacenamiento privado para Moodle.

🔐 Paso 2: Dale permisos a Apache
Apache necesita tener acceso a esta carpeta para poder leer y escribir archivos. Ejecuta estos comandos:

Bash
sudo chown -R www-data:www-data /var/www/moodledata
sudo chmod -R 770 /var/www/moodledata
  • chown: le da el control de la carpeta al usuario www-data, que es el que usa Apache.
  • chmod 770: permite que solo el propietario (Apache) y usuarios del mismo grupo puedan acceder a ella. Es más seguro que usar 777

Importante:
Nunca uses chmod 777 en esta carpeta. Sería como dejar la puerta abierta para que cualquiera entre a tu sistema.
770 es suficiente y mucho más seguro.

✅ ¡Listo! Ahora Moodle tiene su espacio privado para guardar los archivos que se suban desde la plataforma.


🔒 Paso 10: Instalando un Certificado SSL con Let’s Encrypt

Ahora que tu servidor ya tiene Moodle instalado y funcionando con Apache, es hora de protegerlo con HTTPS usando un certificado SSL gratuito de Let’s Encrypt.

Si todavía no tienes un certificado SSL , te recomiendo encarecidamente usar Let’s Encrypt , una autoridad certificadora gratuita, automatizada y de confianza .

Configura Certbot y genera tu certificado gratuito

Vamos a instalar Certbot, la herramienta oficial de Let’s Encrypt, y emitir tu primer certificado:

📦 Paso 1: Instala Certbot
Certbot es una herramienta que facilita enormemente la obtención e instalación de certificados SSL gratuitos.
Ejecuta este comando para instalarlo junto con el plugin de Apache:

Bash
sudo apt install -y certbot python3-certbot-apache

Este paquete incluye todo lo necesario para integrar automáticamente los certificados con tu sitio web.

🔐 Paso 2: Solicita tu certificado SSL
Ejecuta este comando (cambia tudominio.com por tu dominio real):

Bash
sudo certbot --apache -d tudominio.com -d www.tudominio.com

Si no usaste el subdominio www, simplemente ejecuta:

Bash
sudo certbot --apache -d tudominio.com

Durante la instalación:

  • Te pedirá tu correo electrónico para recibir notificaciones importantes (opcional pero recomendado).
  • Deberás aceptar los términos de servicio .
  • Podrás elegir si deseas redirigir automáticamente todo el tráfico desde HTTP a HTTPS (recomendado).

Selecciona la opción de redirección y deja que Certbot haga su magia.

🔄 Paso 3: Confirma la configuración automática
Una vez terminado, Certbot habrá modificado automáticamente la configuración de Apache para usar tu nuevo certificado SSL, y también habrá activado la redirección a HTTPS si así lo elegiste.

Si quieres asegurarte, reinicia Apache:

Bash
sudo systemctl restart apache2

🔍 Paso 4: Prueba tu conexión segura
Abre tu navegador y visita:

Bash
https://tudominio.com 

Verás un candado 🔒 en la barra de direcciones. ¡Tu conexión ya es segura!


🕰️ Paso 5: Renovación automática del certificado
Los certificados de Let’s Encrypt duran 90 días , pero no te preocupes: al instalar Certbot, ya se configura automáticamente un temporizador para renovar los certificados antes de que expiren.

Además, puedes probar cómo funciona esta renovación con:

Bash
sudo certbot renew --dry-run

Si no aparece ningún error, ¡todo está listo y tu certificado se renovará solo!


✅ ¡Listo! Tu plataforma Moodle ahora tiene conexión segura HTTPS gracias a Let’s Encrypt.
Tus usuarios pueden acceder tranquilos y Moodle estará protegido frente a conexiones inseguras.

🔗 Más información sobre Let’s Encrypt:

🌐 Paso 11: Instalar Moodle en Ubuntu VPS desde el Navegador Paso a Paso

Ahora que has preparado todo el entorno (Apache, PHP, MySQL, la base de datos y la carpeta moodledata), es momento de comenzar la instalación real de Moodle desde el navegador.

Este paso es como un asistente gráfico: Moodle se conectará a la base de datos, creará las tablas necesarias y te permitirá configurar los ajustes iniciales de tu plataforma.

🧭 Paso 1: Accede desde tu navegador

Abre tu navegador web y visita la dirección de tu dominio con http://, por ejemplo:

http://tudominio.com

Si aún no apuntas tu dominio, también puedes probar accediendo desde la IP pública de tu VPS:

http://tu.ip.publica

Moodle detectará que es la primera vez que accedes y comenzará automáticamente el asistente de instalación .


🗺️ Paso 2: Selecciona el idioma
En la primera pantalla, selecciona el idioma en el que deseas instalar Moodle (por ejemplo, Español ) y haz clic en «Siguiente» .

Página principal de la instalación de Moodle
Página principal de la instalación de Moodle




📁 Paso 3: Confirma las rutas
Moodle ya debería haber detectado automáticamente estas carpetas:

  • Dirección web : http://tudominio.com
  • Ubicación del sitio en el servidor : /var/www/moodle
  • Carpeta de datos (moodledata) : /var/www/moodledata

Si todo está correcto, haz clic en «Siguiente» .

Instalación de Moodle, selección de directorios y url
Instalación de Moodle, selección de directorios y url

🗃️ Paso 4: Selecciona el tipo de base de datos
Elige MySQL mejorado ( native/mysqli ) como motor de base de datos y haz clic en «Siguiente» .

Instalación de Moodle, selección de motor de base de datos
Instalación de Moodle, selección de motor de base de datos

🔐 Paso 5: Configura la conexión a la base de datos
Introduce los siguientes datos:

  • Nombre de host : localhost
  • Nombre de la base de datos : moodle
  • Usuario de la base de datos : tu_usuario_moodle (el que creaste antes)
  • Contraseña de la base de datos : tu_contraseña_segura

Haz clic en «Siguiente» .

Instalación de Moodle, configuración de la base de datos
Instalación de Moodle, configuración de la base de datos



⚙️ Paso 6: Comienza con la instalación

Acepta el contrato de Licencia de Moodle y confirma que has leído los términos y condiciones.

Instalación de Moodle, aceptación de licencias y comienzo de instalación
Instalación de Moodle, aceptación de licencias y comienzo de instalación

Una vez aceptado el contrato de licencia de Moodle, este realizará una serie de comprobaciones de versiones de PHP, MySQL y otros parámetros del PHP.ini que previamente hemos modificado para que pasen la comprobación y poder comenzar a instalar Moodle.

Instalación de Moodle, comprobaciones de versiones de software y valores de PHP
Instalación de Moodle, comprobaciones de versiones de software y valores de PHP

Una vez realizadas las comprobaciones y viendo que funcionan, podemos continuar instalando Moodle, para ello apretaremos en el botón Continuar y dejaremos que el programa de instalación continúe. Este paso puede ser que tarde unos 5 minutos, así que te recomiendo hacer una pausa y tomarte un café.

En el caso que las validaciones no las hayas superado, el instalador te indicará en donde falla tu sistema y qué valores debes modificar.
Si has seguido este tutorial paso a paso, no deberías tener problemas.

Instalación de Moodle en Ubuntu VPS, instalando módulos de Moodle
Instalación de Moodle en Ubuntu VPS, instalando módulos de Moodle

Una vez que haya terminado de instalarse Moodle, te lo indicará, tendrás que apretar un botón azul con el texto Siguiente, cuando lo hagas, pasaremos al paso 7.

👤 Paso 7: Crea el usuario administrador
Ahora crearás la cuenta del administrador principal de tu plataforma . Esta es una cuenta muy importante, así que usa credenciales seguras.

Rellena estos campos:

  • Nombre completo
  • Nombre de usuario
  • Correo electrónico
  • Contraseña

Haz clic en «Siguiente» .

Instalación de Moodle, configuración del usuario administrador
Instalación de Moodle, configuración del usuario administrador


🏁 Paso 8: Configura tu sitio
Escribe el nombre de tu sitio (por ejemplo, «Plataforma EduTec») y selecciona:

  • País
  • Zona horaria
  • Formato del curso (deja el predeterminado si no sabes qué elegir)

Haz clic en «Guardar cambios» o «Siguiente» según corresponda.

Instalación de Moodle, configuración del nombre del sitio
Instalación de Moodle, configuración del nombre del sitio

🕒 Paso 9: Registra el sitio, opcional pero recomendable

Al finalizar la instalación, Moodle te ofrece la posibilidad de registrar tu sitio con Moodle HQ. Este paso es opcional, pero altamente recomendable, ya que te permite:

  • Recibir alertas de seguridad y notificaciones sobre nuevas versiones de Moodle.
  • Estar al día con noticias importantes y mejoras.
  • Aumentar la visibilidad de tu plataforma si decides listarla públicamente.
  • Acceder a la app oficial de Moodle para administradores.

Solo necesitas indicar el nombre de tu plataforma, país e idioma, y marcar si deseas recibir actualizaciones. No se comparten datos personales y puedes elegir no hacer público tu sitio.

✅ Si prefieres omitirlo por ahora, puedes hacer clic en «Saltar» y continuar con el uso de Moodle sin problema.

Instalación de Moodle en Ubuntu VPS, registrar la instalación de Moodle
Instalación de Moodle en Ubuntu VPS, registrar la instalación de Moodle



✅ ¡Listo! Has completado con éxito la instalación de Moodle desde el navegador .
Ya puedes iniciar sesión como administrador y empezar a personalizar tu plataforma.

Instalación de Moodle en Ubuntu VPS, página de bienvenida o dashboard
Instalación de Moodle en Ubuntu VPS, página de bienvenida o dashboard


🕒 Paso 12: Configura el Cron en tu VPS tras instalar Moodle en Ubuntu

Moodle necesita hacer tareas en segundo plano: enviar correos, actualizar datos, limpiar archivos antiguos, notificar eventos…
Pero, ¿quién le recuerda que haga estas cosas?

Ese es el trabajo de Cron, como un ayudante automático que se asegura de que Moodle nunca se olvide de nada importante.

Si estás siguiendo esta guía para instalar Moodle en Ubuntu VPS, configurar correctamente el cron es uno de los pasos más importantes para asegurar que tu plataforma funcione sin errores a largo plazo.

Vamos a configurarlo para que funcione automáticamente cada minuto.

⚙️ Paso 1: Edita el cron del usuario www-data
El usuario que ejecuta Apache en Ubuntu es www-data. Para configurar el cron como ese usuario, ejecuta:

Bash
sudo crontab -u www-data -e

Si aparece un menú preguntando qué editor usar, selecciona nano (es el más fácil para principiantes).

📝 Paso 2: Añade la línea de Cron para Moodle
Una vez dentro del editor nano, baja al final del archivo y añade esta línea:

Bash
* * * * * /usr/bin/php /var/www/moodle/admin/cli/cron.php >/dev/null

Esta línea significa:
👉 «Cada minuto (* * * * *), ejecuta el script cron.php de Moodle usando PHP».

  • /usr/bin/php: es la ubicación del programa intérprete PHP.
  • /var/www/moodle/admin/cli/cron.php: es el script encargado de ejecutar las tareas programadas de Moodle.
  • >/dev/null: evita que se muestan mensajes innecesarios por pantalla.

💾 Paso 3: Guarda los cambios

Para guardar:

  • Pulsa Ctrl + O
  • Luego Enter

Para salir:

  • Pulsa Ctrl + X

✅ Paso 4: Verifica que funciona
Inicia sesión en Moodle como administrador y ve a:

Administración del sitio > Servidor > Tareas programadas

En la columna «Última ejecución» , deberías ver cómo se actualiza cada minuto, lo cual confirma que el cron está funcionando correctamente, algo como lo que se visualiza en esta captura de un Moodle en producción.

Instalación de Moodle en VPS, tareas programadas, vista en el administrador de Moodle
Instalación de Moodle en VPS, tareas programadas, vista en el administrador de Moodle


✅ ¡Listo! Has configurado con éxito el ayudante secreto de Moodle. Esta parte es clave para quienes quieren instalar Moodle en Ubuntu VPS con una configuración completa, estable y profesional.


🔒 Paso 13: Protegiendo tu Servidor con Fail2ban y Consejos de Seguridad

Ahora que tienes Moodle funcionando, es momento de asegurarlo bien. En este paso aprenderás a proteger tu servidor contra intentos de intrusión y a mantener tu plataforma segura y actualizada.


🚧 13.1. Fail2ban: El Portero Inteligente de tu Servidor

Fail2ban es una herramienta que actúa como un portero de seguridad: revisa los logs del sistema y bloquea automáticamente las direcciones IP que intentan acceder de forma maliciosa o repetitiva (como en ataques por fuerza bruta).

📦 Instalación de Fail2ban
Ejecuta estos comandos:

Bash
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Esto instala Fail2ban, lo activa al iniciar el sistema y lo pone en marcha inmediatamente.

⚙️ Configura Fail2ban
En lugar de modificar directamente el archivo original, crearemos uno personalizado:

Bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Dentro de ese archivo, busca y modifica estas secciones:

🔐 [sshd] – Protección contra ataques SSH

INI
[sshd]
enabled = true
# port = ssh        ; Cambia si usas otro puerto
# maxretry = 3      ; Bloquea tras 3 intentos fallidos
# bantime = 1d      ; Bloqueo de 1 día

Este filtro protege tu acceso SSH, evitando que robots o atacantes entren al servidor probando contraseñas.

🌐 [apache-*] – Protección básica para Apache
Agrega o verifica que estén activados estos filtros:

INI
[apache-auth]
enabled = true
# maxretry = 5
# bantime = 1h


[apache-badbots]
enabled = true
# maxretry = 2
# bantime = 2d


[apache-noscript]
enabled = true
# maxretry = 2
# bantime = 1d

Estos filtros ayudan a bloquear bots maliciosos y accesos no autorizados a tu sitio web.

💡 Nota: Moodle tiene su propio sistema de bloqueo de cuentas, así que no necesitas configurar específicamente un filtro para Moodle a menos que tengas requisitos avanzados.

🔄 Reinicia Fail2ban para aplicar cambios

Bash
sudo systemctl restart fail2ban

✅ Verifica que está funcionando
Para ver el estado general de Fail2ban:

Bash
sudo fail2ban-client status

Y para ver detalles sobre la protección de SSH:

Bash
sudo fail2ban-client status sshd

Verás cuántas IPs han sido bloqueadas y por qué motivo.

🛡️ 13.2. Más Consejos para un Moodle Seguro y Estable

La seguridad no termina aquí. Aquí tienes algunos consejos clave para mantener tu Moodle fuerte y seguro:


🔑 Acceso SSH más seguro

  • Cambia el puerto SSH (opcional): Si cambias el puerto por defecto (22), recuerda actualizar también UFW y la configuración de Fail2ban.
  • Usa claves SSH : Es mucho más seguro que usar solo contraseña. Busca cómo generar y usar claves SSH si aún no lo haces.

🔥 Cortafuegos (UFW)
Ya lo usaste para abrir puertos de Apache. Asegúrate de que esté activo:

Bash
sudo ufw enable
sudo ufw status

Permite únicamente los servicios necesarios:

  • OpenSSH (para acceso remoto)
  • Apache Full (HTTP/HTTPS)

🔄 Mantén todo actualizado

Bash
sudo apt update && sudo apt upgrade -y

Mantén actualizado tu sistema, PHP, MySQL, Apache y, por supuesto, Moodle y sus plugins.


🔐 Contraseñas seguras

  • Contraseña del administrador de Moodle : Debe ser única, larga y compleja.
  • Políticas de contraseña : Ve a
    Administración > Seguridad > Políticas del sitio
    y exige contraseñas seguras a tus usuarios.
  • Bloqueo de cuentas : Actívalo para evitar ataques por fuerza bruta.

En esta guía tienes cómo aplicar políticas de seguridad más estrictas en Moodle y cómo habilitar el segundo factor de autenticación, lo que blindará aún más la seguridad de tu Moodle.

📢 Informes y ajustes de seguridad en Moodle

  • Registro de tu sitio :
    Ve a Administración > Registro para recibir alertas de seguridad importantes.
  • Informe de seguridad :
    Ve a Administración > Informes > Vista general de seguridad para detectar posibles riesgos.
  • Seguridad HTTP :
    En Administración > Seguridad > Seguridad HTTP , activa:
    • Sólo conexión HTTPS
    • Cookies seguras ( si ya utilizas HTTPS siempre )

🧩 Plugins y permisos

  • Instala solo los plugins necesarios , y desde fuentes confiables.
  • Evita permisos 777 : Usa permisos más restrictivos.
  • Protege config.php después de la instalación:
    • sudo chmod 444 /var/www/moodle/config.php

💾 Copias de seguridad: Tu mejor amiga

Haz copias periódicas de:

  • Carpeta Moodle: /var/www/moodle/
  • Carpeta moodledata: /var/www/moodledata/
  • Base de datos MySQL

Y lo más importante:
✅ ¡Prueba de vez en cuando que puedes restaurarlas!

🚀 Optimización del rendimiento

Cuando tengas muchos usuarios, considera ajustar:

  • MySQL (con herramientas como mysqltuner)
  • Apache (mpm_event + PHP-FPM)
  • PHP (ajustar memoria y tiempos)


✅ ¡Listo! Has terminado de proteger tu servidor y has aprendido a mantener Moodle seguro y actualizado.

🎯 Conclusión: ¡Felicidades, has creado tu propia plataforma educativa!

Si has llegado hasta aquí, enhorabuena: has logrado instalar Moodle en Ubuntu VPS desde cero. Además, has configurado un servidor web seguro, rápido y listo para enseñar, aprender y compartir conocimiento.

Desde el primer paso hasta el último ajuste de seguridad, has construido una plataforma sólida que puede servir como base para cursos online, capacitaciones empresariales, formación escolar o cualquier proyecto educativo que tengas en mente.

Sin embargo, esto no es el final…
Es solo el comienzo.

¿Qué hacer después de instalar Moodle en Ubuntu VPS con éxito?

Ahora que has conseguido instalar Moodle en tu VPS con Ubuntu, puedes:

🧩 Añadir nuevos cursos y recursos interactivos.
🎨 Personalizar el diseño y el tema de tu sitio.
🔌 Instalar plugins útiles para mejorar la experiencia de tus usuarios.
👥 Invitar a profesores y estudiantes a usar tu nueva plataforma.
📈 Escalar tu instalación según crezca tu comunidad.

Por otro lado, recuerda que Moodle es una herramienta viva: mantenerla actualizada es esencial para su rendimiento y seguridad. Para ayudarte con eso, te recomiendo mi guía dedicada:
👉 Mantén tu Moodle al día: Guía profesional para una actualización con éxito

🎓 En resumen, con esta guía no solo aprendiste a instalar Moodle en Ubuntu VPS, sino que diste el primer paso hacia el control total de tu entorno digital de aprendizaje.

¡Ahora te toca brillar!

📚 Sigue aprendiendo sobre Moodle

Ahora que ya sabes cómo instalar Moodle en Ubuntu VPS, es el momento de seguir profundizando. En mi blog encontrarás más guías prácticas, avanzadas y enfocadas a sacar el máximo rendimiento a tu plataforma educativa.

👉 Explora todos mis contenidos sobre Moodle aquí:
https://www.andresmartinezsoto.eu/category/moodle/

Algunas lecturas recomendadas:

🔄 Mantén tu Moodle al Día: Guía Profesional para una actualización con éxito
Aprende cómo actualizar Moodle de forma segura y sin errores, con Git, backups y control de versiones. Perfecto después de una instalación nueva.

🐳 Instala Moodle con Docker: Flexibilidad Total y Entornos Reproducibles
Una alternativa moderna a la instalación en VPS. Ideal para quienes buscan portabilidad, pruebas o despliegues rápidos.

🤖 Dale superpoderes a tu Moodle con IA local: Cómo integrar Ollama en tu servidor
Agrega inteligencia artificial con modelos como Mistral o phi sin depender de la nube. Guía completa desde cero.

🔐 ¡Blindaje Extra para tu Moodle! Guía de Configuración MFA y Consejos de Seguridad Esenciales
Protege tu plataforma educativa con autenticación multifactor y buenas prácticas de seguridad.

⚙️ Automatización Avanzada en Moodle: Cron Jobs, Scripts PHP y Tareas Programadas
Guía para llevar la automatización de tu Moodle al siguiente nivel. Ideal tras completar la instalación base.

📰 ¿Quieres más?
Seguiré publicando nuevas guías sobre Moodle para ayudarte a optimizar, personalizar y escalar tu plataforma.
Suscríbete a mi blog o vuelve pronto para no perderte nada.
Tu Moodle puede ir mucho más lejos… y te mostraré cómo.

🙏 Gracias por leerme.
Me alegra poder ayudarte a construir algo grande con Moodle. ¡Nos vemos en el próximo artículo!

🚀 ¿Listo para instalar tu propia plataforma Moodle?

Has llegado hasta aquí porque quieres montar tu propia plataforma educativa con Moodle, y eso es genial.
Pero si tras leer esta guía aún te quedan dudas, falta tiempo o simplemente prefieres contar con ayuda experta, no estás solo.

💡 ¿Por qué contactar con nosotros?
Te ayudamos a:

  • Instalar Moodle desde cero en tu VPS.
  • Configurar Apache, MySQL, PHP y el entorno seguro necesario.
  • Ajustar Moodle para tus necesidades: idioma, plugins, integraciones, diseño…
  • Dejarte todo listo para empezar a crear cursos desde el primer día.

👉 Sin complicaciones, paso a paso y adaptándonos a tu nivel técnico.


Entornos de Formación - edTech Solutions

📩 ¿Cómo podemos ayudarte?

Cuéntanos cuáles son tus objetivos:
¿Es para una escuela? ¿Una empresa? ¿Un proyecto personal?
Nosotros nos encargamos del resto.

📩 Contáctanos hoy mismo y comencemos juntos tu proyecto Moodle.
Tu plataforma educativa está más cerca de lo que piensas.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *