{"id":853,"date":"2016-08-23T19:59:13","date_gmt":"2016-08-23T14:29:13","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=853"},"modified":"2026-09-08T09:30:23","modified_gmt":"2026-09-08T04:00:23","slug":"moodle-installation-on-ubuntu","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/moodle-installation-on-ubuntu\/","title":{"rendered":"Moodle installation on Ubuntu"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle is an open-source learning management system (LMS) used to create and manage online learning platforms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide explains how to install Moodle on a plain Ubuntu server using Apache, PHP-FPM, and MySQL. It covers the required packages, Apache and PHP-FPM configuration, Moodle installation from Git, MySQL database setup, and completion of the Moodle web installation.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> This guide uses older versions of Ubuntu, PHP 5, MySQL, and Moodle 3.1-era configuration. The commands and package names may need to be updated for modern Ubuntu and Moodle versions.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting the installation, make sure you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An Ubuntu server with root or <code>sudo<\/code> access.<\/li>\n\n\n\n<li>Apache web server.<\/li>\n\n\n\n<li>MySQL database server.<\/li>\n\n\n\n<li>PHP-FPM.<\/li>\n\n\n\n<li>Git.<\/li>\n\n\n\n<li>A server IP address accessible through a web browser.<\/li>\n\n\n\n<li>Basic knowledge of Linux commands.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Implementation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Install Required Packages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install Apache, MySQL, PHP, PHP-FPM, and the required Apache module:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apt-get install apache2 mysql-server php5 libapache2-mod-fastcgi php5-fpm<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Install the additional dependencies required by Moodle:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apt-get install graphviz aspell php5-pspell php5-curl php5-gd php5-intl php5-mysql php5-xmlrpc php5-ldap git-core<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Configure PHP-FPM with Apache<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enable the required Apache proxy modules:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cp -p \/etc\/apache2\/mods-available\/proxy.* \/etc\/apache2\/mods-enabled\/<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cp -p \/etc\/apache2\/mods-available\/proxy_fcgi.load \/etc\/apache2\/mods-enabled\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following configuration under the Apache VirtualHost:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ProxyPassMatch ^\/(.*\\.php(\/.*)?)$ fcgi:\/\/127.0.0.1:9000\/var\/www\/html\/$1<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Configure PHP-FPM Listening Port<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">By default, PHP-FPM may listen through a Unix socket. Change it to listen on TCP port <code>9000<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">vi \/etc\/php5\/fpm\/pool.d\/www.conf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Comment out:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">listen = \/var\/run\/php5-fpm.sock<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">listen = 127.0.0.1:9000<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Reload Apache<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Reload Apache to apply the configuration:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/etc\/init.d\/apache2 reload<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Moodle Installation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Clone Moodle from Git<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Move to the <code>\/opt<\/code> directory:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd \/opt<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Clone Moodle:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git clone git:\/\/git.moodle.org\/moodle.git<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Change to the Moodle directory:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd moodle<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">List the available Git branches:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git branch -a<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Track the required stable branch:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git branch --track remotes\/origin\/MOODLE_31_STABLE origin\/MOODLE_31_STABLE<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Checkout the stable branch:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo git checkout MOODLE_31_STABLE<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Copy Moodle Files to Apache<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the Moodle files to the Apache document root:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo cp -R \/opt\/moodle\/* \/var\/www\/html\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle data directory:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo mkdir \/var\/moodledata<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set the ownership:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chown -R www-data \/var\/moodledata<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set the required permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chmod -R 777 \/var\/moodledata<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set the Moodle directory permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chmod -R 0755 \/var\/www\/html\/moodle<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reload Apache:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">service apache2 reload<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL Setup<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Configure InnoDB<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Edit the MySQL configuration file:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">vi \/etc\/mysql\/my.cnf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Under the <code>[mysqld]<\/code> section and Basic Settings, add:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">default-storage-engine = innodb<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: Restart MySQL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Restart the MySQL service:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">service mysql restart<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 9: Create the Moodle Database<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Log in to the MySQL prompt:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mysql<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the Moodle database:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE DATABASE IF NOT EXISTS moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 10: Create the Moodle Database User<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a database user and grant the required permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodle_user@localhost IDENTIFIED BY 'passwordformoodle_user';<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Complete the Moodle Setup<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 11: Set Directory Permissions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Set the permissions for the web directory:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">chmod -R 777 \/var\/www\/<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 12: Open Moodle in the Browser<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open the following URL in your browser:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/&lt;IP address of your server><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The Moodle installation page should now be displayed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 13: Configure the Moodle Database<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">During the Moodle installation process, select:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Database Type:<\/strong> <code>mysqli<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enter the following database details:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Host server: localhost\nDatabase: moodle\nUser: moodle_user\nPassword: passwordformoodle_user<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For the table prefix, use:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mdl_<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Continue with the installation and enter the required administrator login details.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 14: Restore the Installation Directory Permissions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After completing the installation, change the permissions of the web directory:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">chmod -R 755 \/var\/www\/html<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle can be installed on an Ubuntu server by configuring Apache, PHP-FPM, and MySQL and then deploying the Moodle application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The installation process includes configuring PHP-FPM to communicate with Apache, installing Moodle from Git, creating the Moodle data directory, configuring the MySQL database, and completing the setup through the web interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For production environments, use currently supported Ubuntu, PHP, Moodle, and database versions and apply appropriate security permissions rather than using broad <code>777<\/code> permissions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQs<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">1. What is Moodle?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle is an open-source learning management system used to create and manage online courses, learning content, users, and assessments.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2. Which web server is used in this Moodle setup?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This setup uses <strong>Apache<\/strong> as the web server and <strong>PHP-FPM<\/strong> to process PHP applications.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3. Which database is used for Moodle?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The original setup uses <strong>MySQL<\/strong> with the InnoDB storage engine.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4. Where is Moodle data stored?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The Moodle application files are placed under:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/var\/www\/html\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The Moodle data directory is:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/var\/moodledata<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">5. How can I access the Moodle installation?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">After configuring Apache and completing the setup, access the server IP address through a browser:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/&lt;IP address of your server><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Related Articles<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Setting Up an SSL Website in CentOS\/Ubuntu Without a Control Panel<\/strong> \u2013 Learn how to configure SSL for a website hosted directly on a CentOS or Ubuntu server without using a hosting control panel.<br><a href=\"https:\/\/pheonixsolutions.com\/blog\/setting-up-an-ssl-website-in-centosubuntu-if-there-is-no-control-panel\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Read the article<\/a><\/li>\n\n\n\n<li><strong>How to Install FFmpeg on Ubuntu Server<\/strong> \u2013 Learn how to install FFmpeg on an Ubuntu server for processing and handling multimedia files.<br><a href=\"https:\/\/pheonixsolutions.com\/blog\/install-ffmepg-on-ubuntu-server\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Read the article<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Talk to our experts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Looking for the right technology solution for your business? Our team of experts can help you with development, cloud, DevOps, design, and a wide range of other technology needs. Get in touch with our team&nbsp;<a href=\"https:\/\/pheonixsolutions.com\/contact\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Moodle is an open-source learning management system (LMS) used to create and manage online learning platforms. This guide explains [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1019,1044],"tags":[],"class_list":["post-853","post","type-post","status-publish","format-standard","hentry","category-cloud-aws","category-apache","psol-cat-cloud-aws"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-dL","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=853"}],"version-history":[{"count":1,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/853\/revisions"}],"predecessor-version":[{"id":11491,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/853\/revisions\/11491"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}