Complete troubleshoot catalog mapping database lockups, execution deadlocks, Redis session conflicts, and OPcache limits. Instantly execute diagnostic and recovery shells.
mdl_task_adhoc and mdl_backup_controllers.
Truncate the backup queue in the database and purge orphaned files inside your temporary dataroot directory.
mysql -u root -p moodle_demo -e "DELETE FROM mdl_task_adhoc WHERE classname LIKE '%restore%';"
mysql -u root -p moodle_demo -e "DELETE FROM mdl_backup_controllers;"
sudo rm -rf /var/moodledata/temp/backup/* /var/moodledata/cache/* /var/moodledata/localcache/*
Inject the login token bypass configuration temporarily in config.php to restore administrative login interfaces.
# Open config.php and inject:
$CFG->disablelogintoken = true;
# Force restart Apache/PHP session handlers:
sudo systemctl restart apache2
Test background cron executions in verbose CLI mode targeting the www-data user descriptor.
# Force execution verbose details:
sudo -u www-data php /var/www/moodl_ulo2026Demo/admin/cli/cron.php --force
# Inspect cron scheduler logs:
grep CRON /var/log/syslog
Leverage Moodle's built-in MySQL collation converter utility directly from the command shell.
sudo -u www-data php /var/www/moodl_ulo2026Demo/admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mariadb-server mariadb-client -y
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-mysql php8.2-xml php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-zip php8.2-soap php8.2-bcmath libapache2-mod-php8.2 -y
sudo apt install git nano cron sendmail certbot python3-certbot-apache unzip rsync net-tools -y
sudo a2enmod rewrite ssl headers
sudo systemctl restart apache2
sudo mysql_secure_installation
CREATE DATABASE moodle_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'moodleDemo2026'@'localhost' IDENTIFIED BY '2026PassDemo!!';
GRANT ALL PRIVILEGES ON moodle_demo.* TO 'moodleDemo2026'@'localhost';
FLUSH PRIVILEGES;
sudo nano /etc/php/8.2/apache2/php.ini
upload_max_filesize = 1080M; post_max_size = 1080M; max_execution_time = 3600
memory_limit = 512M; max_input_vars = 7000; max_input_time = 300
opcache.enable=1; opcache.memory_consumption=256
sudo systemctl restart apache2
cd /var/www
sudo git clone -b MOODLE_500_STABLE git://git.moodle.org/moodle.git moodl_ulo2026Demo
sudo chown -R www-data:www-data /var/www/moodl_ulo2026Demo
sudo chmod -R 755 /var/www/moodl_ulo2026Demo
sudo fdisk /dev/sdb # n → p → Enter → w
sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /var/moodledata
sudo mount /dev/sdb1 /var/moodledata
sudo blkid /dev/sdb1 | tee -a /etc/fstab # add UUID line with defaults,noatime 0 2
sudo chown -R www-data:www-data /var/moodledata && sudo chmod -R 770 /var/moodledata
cd /var/www/moodl_ulo2026Demo && sudo cp config-dist.php config.php
$CFG->dbtype='mariadb'; $CFG->dbhost='localhost'; $CFG->dbname='moodle_demo';
$CFG->dbuser='moodleDemo2026'; $CFG->dbpass='2026PassDemo!!';
$CFG->wwwroot='https://classroom.demodemo.com'; $CFG->dataroot='/var/moodledata';
$CFG->directorypermissions=02775; $CFG->disablelogintoken=true;
sudo nano /etc/apache2/sites-available/moodle.conf
sudo a2ensite moodle.conf; sudo a2dissite 000-default.conf
sudo certbot --apache -d classroom.demodemo.com
sudo certbot renew --dry-run
sudo crontab -u www-data -e
* * * * * /usr/bin/php /var/www/moodl_ulo2026Demo/admin/cli/cron.php > /dev/null
sudo systemctl enable cron; sudo systemctl start cron
sudo -u www-data php /var/www/moodl_ulo2026Demo/admin/cli/cron.php
sudo apt install sendmail -y; sudo sendmailconfig
echo "Subject: Moodle Test" | sendmail admin@demodemo.com
sudo mount -a; df -h | grep moodledata
mysql -u root -p moodle_demo -e "DELETE FROM mdl_task_adhoc WHERE classname LIKE '%restore%';"
mysql -u root -p moodle_demo -e "DELETE FROM mdl_backup_controllers;"
sudo rm -rf /var/moodledata/temp/backup/* /var/moodledata/cache/*
sudo apt install redis-server php8.2-redis -y
sudo systemctl enable redis
sudo chown -R www-data:www-data /var/moodledata /var/www/moodl_ulo2026Demo
sudo chmod -R 755 /var/www/moodl_ulo2026Demo
sudo chmod -R 770 /var/moodledata
sudo usermod -a -G www-data $USER
sudo ufw allow 22/tcp; sudo ufw allow 80/tcp; sudo ufw allow 443/tcp
sudo ufw enable
sudo -u www-data php /var/www/moodl_ulo2026Demo/admin/cli/cron.php --force
mysqladmin -u moodleDemo2026 -p status
php /var/www/moodl_ulo2026Demo/admin/cli/check_database_schema.php
mkdir ~/backups
(crontab -l 2>/dev/null; echo "0 2 * * * mysqldump moodle_demo | gzip > /backup/moodle_\$(date +\%Y\%m\%d).sql.gz") | crontab -
sudo -u www-data php /var/www/moodl_ulo2026Demo/admin/cli/purge_caches.php
sudo -u www-data php /var/www/moodl_ulo2026Demo/admin/cli/fix_deleted_users.php
curl -I https://classroom.demodemo.com
grep dataroot /var/www/moodl_ulo2026Demo/config.php
sudo systemctl status apache2 mariadb cron
$CFG->dbname='moodle_demo';
$CFG->dbuser='moodleDemo2026';
$CFG->dbpass='2026PassDemo!!';
$CFG->wwwroot='https://classroom.demodemo.com';
$CFG->dataroot='/var/moodledata';
<VirtualHost *:443>
ServerName classroom.demodemo.com
DocumentRoot /var/www/moodl_ulo2026Demo
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/classroom.demodemo.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/classroom.demodemo.com/privkey.pem
</VirtualHost>
innodb_buffer_pool_size=2GOPcache Memory:
opcache.enable=1; opcache.memory_consumption=256
sudo -u www-data php admin/cli/reset_password.php
rm -rf /var/moodledata/cache/*